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
2 changes: 1 addition & 1 deletion .github/workflows/hypatia-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ permissions:

jobs:
hypatia:
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@915139d73560e65a8240b8fc7768698658502c89
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@6cd3772824e59c8c9affeab66061e25383544242
secrets: inherit
# Total caller-side wall-clock cap for the reusable. Matches
# Hypatia's `missing_timeout_minutes` rule expectation. The scan is
Expand Down
4 changes: 2 additions & 2 deletions .machine_readable/MUST.contractile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
; remain active until the feature is fully removed.
;
; Enforcement:
; K9 validators in contractiles/k9/ machine-check MUST constraints.
; K9 validators in contractiles/self-validating/ machine-check MUST constraints.
; CI runs these on every PR. Violations block merge.
;
; ── End Definitions ──────────────────────────────────────────────
Expand Down Expand Up @@ -85,7 +85,7 @@
; (must "# Add project-specific invariants here")

(enforcement
(k9-validator "contractiles/k9/must-check.k9.ncl")
(k9-validator "contractiles/self-validating/must-check.k9.ncl")
(ci "quality.yml runs must-check on every PR")
)
)
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Methodology-aware configuration for AI agents. Read by any AI agent
== Relationship to Other Files

* `AGENTIC.a2ml` says WHAT agents can do (permissions, gating)
* `agent_instructions/` says HOW agents should work (methodology)
* `bot_directives/` says HOW agents should work (methodology)
* `bot_directives/` says what the gitbot-fleet does (fleet-specific)
* `CLAUDE.md` says how Claude specifically should work (Claude-specific)

Expand Down
9 changes: 6 additions & 3 deletions EXPLAINME.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -139,9 +139,12 @@ execution testing. Gates the path from draft to publishable.
| `bots/finishingbot/`
|===

Additional bots present in `bots/`: `accessibilitybot`, `cipherbot`, `panicbot`
(pre-commit gate wrapping panic-attacker), `gsbot` (game-server integration),
`the-hotchocolabot` (onboarding/warmth checks).
Additional fleet bots present in `bots/`: `accessibilitybot`, `cipherbot`,
`panicbot` (pre-commit gate wrapping panic-attacker).

