Repository navigation
Description
Specification: GitHub-indexed Bot Sharing & Marketplace
Project: https://github.com/orgs/BotHarness/projects/11 · Milestone: v1.1.
Current scope — reconciled 2026-10-08 (Asia/Tokyo)
Sharing uses public GitHub Memory repositories and the GitHub-indexed Bot Marketplace under ADR-0131. Moving a Bot between devices or people uses the local Bot zip path #1059. The platform-account/upload proposal #17 was cancelled on 2026-10-06; it is not a future implementation phase or remaining acceptance for this issue.
- Authors opt in with the
botharness-bottopic. The catalog uses GitHub repository metadata/README and optional.botharness/bot.jsonpresentation. - The dedicated Worker and D1 catalog provide discovery, refresh, browse/search, detail, topic filtering, paste-to-crawl, reporting and admin moderation. Install reuses Git-URL Bot creation with a fresh local identity.
- Browsing and sharing require no BotHarness platform account. GitHub stars and last update remain the displayed measurements; no platform import/download count is claimed.
- GitHub controls the public source. Ordinary Git handles repository updates. Platform accounts, hosted Git publication, account-based favorites and completed-import counts are cancelled scope, not pending Marketplace tasks.
Delivery and closeout — completed 2026-10-08
The Human confirmed final #913 acceptance and closed it directly. Confirmation record. The pending-acceptance wording below is retained as the completed audit trail.
#913 owns Phase 1 acceptance. Its implementation children #916–#922 and guide #958 are closed. PR #943 records production Worker deployment; the product site's Marketplace is also implemented. These facts do not substitute for the final acceptance evidence in #913.
- Record the final real repository/topic → discovery/search → harness install acceptance and the topic-removal/report-hide behavior.
- Confirm the production GitHub credential and scheduled refresh: PR chore(market): point wrangler at the production D1 and market.botharness.ai #943 recorded
GITHUB_TOKENas unset at deployment. Confirm current configuration and a real refresh result rather than assuming that old snapshot still describes production. - Reconcile Spec: Bot Marketplace Phase 1 — GitHub-indexed catalog #913's acceptance and then close Spec: Bot Marketplace Phase 1 — GitHub-indexed catalog #913 and this coordination specification when no in-scope work remains.
The v1.2 Banner/Bio presentation extension belongs to #1083 / #1093. It does not reopen the cancelled account/upload proposal. Reuse existing issues and native parent relationships; do not create duplicate storage/auth/Git foundation tickets.
Historical specification / incident snapshot before 2026-10-08 reconciliation — superseded where inconsistent with the current scope above
Specification: public Bot Sharing & Marketplace
This is a bounded feature specification/index, not an implementation claim or a replacement for the repository-wide Roadmap. Project owns feature management; milestone owns release target. Decision record: ADR-0131 (2026-10-05), which reverses the order of the 2026-09-30 contract below. Earlier design rounds remain in this issue's edit history.
Execution index
- Phase 1 — current executable slice: Spec: Bot Marketplace Phase 1 — GitHub-indexed catalog #913. GitHub-indexed Bot Marketplace: repositories opt in with the
botharness-bottopic (plus paste-URL instant crawl), a dedicated Worker + D1 + FTS5 catalog, a harness modal, Install through Create PersonaBot from a Git Memory repository (HTTPS or SSH) #298 Git-URL creation. No accounts, no counts. Phase 2 — after Phase 1 Human feedback: Tracer: publish a Memory Git repo and import through a Bot link #17.Dropped 2026-10-06 (Vain): no platform accounts in an open-source project; Tracer: publish a Memory Git repo and import through a Bot link #17 closed as not planned. Sharing stays GitHub-only; moving a Bot between devices or people becomes a local zip export/import (Spec: export a Bot as a zip and import it on another device (replaces account-based sharing) #1059).- Reuse these issues; do not pre-create a speculative tree of storage/auth/Git horizontal tasks. Future issues need a native parent, same Project/milestone, a coherent Human behavior, focused automated regression and runnable acceptance.
Confirmed order — 2026-10-05 (ADR-0131)
Phase 1: GitHub-indexed catalog
- Public GitHub repositories carrying the
botharness-bottopic are Indexed Repositories. The topic is the author's consent; removing it, privatizing, archiving or deleting hides the entry at the next refresh. Pasting a repository URL crawls it immediately but still requires the topic. No anonymous submission of arbitrary repositories. - No required manifest. Display uses repository name, GitHub description, topics and README; the fresh Bot gets its default avatar. Optional committed
.botharness/bot.jsonoverrides display name, avatar and role badges. - Dedicated Cloudflare Worker with its own D1 (e.g.
market.botharness.ai), separate from the product sites. Entries keyed by GitHub node ID. Daily full topic discovery sliced by creation date (search caps 1,000 per query); hourly GraphQLnodesrefresh in batches of 100; README refetched only whenpushed_atchanges. Single cron now, Queues when Worker limits bind. - Browse by stars/last update with keyset cursors; search with FTS5 bm25, capped at 200 results; topic filter. Detail renders sanitized README with raw image rewrite.
- Install reuses Create PersonaBot from a Git Memory repository (HTTPS or SSH) #298 Git-URL creation with
originon GitHub; confirmation shows latest commit time and short SHA plus a third-party risk/disclaimer notice. - URL paste and one-click Report share ALTCHA (self-hosted proof-of-work; Turnstile is unreliable in mainland China) plus per-IP/per-repository limits. Reports from enough distinct sources auto-hide until an administrator restores or blocks; D1 blocklist. Reporting needs no account and no GitHub access.
- No download/import counts in Phase 1: without sign-in no honest completed-import receipt exists. Show GitHub stars and last commit only.
Phase 2: accounts and uploaded Bots (dropped 2026-10-06, see #1059)
Better Auth (latest): Email OTP sign-up, Passkey sign-in, Google sign-in; terms covering Memory privacy and liability for installing third-party Bots. Signed-in users upload a Bot from the local harness (default Bot name/avatar, editable, tags), favorite Bots and see their favorites; Marketplace-button imports record completed-import receipts; favorite and import counts are shown. The publication contract below stays the target for this phase, re-sliced from #17 after Phase 1.
Previous order — final contract 2026-09-30 (order superseded by ADR-0131; publication rules remain the Phase 2 target)
Confirmed product contract — final, 2026-09-30
Project: https://github.com/orgs/BotHarness/projects/11 · Milestone: v1.1. The product decision frontier is settled; superseded proposals remain in historical details only.
Full committed Memory Git repository
- Share the complete committed Memory Git repository, including Git history and all ordinary branches/tags. Author selects the initial checkout branch. A published version fixes that branch HEAD and the published refs.
- No file selection, history cleaning or no-history toggle. Author/Human/Bot controls files, branches, commits and any history reinitialization through ordinary Git before publication.
- Publish only committed branch/tag content and its reachable history. Do not include staged/uncommitted/untracked files or internal refs such as refs/botharness/recovery/*, which can contain working-tree checkpoints. Do not replace this ref contract with git bundle --all.
- Git data is not source-machine .git/config, credential helpers, hooks, recovery/ledger databases or runtime state. Do not implicitly export Profile credentials, live IM bindings/grants, Sessions or Bot identity. Authors remain responsible for the contents they intentionally commit to the shared repository; this is not a historical-file redaction feature.
Presentation lives in Git; identity stays local
- Commit a portable sharing descriptor and avatar assets into the repository before publishing. Human/Bot can prepare them using normal file/Git operations; publication does not silently insert uncommitted metadata.
- Avatar sharing defaults on. If enabled, a fresh import uses the shared appearance, including preservation of generated appearance. If omitted/disabled, it uses the fresh Bot's normal default avatar.
- Descriptor includes display name, description and role badges. Missing optional presentation has defined normal local defaults; optional Persona remains optional under current CONTEXT.
- Import creates a fresh local PersonaBot identity. Later git pull updates repository files; it does not automatically overwrite local Bot presentation preferences. Human/Bot decides whether to apply updated presentation.
Public publication and account contract
- Cloudflare Workers + D1 + R2; GitHub is optional. Public publication only, no private/unlisted publication mode in v1.1. Each publication is publicly listed with author, version, provenance and license; richer discovery UI follows the first tracer.
- Anonymous browsing. Platform sign-in is required to publish and import through Marketplace. Ordinary external Git operations are a separate path.
- Better Auth: passwordless Email OTP sent through Cloudflare Email, Google and GitHub sign-in, optional Passkey. Start with verified Email OTP or social sign-in, then enroll Passkey. Passkey sign-ins do not require an OTP email every time; OTP remains a fallback.
- License is author-confirmed: read an existing repository license or require an explicit declaration when absent.
- Withdrawal blocks future platform downloads/imports of the withdrawn publication. Already imported local repositories remain usable. Public GitHub sources remain under their author's GitHub control.
Native Git updates and simple publication
- No fork/PR/pull/push/merge/rebase/update-management UI. Human/Bot uses Git and ordinary GitHub collaboration directly.
- GitHub-backed author selects a tracked publication branch at initial publication. Subsequent pushes to that branch automatically produce new immutable Marketplace versions. Stable Bot link resolves the latest successfully published version; version-specific links stay fixed. Failed refresh does not advance the latest pointer.
- For authors without GitHub, Human asks Bot to publish the prepared committed repository through the platform publication API. The platform provides a read-only Git remote, updated on successful republication, so consumers can use ordinary git pull. Do not expand this into a platform Git push/receive-pack service or GitHub-like collaboration hosting.
- Imported repositories have a usable trusted origin/upstream and the selected branch's original commit ancestry; do not leave origin pointing at a temporary bundle file.
- Fast-forward is conditional on compatible ancestry and worktree state. Local commits or rewritten upstream may diverge. Human/Bot handles native merge/rebase; the platform does not force-reset or overwrite local work to manufacture fast-forward.
Honest popularity measurements
Completed local-import receipts are platform clone activity. Failed/replayed receipts do not inflate the count. Views, artifact downloads and distinct importers are separately named. External Git/GitHub clone/fork activity is not counted as a completed platform import. Authorization and version identity bind receipts to the actual completed import path.
Generated by Claude Code
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
docs(spec): SoulSnapshot & Soul registry decisions (ADR-0019/0020, sp…
[-]M7: Soul registry / Marketplace(平台)[/-][+]Design/tracer: hosted Bot links and Marketplace on Workers/D1/R2[/+][-]Design/tracer: hosted Bot links and Marketplace on Workers/D1/R2[/-][+]Design/tracer: public Bot Marketplace with Better Auth on Workers/D1/R2[/+][-]Design/tracer: public Bot Marketplace with Better Auth on Workers/D1/R2[/-][+]Spec: public Bot Sharing & Marketplace on Workers/D1/R2[/+]docs: accept ADR-0131 Bot Marketplace order
docs: start Bot Marketplace as a GitHub-indexed catalog (ADR-0131) (#901
[-]Spec: public Bot Sharing & Marketplace on Workers/D1/R2[/-][+]Spec: GitHub-indexed Bot Sharing & Marketplace[/+]DoodleBears commentedon Oct 8, 2026
Issue 整理记录 — 2026-10-08 (Asia/Tokyo)
已按 Human 授权整理当前范围:保留 GitHub-indexed catalog 和本地 Bot zip 路径,将已取消的账号/上传/托管 Git 方案明确归为历史;#913 的真实验收和定时刷新核对仍保留为未完成事项。Project 11 / v1.1。
DoodleBears commentedon Oct 8, 2026
Human acceptance confirmed — 2026-10-08
The Human explicitly confirmed in the issue-orchestration task that #913 has been accepted, has no remaining problem, and was closed directly by them. This confirmation resolves the final acceptance gate retained during the earlier triage; the old deployment-time missing-token snapshot is not a current blocker.
This is a record of Human acceptance, not a claim that this orchestration task independently accessed production credentials, repeated a scheduled refresh or reran the real repository/install/hide flow. Implementation history remains in #916–#922, #958 and their merged PRs.
The #18 coordination scope can now close with #913; cancelled platform-account/upload work #17 is not reopened. Banner/Bio #1093 stays with Profile & Presentation / v1.2.
Recorded by
codex/local/01a119e5-5192-7832-a281-213e81f6118c.