feat(standards): MR-based tag strategy + repository inventory (registry://repos)

Versioning standard now documents the MR flow: bump pyproject.toml/VERSION and promote CHANGELOG in the MR (referencing the version/tag, not a commit id), merge/squash, then tag the resulting commit. Adds the agent-assisted tagging procedure (wait for the go-ahead, find the version-bump commit, tag only it, ask the user to push) to both the reference page and the releasing wiki runbook. Adds the repo inventory (src/repos.json -> mcp/repos.json), the registry://repos resource + list_repos tool, the 15_repository_inventory lib page, and two MCP prompts: compliance (remediate repos) and release (agent tagging).
This commit is contained in:
2026-10-15 14:39:21 +05:30
parent df03f41771
commit 5971f26c08
36 changed files with 2107 additions and 94 deletions

View File

@@ -0,0 +1,74 @@
# Repository Inventory
## Summary
The canonical list of Aetos repositories covered by the CI and versioning
standards, with the artifact each one produces, its version source, and its
Drone shape. Every entry maps to the contract in
[11 – Versioning & Changelog](11_versioning_and_changelog.md) and the two CI
files in [10 – Drone Pipelines](10_drone_pipelines.md).
The same data is published machine-readably as the `registry://repos` MCP
resource (and the `list_repos` tool), sourced from `standards/src/repos.json`.
Paths are relative to the `aetos/` workspace root.
---
## Packages (Type A)
A wheel + sdist published to the private index. Version source is
`pyproject.toml`; Drone file is `python-lib.yaml` (tag-triggered).
| Repo | Path | Docs | MCP server |
|------|------|------|------------|
| `dagpipe` | `dagpipe` | lib, wiki | `dagpipe:8006` |
| `doc-forge` | `doc-forge` | lib, wiki | `docforge:8001` |
| `hexa` | `hexa` | lib, wiki | `hexa:8008` |
| `mail-intake` | `mail-intake` | lib, wiki | `mail_intake:8002` |
| `mongo-ops` | `mongo-ops` | lib, wiki | `mongo_ops:8007` |
| `omniread` | `omniread` | lib, wiki | `omniread:8003` |
| `openapi-first` | `openapi-first` | lib, wiki | `openapi_first:8004` |
| `py-jwt` | `py-jwt` | lib, wiki | `jwtlib:8005` |
---
## Services & sites (Type B)
A container image pushed to the registry and run on the Docker host. Version
source is the `VERSION` file; Drone file is `service-docker.yaml`.
| Repo | Type | Path | Trigger | Docs |
|------|------|------|---------|------|
| `auth-server` | service | `auth-server` | tag | api, lib, wiki |
| `docs` | site | `docs` | push | — |
| `mcp` | site | `mcp` | push | — |
The **service** variant is tag-triggered and enforces `tag == VERSION`. The
**site** variant is push-triggered, ships `:latest`, and has no tag guard.
---
## Required files per repo
| Type | Version source | Changelog | Drone |
|------|----------------|-----------|-------|
| package | `pyproject.toml` | `CHANGELOG.md` | `python-lib.yaml` |
| service / site | `VERSION` | `CHANGELOG.md` | `service-docker.yaml` |
Every covered repository must be able to satisfy `tag == version`:
the version file (never a commit id) is bumped in the release MR, the MR is
merged, and the tag is created on the merged commit.
---
## Reading this at runtime
- Resource: `registry://repos`
- Tool: `list_repos()`
- Humans: this page (mirror of `standards/src/repos.json`).
---
## Related
- [10 – Drone Pipelines](10_drone_pipelines.md) · [11 – Versioning & Changelog](11_versioning_and_changelog.md) · [13 – Library Registry](13_library_registry.md)