Standalone repos that are not part of gitbot-fleet but are still maintained in
the estate: `gsbot` (https://github.com/hyperpolymath/gsbot) and
`hotchocolabot` (https://github.com/hyperpolymath/hotchocolabot).

== Dogfooded Across The Account

Expand Down
162 changes: 162 additions & 0 deletions GOVERNANCE.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= Governance Model
:toc: preamble

This document describes the governance model for this repository.

== Overview

This repository follows a **Sole Maintainer Governance Model**:

* Single maintainer (@hyperpolymath) has full authority over the project
* All contributions are welcome and reviewed by the maintainer
* Decisions are made transparently through GitHub issues and discussions
* The project adheres to the hyperpolymath estate policies where applicable

== Core Principles

[cols="1,2"]
|===
| Principle | Description

| **Benevolent Dictatorship** | Maintainer has final decision authority but seeks community input

| **Meritocracy** | Contributions are judged on technical merit, not contributor identity

| **Transparency** | All significant decisions are documented publicly

| **Consensus-Seeking** | Maintainer prefers consensus but will decide when necessary

| **Open Contribution** | Anyone can contribute via fork and pull request

|===

== Roles and Permissions

[cols="1,2,2"]
|===
| Role | Permissions | Assignment

| **Maintainer** | Write access, merge rights, admin | @hyperpolymath
| **Contributors** | Read access, fork, submit PRs | All GitHub users
| **Users** | Use the software, report issues | All GitHub users

|===

== Decision Making Framework

=== Routine Decisions

* Bug fixes
* Documentation improvements
* Minor feature additions
* Dependency updates

**Process**: Maintainer reviews and merges PRs that meet quality standards.

=== Significant Changes

* New major features
* API changes
* Architecture modifications
* Breaking changes

**Process**:
. Open issue describing the change
. Discuss with community (minimum 72 hours)
. Maintainer makes final decision
. Document rationale in issue/PR

=== Structural Decisions

* Repository purpose/renaming
* License changes
* Ownership transfer
* Deprecation/archival

**Process**:
. Extended discussion (minimum 1 week)
. Maintainer makes final decision
. Document in CHANGELOG and governance docs

== Contribution Lifecycle

[cols="1,2"]
|===
| Stage | Process

| **Ideation** | Open issue, discuss feasibility

| **Development** | Fork, implement, test thoroughly

| **Review** | Submit PR, maintainer reviews within 7 days

| **Merge** | Maintainer merges or requests changes

| **Release** | Maintainer publishes according to project conventions

|===

== Conflict Resolution

In case of disagreements:

. Discuss in the relevant GitHub issue or PR
. Provide technical justification for positions
. Maintainer mediates and makes final decision
. Decision is documented and can be revisited later

== Project Policies

This repository adheres to hyperpolymath estate-wide policies:

* **License**: MPL-2.0 for code, CC-BY-SA-4.0 for prose (per standards/LICENCE-POLICY.adoc)
* **Code of Conduct**: Follows hyperpolymath CODE_OF_CONDUCT.md
* **Security**: Follows hyperpolymath SECURITY.md
* **Contributing**: Follows hyperpolymath CONTRIBUTING.adoc conventions

== Repository-Specific Conventions

[cols="1,2"]
|===
| Convention | Description

| **Signing** | All commits must be signed (SSH or GPG)

| **SPDX Headers** | All source files must have SPDX license identifiers

| **Contractiles** | Mustfile, Trustfile, Intendfile, Adjustfile in root

| **Machine Readable** | META.a2ml in .machine_readable/6a2/

| **CI/CD** | GitHub Actions workflows in .github/workflows/

|===

== Governance Evolution

As the project grows, this governance model may evolve:

* **Adding Co-Maintainers**: When contribution volume warrants it
* **Forming a Team**: For complex multi-maintainer projects
* **Adopting TPCF**: For large, multi-repository projects (see rhodium-standard-repositories)

Changes to this document require the same process as Significant Changes above.

== See Also

* link:MAINTAINERS.adoc[Maintainers]
* link:CODE_OF_CONDUCT.md[Code of Conduct]
* link:CONTRIBUTING.adoc[Contributing Guide]
* link:https://github.com/hyperpolymath/standards/blob/main/LICENCE-POLICY.adoc[Estate License Policy]
* link:https://github.com/hyperpolymath/standards[rhodium-standard-repositories (TPCF)]

== Changelog

[cols="1,1,1"]
|===
| Date | Change | By

| 2026-06-07 | Initial governance model established | @hyperpolymath
|===
15 changes: 6 additions & 9 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ toc::[]

== Overview

Gitbot Fleet coordinates 11 specialised bots through a shared-context layer. The
Gitbot Fleet coordinates 9 specialised bots through a shared-context layer. The
`fleet-coordinator` dispatches Hypatia scanner findings to bots based on
the **safety triangle**:

Expand Down Expand Up @@ -82,21 +82,18 @@ The historical `TOPOLOGY.md` dashboard is at the repo root.
|Release readiness. Placeholder removal, license validation, claim verification, execution testing.
|Complete

|**gsbot**
|Discord bot for garment sustainability. Sustainability scores, environmental impact analysis, sustainable brand discovery.
|Active

|**panicbot**
|Panic recovery and error handling validation. Ensures graceful degradation and proper error handling patterns.
|Active

|**the-hotchocolabot**
|Educational robotics platform for teaching reverse engineering and systems thinking. Over-engineered hot chocolate dispenser.
|Active
|===

*Status legend:* `Active` = Tier 1 Verifier or Specialist bot running on every push. `Complete` = Tier 2 Finisher bot that runs after verifiers to validate final release readiness.

Standalone repos that are intentionally not fleet bots:

* `gsbot` - https://github.com/hyperpolymath/gsbot
* `hotchocolabot` - https://github.com/hyperpolymath/hotchocolabot

The component-readiness assessment (CRG grades, evidence) lives in
link:READINESS.md[READINESS.md].

Expand Down
9 changes: 6 additions & 3 deletions ROADMAP.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ toc::[]

== Current State

Gitbot Fleet coordinates 11 bots through a shared-context system with safety-triangle-aware
Gitbot Fleet coordinates 9 bots through a shared-context system with safety-triangle-aware
routing. The fleet-coordinator dispatches findings from Hypatia scans to specialised bots
based on confidence thresholds (Eliminate >= 0.95, Substitute >= 0.85, Control < 0.85).

Expand All @@ -29,12 +29,15 @@ based on confidence thresholds (Eliminate >= 0.95, Substitute >= 0.85, Control <
| seambot | Integration seam maintenance | Yes
| finishingbot | Completion of partial work | Yes
| panicbot | Security scanning (panic-attack) | No (uses panic-attack roadmap)
| gsbot | Git-seo, discoverability | Yes
| accessibilitybot | Accessibility compliance | Yes
| cipherbot | Cryptographic hygiene | Yes
| the-hotchocolabot | Developer experience, warmth | Yes
|===

Standalone repos kept out of the fleet roster:

* `gsbot` - separate repo: https://github.com/hyperpolymath/gsbot
* `hotchocolabot` - separate repo: https://github.com/hyperpolymath/hotchocolabot

**Infrastructure:**

* fleet-coordinator.sh -- orchestration layer
Expand Down
4 changes: 2 additions & 2 deletions bots/gsbot/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,8 @@ gsbot/
[source,bash]
----
# Clone repository
git clone https://github.com/hyperpolymath/gitbot-fleet.git
cd gitbot-fleet/bots/gsbot
git clone https://github.com/hyperpolymath/gsbot.git
cd gsbot

# Configure environment
cp .env.example .env
Expand Down
22 changes: 11 additions & 11 deletions bots/gsbot/content/docs/DEPLOYMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ This guide covers deployment options for the Garment Sustainability Bot.
### Quick Start

```bash
git clone https://github.com/hyperpolymath/gitbot-fleet.git
cd gitbot-fleet/bots/gsbot
git clone https://github.com/hyperpolymath/gsbot.git
cd gsbot
cp .env.example .env # then edit .env: set DISCORD_TOKEN
just init # build + load sample data
just run # run the bot
Expand All @@ -50,8 +50,8 @@ just run # run the bot

1. **Clone repository:**
```bash
git clone https://github.com/hyperpolymath/gitbot-fleet.git
cd gitbot-fleet/bots/gsbot
git clone https://github.com/hyperpolymath/gsbot.git
cd gsbot
```

2. **Configure environment:**
Expand Down Expand Up @@ -157,8 +157,8 @@ sudo apt update && sudo apt install -y git

3. **Clone and build:**
```bash
git clone https://github.com/hyperpolymath/gitbot-fleet.git
cd gitbot-fleet/bots/gsbot
git clone https://github.com/hyperpolymath/gsbot.git
cd gsbot
cargo build --release --bin gsbot
```

Expand All @@ -178,9 +178,9 @@ After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/gitbot-fleet/bots/gsbot
EnvironmentFile=/home/ubuntu/gitbot-fleet/bots/gsbot/.env
ExecStart=/home/ubuntu/gitbot-fleet/bots/gsbot/target/release/gsbot
WorkingDirectory=/home/ubuntu/gsbot
EnvironmentFile=/home/ubuntu/gsbot/.env
ExecStart=/home/ubuntu/gsbot/target/release/gsbot
Restart=always
RestartSec=10

Expand Down Expand Up @@ -242,7 +242,7 @@ Schedule it from cron, e.g.:

```bash
# crontab -e
0 2 * * * cd /home/ubuntu/gitbot-fleet/bots/gsbot && ./target/release/gsbot-backup-db
0 2 * * * cd /home/ubuntu/gsbot && ./target/release/gsbot-backup-db
```

You can also export to JSON:
Expand Down Expand Up @@ -458,7 +458,7 @@ If an update fails:

## Support

- GitHub Issues: https://github.com/hyperpolymath/gitbot-fleet/issues
- GitHub Issues: https://github.com/hyperpolymath/gsbot/issues
- Documentation: README.adoc, CLAUDE.md
- Architecture: docs/ARCHITECTURE.md
- API docs: docs/API.md
Loading
Loading