Skip to content
Merged
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
58 changes: 40 additions & 18 deletions GITHUB_ACCOUNT_MODEL.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,15 @@ does not replace the username-matching repository for this personal account.
| [`codegeist-ai/codegeist`](https://github.com/codegeist-ai/codegeist) | Core Java CLI/TUI product, providers, MCP, local tools, installers, and user releases | `main` | Tagged GitHub Releases and downloadable artifacts | `task cli:check` |
| [`codegeist-ai/codegeist-agent-kit`](https://github.com/codegeist-ai/codegeist-agent-kit) | Reusable OpenCode rules, commands, skills, plugins, and configuration | `main` | Generated `release` branch consumed at `.opencode/` | `task test` |
| [`codegeist-ai/codegeist-devcontainer-kit`](https://github.com/codegeist-ai/codegeist-devcontainer-kit) | Reusable development image, initialization, Compose runtime, and workspace tooling | `main` | Generated `release` branch consumed at `.devcontainer/` | `task check` |
| [`codegeist-ai/codegeist-os`](https://github.com/codegeist-ai/codegeist-os) | AI-focused operating-system architecture and research | Gitea `main` | Public GitHub mirror; no released OS image yet | No dedicated normal check yet |
| [`codegeist-ai/codegeist-llm`](https://github.com/codegeist-ai/codegeist-llm) | Compact local-model research, provenance, evaluation, and reproducible artifacts | Gitea `main` | Public GitHub mirror and separately published model artifacts | `task test` |

All five repositories contain Codegeist-owned material and have their own root
`LICENSE`. A license is never inherited from `.github`.
All seven repositories contain Codegeist-owned material, but their current
license posture is not identical. The five GitHub-primary repositories carry a
root 0BSD `LICENSE`; `codegeist-llm` references the shared 0BSD license while
preserving separate upstream model, dataset, and artifact terms; `codegeist-os`
has not selected a project or distribution license. A license is never inherited
from `.github`.

## Ownership Decision Guide

Expand All @@ -54,6 +60,8 @@ Choose the repository by the behavior being changed:
| Codegeist CLI/TUI behavior, provider integration, MCP, local tools, installers, or product release automation | `codegeist` |
| Generic OpenCode agent rules, commands, skills, plugins, MCP configuration, or shared AI workflow | `codegeist-agent-kit` |
| Devcontainer image, installed toolchain, browser launcher, Compose runtime, initialization, worktrees, or development-environment behavior | `codegeist-devcontainer-kit` |
| Codegeist OS architecture, integration, identities, isolation, policy, lifecycle, rollback, or recovery | `codegeist-os` |
| Model selection, training, provenance, evaluation, variants, or model artifact publication | `codegeist-llm` |
| Account-wide contribution, conduct, security, support, issue, or pull-request policy | `.github` |
| Text displayed on the personal GitHub account profile or the short ecosystem map | `codegeist-ai/codegeist-ai` |

Expand All @@ -76,28 +84,31 @@ The public `.github` repository owns these account defaults:

For standalone community files, GitHub applies a default only when the target
repository does not provide a local file of the same type. A local file takes
precedence. This is why the three source repositories keep repository-specific
`CONTRIBUTING.md` files while inheriting account-wide conduct, security, support,
issue, and pull-request files.
precedence. This is why GitHub-primary source repositories keep
repository-specific guidance where needed while inheriting account-wide conduct,
security, support, issue, and pull-request files.

Issue templates are a directory-level exception. If a repository adds any local
file under `.github/ISSUE_TEMPLATE/`, including `config.yml`, GitHub stops
inheriting the default issue-template directory. A repository that needs one custom
form must also copy or recreate every shared form and contact link it still wants.

The `.github` repository cannot provide another repository's license. Every
Codegeist-owned repository must carry and maintain its own root `LICENSE`.
The `.github` repository cannot provide another repository's license. Each
repository must document and maintain its actual license posture without
assuming inheritance from account-level files.

### `codegeist-ai/codegeist-ai`: Personal Profile

The username-matching repository owns the profile rendered at
[`github.com/codegeist-ai`](https://github.com/codegeist-ai). Its README should
stay concise and public-facing:

- explain what Codegeist is;
- present Codegeist AI as the umbrella project family and Codegeist as the coding
agent;
- map the public repositories;
- direct contributors to the correct owner;
- link the Roadmap and shared contribution guide;
- link the public Codegeist model profile on Hugging Face;
- show each repository's normal check.

Detailed policies and maintenance contracts belong in `.github`, not in the
Expand Down Expand Up @@ -172,8 +183,9 @@ installers, checksums, and the standalone license asset.

## Checks And Protected Branches

Each repository has a deterministic normal check and a matching required GitHub
Actions context:
The five GitHub-primary repositories have deterministic normal checks and
matching required GitHub Actions contexts. The mirrored repositories retain
their source-host workflow and current check status in the same inventory:

| Repository | Local command | Required `main` check |
| --- | --- | --- |
Expand All @@ -182,14 +194,16 @@ Actions context:
| `codegeist` | `task cli:check` | `JVM check` |
| `codegeist-agent-kit` | `task test` | `test` |
| `codegeist-devcontainer-kit` | `task check` | `Check` |
| `codegeist-os` | No dedicated normal check yet | Gitea-owned source workflow; GitHub is a mirror |
| `codegeist-llm` | `task test` | Gitea-owned source workflow; GitHub is a mirror |

The normal checks stay smaller than release or environment-heavy validation. For
example, core normal CI does not call providers, download models, use Docker, build
native images, or run QEMU. Devcontainer changes that affect images, browser
runtime, Docker/Compose, QEMU, or lifecycle behavior additionally require the full
`task tests-run` suite before release publication.

All public `main` branches currently enforce:
The five GitHub-primary public `main` branches currently enforce:

- changes through pull requests;
- the repository's proven required check;
Expand All @@ -200,14 +214,21 @@ All public `main` branches currently enforce:
- no branch deletion;
- the same rules for the maintainer account.

`codegeist-os` and `codegeist-llm` use Gitea as their primary write target and
publish Git refs through GitHub mirrors. GitHub Issues, pull requests, branch
rules, secrets, and other platform state are not synchronized from Gitea and
must not be described as if those mirrors use the same GitHub-native workflow.

The required approval count is zero while there is only one maintainer. This keeps
the pull-request and CI gate without creating an impossible self-approval rule.

## Licensing And Third-Party Material

Codegeist-owned source and documentation use the OSI-approved Zero-Clause BSD
License, SPDX identifier `0BSD`. Intentional contributions are accepted under the
same terms without a CLA or DCO requirement.
The five GitHub-primary repositories use the OSI-approved Zero-Clause BSD
License, SPDX identifier `0BSD`, for Codegeist-owned source and documentation.
Intentional contributions to those repositories are accepted under the same
terms without a CLA or DCO requirement. `codegeist-llm` and `codegeist-os` retain
the distinct license postures recorded in the inventory above.

The root license does not relicense third-party dependencies, vendored content,
submodules, notices, or upstream-derived material. Preserve every applicable
Expand Down Expand Up @@ -334,10 +355,11 @@ gh api repos/codegeist-ai/codegeist/private-vulnerability-reporting
```

Repeat repository-specific API checks for `.github`, `codegeist-ai`,
`codegeist-agent-kit`, and `codegeist-devcontainer-kit`. The expected current state
is five public repositories, GitHub-detected `0BSD`, complete community profiles,
enabled private reporting, and protected `main` branches with the checks listed
above.
`codegeist`, `codegeist-agent-kit`, `codegeist-devcontainer-kit`, `codegeist-os`,
and `codegeist-llm`. The expected current state is seven public repositories.
Verify license detection, community profiles, private reporting, checks, and
branch rules per repository instead of assuming the GitHub-primary and mirrored
repositories have identical platform configuration.

## Related Documentation

Expand Down
17 changes: 17 additions & 0 deletions scripts/check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,21 @@ grep -Fq 'GITHUB_ACCOUNT_MODEL.md' README.md || {
exit 1
}

required_model_links=(
https://github.com/codegeist-ai/codegeist
https://github.com/codegeist-ai/codegeist-os
https://github.com/codegeist-ai/codegeist-llm
)
for url in "${required_model_links[@]}"; do
grep -Fq "$url" GITHUB_ACCOUNT_MODEL.md || {
printf 'GITHUB_ACCOUNT_MODEL.md is missing repository: %s\n' "$url" >&2
exit 1
}
done

grep -Fq 'The expected current state is seven public repositories.' GITHUB_ACCOUNT_MODEL.md || {
printf 'GITHUB_ACCOUNT_MODEL.md must record the seven-repository account state.\n' >&2
exit 1
}

printf 'Community checks passed.\n'