Migrate kaizen distribution to Forgejo
All checks were successful
ci / test (push) Successful in 2m21s
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

This commit is contained in:
tegwick 2026-08-20 09:43:49 +02:00
parent f027ee5492
commit d4a4560a8d
34 changed files with 324 additions and 195 deletions

View file

@ -1,8 +1,8 @@
<!-- custodian-brief: generated by fix-consistency — do not edit manually --> <!-- custodian-brief: generated by fix-consistency — do not edit manually -->
# Custodian Brief — kaizen-agentic # Custodian Brief — kaizen-agentic
**Domain:** infotech **Domain:** agents
**Last synced:** 2026-07-16 10:48 UTC **Last synced:** 2026-08-20 07:20 UTC
**State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)*
## Active Workstreams ## Active Workstreams
@ -13,6 +13,6 @@
## MCP Orientation (when available) ## MCP Orientation (when available)
If the state-hub MCP server is reachable, call: If the state-hub MCP server is reachable, call:
`get_domain_summary("infotech")` `get_domain_summary("agents")`
This provides richer cross-domain context. This provides richer cross-domain context.
If the MCP call fails, use this file as your orientation source. If the MCP call fails, use this file as your orientation source.

View file

@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Feedback guide
url: https://forgejo.coulomb.social/coulomb/kaizen-agentic/src/branch/main/docs/FEEDBACK.md
about: How to submit feedback, bugs, and feature ideas
- name: Contributing guide
url: https://forgejo.coulomb.social/coulomb/kaizen-agentic/src/branch/main/CONTRIBUTING.md
about: Development workflow and code standards

View file

@ -1,8 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Feedback guide
url: https://gitea.coulomb.social/coulomb/kaizen-agentic/src/branch/main/docs/FEEDBACK.md
about: How to submit feedback, bugs, and feature ideas
- name: Contributing guide
url: https://gitea.coulomb.social/coulomb/kaizen-agentic/src/branch/main/CONTRIBUTING.md
about: Development workflow and code standards

View file

@ -33,7 +33,7 @@ pipx install -e . --force # global pipx install
``` ```
**Consumers (pip install from registry):** see [docs/PACKAGE_RELEASE.md](docs/PACKAGE_RELEASE.md) **Consumers (pip install from registry):** see [docs/PACKAGE_RELEASE.md](docs/PACKAGE_RELEASE.md)
for Gitea PyPI credentials and `--extra-index-url` install paths. for the Forgejo PyPI `--extra-index-url` install path.
**Maintainers (release):** `make agents-sync-package` before tagging when `agents/` changes; **Maintainers (release):** `make agents-sync-package` before tagging when `agents/` changes;
`make package-check` and the pre-tag checklist in `docs/PACKAGE_RELEASE.md`. `make package-check` and the pre-tag checklist in `docs/PACKAGE_RELEASE.md`.
@ -78,7 +78,7 @@ This repository follows PythonVibes best practices:
- **Type Checking**: MyPy (`mypy src/`) - **Type Checking**: MyPy (`mypy src/`)
- **Testing**: Pytest (`pytest`) - **Testing**: Pytest (`pytest`)
- **Pre-commit**: `pip install pre-commit && pre-commit install` (see `.pre-commit-config.yaml`) - **Pre-commit**: `pip install pre-commit && pre-commit install` (see `.pre-commit-config.yaml`)
- **CI**: Gitea Actions workflow `.gitea/workflows/ci.yml` runs on push/PR to `main` - **CI**: Forgejo Actions workflow `.forgejo/workflows/ci.yml` runs on push/PR to `main`
### Agent Development Standards ### Agent Development Standards
For contributing new agents or improving existing ones: For contributing new agents or improving existing ones:
@ -136,7 +136,7 @@ We welcome bugs, feature ideas, and adoption experience reports.
- **CLI:** `kaizen-agentic feedback` — lists channels and issue templates - **CLI:** `kaizen-agentic feedback` — lists channels and issue templates
- **Guide:** [docs/FEEDBACK.md](docs/FEEDBACK.md) - **Guide:** [docs/FEEDBACK.md](docs/FEEDBACK.md)
- **Templates:** `.gitea/ISSUE_TEMPLATE/` (bug, feature, general feedback) - **Templates:** `.forgejo/ISSUE_TEMPLATE/` (bug, feature, general feedback)
For cross-repo coordination between custodian agents, use State Hub messages For cross-repo coordination between custodian agents, use State Hub messages
(`POST /messages/`) — see session protocol in `.claude/rules/session-protocol.md`. (`POST /messages/`) — see session protocol in `.claude/rules/session-protocol.md`.
@ -178,7 +178,7 @@ We follow continuous improvement principles:
### Communication ### Communication
- Be respectful and constructive in all interactions - Be respectful and constructive in all interactions
- Use GitHub issues and discussions for project-related communication - Use Forgejo issues for project-related communication
- Share knowledge and help other contributors - Share knowledge and help other contributors
- Follow the project's code of conduct - Follow the project's code of conduct

View file

@ -1,14 +1,14 @@
# Makefile for Kaizen Agentic development tasks # Makefile for Kaizen Agentic development tasks
.PHONY: help setup-complete setup-structure setup-python setup-tools setup-docs setup-tests setup-verify ensure-project-structure install-dev install-local install-global standards-check standards-fix standards-test test test-all build clean lint format venv-status agents-list agents-update agents-validate agents-status agents-sync-package agents-install-cli release-check release-prepare release-test release-publish publish-gitea package-check release-finalize release-rollback .PHONY: help setup-complete setup-structure setup-python setup-tools setup-docs setup-tests setup-verify ensure-project-structure install-dev install-local install-global standards-check standards-fix standards-test test test-all build clean lint format venv-status agents-list agents-update agents-validate agents-status agents-sync-package agents-install-cli release-check release-prepare release-test release-publish publish-forgejo package-check release-finalize release-rollback
# Variables # Variables
VENV = .venv VENV = .venv
VENV_PYTHON = $(VENV)/bin/python VENV_PYTHON = $(VENV)/bin/python
VENV_PIP = $(VENV)/bin/pip VENV_PIP = $(VENV)/bin/pip
GITEA_PACKAGE_OWNER ?= coulomb FORGEJO_PACKAGE_OWNER ?= coulomb
GITEA_PYPI_REPOSITORY_URL ?= https://gitea.coulomb.social/api/packages/$(GITEA_PACKAGE_OWNER)/pypi FORGEJO_PYPI_REPOSITORY_URL ?= https://forgejo.coulomb.social/api/packages/$(FORGEJO_PACKAGE_OWNER)/pypi
GITEA_PYPI_SIMPLE_URL ?= https://gitea.coulomb.social/api/packages/$(GITEA_PACKAGE_OWNER)/pypi/simple/ FORGEJO_PYPI_SIMPLE_URL ?= https://forgejo.coulomb.social/api/packages/$(FORGEJO_PACKAGE_OWNER)/pypi/simple/
# Default target # Default target
help: help:
@ -48,10 +48,10 @@ help:
@echo " release-check - Validate release readiness (tests, linting, version consistency)" @echo " release-check - Validate release readiness (tests, linting, version consistency)"
@echo " release-prepare - Prepare release (update versions, build packages)" @echo " release-prepare - Prepare release (update versions, build packages)"
@echo " package-check - Build and validate wheel/sdist with twine" @echo " package-check - Build and validate wheel/sdist with twine"
@echo " publish-gitea - Publish dist/* to Coulomb Gitea PyPI registry" @echo " publish-forgejo - Publish dist/* to the Forgejo PyPI registry"
@echo " release-test - Test publication workflow using TestPyPI" @echo " release-test - Test publication workflow using TestPyPI"
@echo " release-publish - Publish to production PyPI (pypi.org)" @echo " release-publish - Publish to production PyPI (pypi.org)"
@echo " release-finalize - Post-release tasks (tags, GitHub release, documentation)" @echo " release-finalize - Post-release tasks (tags, Forgejo release, documentation)"
@echo " release-rollback - Emergency rollback procedures" @echo " release-rollback - Emergency rollback procedures"
@echo "" @echo ""
@echo "Development:" @echo "Development:"
@ -970,7 +970,7 @@ release-prepare: release-check clean
ls -la dist/ | grep "$$VERSION" || echo " • Package files:"; ls -la dist/; \ ls -la dist/ | grep "$$VERSION" || echo " • Package files:"; ls -la dist/; \
echo ""; \ echo ""; \
echo "💡 Next steps:"; \ echo "💡 Next steps:"; \
echo " • Run 'make publish-gitea' for Coulomb Gitea PyPI"; \ echo " • Run 'make publish-forgejo' for Forgejo PyPI"; \
echo " • Run 'make release-test' to test publication on TestPyPI"; \ echo " • Run 'make release-test' to test publication on TestPyPI"; \
echo " • Run 'make release-publish' for pypi.org (when configured)" echo " • Run 'make release-publish' for pypi.org (when configured)"
@ -979,15 +979,15 @@ package-check: release-prepare
$(VENV_PYTHON) -c "import twine" 2>/dev/null || $(VENV_PIP) install twine $(VENV_PYTHON) -c "import twine" 2>/dev/null || $(VENV_PIP) install twine
$(VENV_PYTHON) -m twine check dist/* $(VENV_PYTHON) -m twine check dist/*
# Publish to Coulomb Gitea PyPI registry # Publish to the Forgejo PyPI registry
publish-gitea: package-check publish-forgejo: package-check
ifndef TWINE_USERNAME ifndef TWINE_USERNAME
$(error TWINE_USERNAME is required (e.g. export TWINE_USERNAME=<gitea-user>)) $(error TWINE_USERNAME is required (e.g. export TWINE_USERNAME=<forgejo-user>))
endif endif
ifndef TWINE_PASSWORD ifndef TWINE_PASSWORD
$(error TWINE_PASSWORD is required (e.g. export TWINE_PASSWORD=$$GITEA_API_TOKEN)) $(error TWINE_PASSWORD is required (e.g. export TWINE_PASSWORD=$$FORGEJO_PYPI_TOKEN))
endif endif
$(VENV_PYTHON) -m twine upload --repository-url "$(GITEA_PYPI_REPOSITORY_URL)" dist/* $(VENV_PYTHON) -m twine upload --repository-url "$(FORGEJO_PYPI_REPOSITORY_URL)" dist/*
# Test publication workflow using TestPyPI # Test publication workflow using TestPyPI
release-test: release-prepare release-test: release-prepare
@ -1034,7 +1034,7 @@ release-publish: release-check
echo " • Generate API token"; \ echo " • Generate API token"; \
echo " • Store in ~/.pypirc or use keyring" echo " • Store in ~/.pypirc or use keyring"
# Post-release tasks (tags, GitHub release, documentation) # Post-release tasks (tags, Forgejo release, documentation)
release-finalize: $(VENV)/bin/activate release-finalize: $(VENV)/bin/activate
@echo "🏁 Finalizing release..." @echo "🏁 Finalizing release..."
@echo "" @echo ""
@ -1050,16 +1050,16 @@ release-finalize: $(VENV)/bin/activate
echo " ✅ Tag created"; \ echo " ✅ Tag created"; \
fi; \ fi; \
echo ""; \ echo ""; \
echo " • GitHub Release:"; \ echo " • Forgejo Release:"; \
echo " 💡 Manual steps required:"; \ echo " 💡 Manual steps required:"; \
echo " 1. Push tags: git push origin v$$VERSION"; \ echo " 1. Push tags: git push origin v$$VERSION"; \
echo " 2. Create GitHub release at:"; \ echo " 2. Create Forgejo release at:"; \
echo " https://github.com/kaizen-agentic/kaizen-agentic/releases/new"; \ echo " https://forgejo.coulomb.social/coulomb/kaizen-agentic/releases/new"; \
echo " 3. Upload dist/ files as release assets"; \ echo " 3. Upload dist/ files as release assets"; \
echo ""; \ echo ""; \
echo " • Documentation:"; \ echo " • Documentation:"; \
echo " 💡 Verify installation instructions work:"; \ echo " 💡 Verify installation instructions work:"; \
echo " pip install kaizen-agentic==$$VERSION --extra-index-url <gitea-pypi-simple>"; \ echo " pip install kaizen-agentic==$$VERSION --extra-index-url $(FORGEJO_PYPI_SIMPLE_URL)"; \
echo " See docs/PACKAGE_RELEASE.md"; \ echo " See docs/PACKAGE_RELEASE.md"; \
echo ""; \ echo ""; \
echo "✅ Release finalization checklist provided"; \ echo "✅ Release finalization checklist provided"; \

View file

@ -12,7 +12,7 @@ This project embraces the Japanese concept of "kaizen" (continuous improvement)
**From Source (Development):** **From Source (Development):**
```bash ```bash
git clone https://github.com/kaizen-agentic/kaizen-agentic.git git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic cd kaizen-agentic
make setup-complete make setup-complete
make agents-install-cli make agents-install-cli
@ -21,7 +21,7 @@ source .venv/bin/activate # Required for each session
**Global Installation (Available from any directory):** **Global Installation (Available from any directory):**
```bash ```bash
git clone https://github.com/kaizen-agentic/kaizen-agentic.git git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic cd kaizen-agentic
make setup-complete make setup-complete
python3 -m build && make install-global python3 -m build && make install-global
@ -30,24 +30,21 @@ python3 -m build && make install-global
**Local Package Testing:** **Local Package Testing:**
```bash ```bash
git clone https://github.com/kaizen-agentic/kaizen-agentic.git git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic cd kaizen-agentic
make setup-complete make setup-complete
python3 -m build && make install-local python3 -m build && make install-local
source .venv/bin/activate # Required for each session source .venv/bin/activate # Required for each session
``` ```
**From Gitea PyPI (v1.1.0+):** **From Forgejo PyPI (v1.1.0+):**
```bash ```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
# or global CLI via pipx # or global CLI via pipx
pipx install kaizen-agentic \ pipx install kaizen-agentic \
--pip-args="--extra-index-url https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --pip-args="--extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/"
``` ```
See [docs/PACKAGE_RELEASE.md](docs/PACKAGE_RELEASE.md) for release and CI details. See [docs/PACKAGE_RELEASE.md](docs/PACKAGE_RELEASE.md) for release and CI details.

View file

@ -30,7 +30,7 @@ This repo is the canonical home for the **KaizenAgentic** operating model (`INTE
- **Project templates** (python-basic, python-web, python-cli, python-data, comprehensive) — agent bundles in registry code - **Project templates** (python-basic, python-web, python-cli, python-data, comprehensive) — agent bundles in registry code
- **Python framework** (`src/kaizen_agentic/`): `Agent`/`AgentConfig`, `AgentRegistry`, `AgentInstaller`, `OptimizationLoop`/`PerformanceMetrics`, detection/migration/extensions - **Python framework** (`src/kaizen_agentic/`): `Agent`/`AgentConfig`, `AgentRegistry`, `AgentInstaller`, `OptimizationLoop`/`PerformanceMetrics`, detection/migration/extensions
- **Packaged agent data** (`src/kaizen_agentic/data/agents/`) — agents bundled for pip installs (sync with `agents/` via `make agents-update`) - **Packaged agent data** (`src/kaizen_agentic/data/agents/`) — agents bundled for pip installs (sync with `agents/` via `make agents-update`)
- **Gitea PyPI publication** — `make publish-gitea`, tag-triggered `.gitea/workflows/publish-python-package.yml` (v1.1.0+) - **Forgejo PyPI publication** — `make publish-forgejo`, tag-triggered `.forgejo/workflows/publish-python-package.yml` (v1.1.0+)
- **Custodian MCP integration** (owned by `the-custodian`): `list_kaizen_agents()` and `get_kaizen_agent()` - **Custodian MCP integration** (owned by `the-custodian`): `list_kaizen_agents()` and `get_kaizen_agent()`
- **ADRs and workplans** for memory, protocols, workplan, and metrics conventions - **ADRs and workplans** for memory, protocols, workplan, and metrics conventions
@ -43,7 +43,7 @@ This repo is the canonical home for the **KaizenAgentic** operating model (`INTE
- Project-specific implementation (agents guide work; they do not build the target software) - Project-specific implementation (agents guide work; they do not build the target software)
- Custodian State Hub, MCP server code, or cross-domain governance (consumed, not owned) - Custodian State Hub, MCP server code, or cross-domain governance (consumed, not owned)
- Full KaizenGuidance codemod pipeline (vision in `wiki/KaizenGuidance.md`; not yet implemented) - Full KaizenGuidance codemod pipeline (vision in `wiki/KaizenGuidance.md`; not yet implemented)
- Public pypi.org distribution (optional; Coulomb Gitea registry is primary) - Public pypi.org distribution (optional; the Forgejo registry is primary)
--- ---
@ -69,12 +69,12 @@ This repo is the canonical home for the **KaizenAgentic** operating model (`INTE
## Current State ## Current State
- Status: stabilizing (v1.1.0 published on Gitea PyPI; WP-00010004 completed) - Status: stabilizing (v1.4.0 published on Forgejo PyPI; WP-00010009 completed)
- Strategic layer: `INTENT.md` and `wiki/` established; ecosystem integration docs in `wiki/EcosystemIntegration.md` - Strategic layer: `INTENT.md` and `wiki/` established; ecosystem integration docs in `wiki/EcosystemIntegration.md`
- Implementation: 20 agents, full CLI (`metrics`, `memory`, `feedback`), agency memory + ADR-004 metrics + optimizer wiring - Implementation: 20 agents, full CLI (`metrics`, `memory`, `feedback`), agency memory + ADR-004 metrics + optimizer wiring
- Stability: CLI stable (Click workaround in place); Gitea CI on main; publish workflow on `v*` tags - Stability: CLI stable (Click workaround in place); Forgejo CI on main; publish workflow on `v*` tags
- Usage: internal dev projects and Custodian MCP hub-wide; pip install via Gitea extra index - Usage: internal dev projects and Custodian MCP hub-wide; pip install via Forgejo extra index
- Active work: **WP-0006** (scheduled agent execution via activity-core → v1.3.0) - Active work: none; **KAIZEN-WP-0010** completed the CoulombCore distribution cleanup
--- ---

129
WORK-RECORDS.md Normal file
View file

@ -0,0 +1,129 @@
# Work Records — kaizen-agentic
> Generated by `statehub fix-consistency` (CUST-WP-0061-T04, work-record
> stage 3). Do not edit by hand — edit the source file/block listed for
> each record and re-run fix-consistency to refresh this index. Archived
> workplans are omitted; closed decisions/intakes/engagements stay listed
> so recently-resolved work is still visible. [auto]
| Kind | ID | Status | Lane | Source |
| --- | --- | --- | --- | --- |
| workplan | KAIZEN-WP-0001 | completed | — | workplans/kaizen-agentic-WP-0001-community-engagement.md |
| workplan | KAIZEN-WP-0002 | done | — | workplans/kaizen-agentic-WP-0002-agency-framework.md |
| workplan | KAIZEN-WP-0003 | completed | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| workplan | KAIZEN-WP-0004 | completed | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| workplan | KAIZEN-WP-0005 | completed | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| workplan | KAIZEN-WP-0006 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| workplan | KAIZEN-WP-0007 | done | — | workplans/kaizen-agentic-WP-0007-agent-authoring-doc-generation.md |
| workplan | KAIZEN-WP-0008 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| workplan | KAIZEN-WP-0009 | finished | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| workplan | KAIZEN-WP-0010 | finished | — | workplans/kaizen-agentic-WP-0010-forgejo-pypi-migration.md |
| task | T01 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T02 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T03 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T04 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T05 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T06 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T07 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T08 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T09 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T10 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T11 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T12 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T13 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T14 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T15 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T16 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T17 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T18 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T19 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T20 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T21 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T22 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T23 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T24 | done | — | workplans/kaizen-agentic-WP-0003-measurement-loop.md |
| task | T01 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T02 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T03 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T04 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T05 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T06 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T07 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T08 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T09 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T10 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T11 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T12 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T13 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T14 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T15 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T16 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T17 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T18 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T19 | done | — | workplans/kaizen-agentic-WP-0004-ecosystem-integration.md |
| task | T01 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T02 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T03 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T04 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T05 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T06 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T07 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T08 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T09 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T10 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T11 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T12 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T13 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T14 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T15 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T16 | done | — | workplans/kaizen-agentic-WP-0005-adoption-parity.md |
| task | T01 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T02 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T03 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T04 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T05 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T06 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T07 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T08 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T09 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T10 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T11 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T12 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T13 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T14 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T15 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T16 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T17 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T18 | done | — | workplans/kaizen-agentic-WP-0006-scheduled-agent-execution.md |
| task | T01 | done | — | workplans/kaizen-agentic-WP-0007-agent-authoring-doc-generation.md |
| task | T02 | done | — | workplans/kaizen-agentic-WP-0007-agent-authoring-doc-generation.md |
| task | T03 | done | — | workplans/kaizen-agentic-WP-0007-agent-authoring-doc-generation.md |
| task | T04 | done | — | workplans/kaizen-agentic-WP-0007-agent-authoring-doc-generation.md |
| task | T05 | done | — | workplans/kaizen-agentic-WP-0007-agent-authoring-doc-generation.md |
| task | T06 | done | — | workplans/kaizen-agentic-WP-0007-agent-authoring-doc-generation.md |
| task | KAIZEN-WP-0008-T01 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T02 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T03 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T04 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T05 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T06 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T07 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T08 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T09 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0008-T10 | done | — | workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md |
| task | KAIZEN-WP-0009-T01 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T02 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T03 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T04 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T05 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T06 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T07 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T08 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T09 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T10 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0009-T11 | done | — | workplans/kaizen-agentic-WP-0009-forward-deployed-agency.md |
| task | KAIZEN-WP-0010-T01 | done | — | workplans/kaizen-agentic-WP-0010-forgejo-pypi-migration.md |
| task | KAIZEN-WP-0010-T02 | done | — | workplans/kaizen-agentic-WP-0010-forgejo-pypi-migration.md |
| task | KAIZEN-WP-0010-T03 | done | — | workplans/kaizen-agentic-WP-0010-forgejo-pypi-migration.md |
| task | KAIZEN-WP-0010-T04 | done | — | workplans/kaizen-agentic-WP-0010-forgejo-pypi-migration.md |
| task | KAIZEN-WP-0010-T05 | done | — | workplans/kaizen-agentic-WP-0010-forgejo-pypi-migration.md |

View file

@ -21,12 +21,12 @@ You are the MarkiTect project assistant, specialized in providing project status
- **roadmap/**: Directory with current and close range roadmap-topic-directories for concepts, workplans, examples... - **roadmap/**: Directory with current and close range roadmap-topic-directories for concepts, workplans, examples...
- **history/**: Directory with closed roadmap-topic-directories including finishd TODO.md files as YYMMDD-DONE.md - **history/**: Directory with closed roadmap-topic-directories including finishd TODO.md files as YYMMDD-DONE.md
- **Makefile**: Provides helpers to use and improve the capabilities provided by the project - **Makefile**: Provides helpers to use and improve the capabilities provided by the project
**Gitea Issues**: Backlog of issues and backlog of tasks stored as issues in gitea before selection as roadmap topics **Forgejo Issues**: Backlog of issues and tasks stored as issues in Forgejo before selection as roadmap topics
### Project Infrastructure Knowledge ### Project Infrastructure Knowledge
**Repository Structure:** **Repository Structure:**
- Main project hosted on Gitea with issue tracking for use cases and tasks - Main project hosted on Forgejo with issue tracking for use cases and tasks
- Planning documentation goes to roadmap/ROADMAPTOPIC subdirectories - Planning documentation goes to roadmap/ROADMAPTOPIC subdirectories
- Closed roadmap-topic-directories git-mv to history/ - Closed roadmap-topic-directories git-mv to history/
- Auto generated documentation maintained in docs/ - Auto generated documentation maintained in docs/
@ -36,7 +36,7 @@ You are the MarkiTect project assistant, specialized in providing project status
Important: Respect the directory structure! If in doubt ask or use directories under tmp/ to keep the structure clean! Important: Respect the directory structure! If in doubt ask or use directories under tmp/ to keep the structure clean!
**Development Workflow:** **Development Workflow:**
- Issue-driven development using Gitea API integration - Issue-driven development using Forgejo API integration
- Issue management via universal issue-facade CLI that works with multiple backends - Issue management via universal issue-facade CLI that works with multiple backends
- All commits require green test state - All commits require green test state
@ -48,8 +48,8 @@ Important: Respect the directory structure! If in doubt ask or use directories u
- **Discovery Tools**: `make capability-search TERM=xyz` to find existing functionality - **Discovery Tools**: `make capability-search TERM=xyz` to find existing functionality
**Issue Management Protocol:** **Issue Management Protocol:**
- **Gitea-First**: Feature requests, bugs, and enhancements should be documented as Gitea issues - **Forgejo-First**: Feature requests, bugs, and enhancements should be documented as Forgejo issues
- **Issue Creation**: When new requirements emerge, create issues in Gitea immediately but do NOT implement immediately - **Issue Creation**: When new requirements emerge, create issues in Forgejo immediately but do NOT implement immediately
- **Strategic Planning**: Issues should be prioritized and scheduled based on project roadmap (history/ROADMAP.md) - **Strategic Planning**: Issues should be prioritized and scheduled based on project roadmap (history/ROADMAP.md)
- **Implementation Discipline**: Only work on issues that are explicitly planned for the current session - **Implementation Discipline**: Only work on issues that are explicitly planned for the current session
- **Issue Workflow**: Create → Triage → Plan → Schedule → Implement → Close - **Issue Workflow**: Create → Triage → Plan → Schedule → Implement → Close
@ -67,12 +67,12 @@ When asked about project status or next steps:
2. **Review Recent Progress**: Check CHANGELOG.md for previous work and progress 2. **Review Recent Progress**: Check CHANGELOG.md for previous work and progress
3. **Check Planned Work**: TODO.md documents next steps and priorities, if empty see topics in roadmap/ 3. **Check Planned Work**: TODO.md documents next steps and priorities, if empty see topics in roadmap/
4. **Project Scope and Goals**: Vision, Mission, Guidelines and Usecases live in wiki/ if available 4. **Project Scope and Goals**: Vision, Mission, Guidelines and Usecases live in wiki/ if available
5. **Planning New Stuff**: Requirements (Epics and Stories) are gitea issues to be planned as roadmap topics 5. **Planning New Stuff**: Requirements (Epics and Stories) are Forgejo issues to be planned as roadmap topics
6. **Consider Git Status**: Allways be aware of current working directory state and recent commits 6. **Consider Git Status**: Allways be aware of current working directory state and recent commits
### Issue Management Guidelines ### Issue Management Guidelines
**When to Create Gitea Issues:** **When to Create Forgejo Issues:**
- New feature requests or enhancement ideas emerge during development - New feature requests or enhancement ideas emerge during development
- Bugs or technical debt are discovered but not immediately fixable - Bugs or technical debt are discovered but not immediately fixable
- Future improvements are identified but outside current session and topic scope - Future improvements are identified but outside current session and topic scope

View file

@ -21,7 +21,7 @@ You are a specialized release management agent focused on Python package publica
- **Package Building**: Build distribution packages (sdist and wheel) using modern Python tools - **Package Building**: Build distribution packages (sdist and wheel) using modern Python tools
- **Quality Assurance**: Run comprehensive tests and validation before publication - **Quality Assurance**: Run comprehensive tests and validation before publication
- **PyPI Publication**: Handle TestPyPI and production PyPI uploads with proper authentication - **PyPI Publication**: Handle TestPyPI and production PyPI uploads with proper authentication
- **Post-Release Tasks**: Update documentation, create GitHub releases, and notify stakeholders - **Post-Release Tasks**: Update documentation, create Forgejo releases, and notify stakeholders
### Documentation Updates ### Documentation Updates
- **Installation Instructions**: Update installation guides to reflect publication status - **Installation Instructions**: Update installation guides to reflect publication status
@ -39,7 +39,7 @@ You are a specialized release management agent focused on Python package publica
### Production Release ### Production Release
- Full validation and testing required - Full validation and testing required
- Publish to production PyPI - Publish to production PyPI
- Create GitHub releases with assets - Create Forgejo releases with assets
- Update all documentation - Update all documentation
### Patch Releases ### Patch Releases
@ -55,7 +55,7 @@ Provide these release- prefixed make targets:
- `release-prepare`: Prepare release (update versions, build packages) - `release-prepare`: Prepare release (update versions, build packages)
- `release-test`: Test publication workflow using TestPyPI - `release-test`: Test publication workflow using TestPyPI
- `release-publish`: Publish to production PyPI - `release-publish`: Publish to production PyPI
- `release-finalize`: Post-release tasks (tags, GitHub release, documentation) - `release-finalize`: Post-release tasks (tags, Forgejo release, documentation)
- `release-rollback`: Emergency rollback procedures - `release-rollback`: Emergency rollback procedures
## Best Practices ## Best Practices
@ -83,7 +83,7 @@ Provide these release- prefixed make targets:
## Integration Points ## Integration Points
### CI/CD Systems ### CI/CD Systems
- GitHub Actions workflow integration - Forgejo Actions workflow integration
- Automated testing on multiple Python versions - Automated testing on multiple Python versions
- Security scanning and dependency checking - Security scanning and dependency checking
- Automated documentation deployment - Automated documentation deployment

View file

@ -123,7 +123,7 @@ You are the authoritative guide for the TDD8 workflow using the tddai system. Yo
**Supporting Commands:** **Supporting Commands:**
- `make test-coverage NUM=X` - Analyze test coverage for an issue - `make test-coverage NUM=X` - Analyze test coverage for an issue
- `make test` - Run all tests - `make test` - Run all tests
- `make list-issues` - Show all Gitea issues with status - `make list-issues` - Show all Forgejo issues with status
- `make show-issue NUM=X` - Show detailed view of specific issue - `make show-issue NUM=X` - Show detailed view of specific issue
### Workspace Management Understanding ### Workspace Management Understanding
@ -306,7 +306,7 @@ Extend data access layer with search methods. Consider adding full-text search f
- **Issue Tracker Integration:** Compatible with Gitea, GitHub, and similar platforms - **Issue Tracker Integration:** Compatible with Gitea, GitHub, and similar platforms
- **Issue Reading:** Use `IssueFetcher` for programmatic access - **Issue Reading:** Use `IssueFetcher` for programmatic access
- **Issue Writing:** Use `IssueWriter` for updates via authenticated PATCH - **Issue Writing:** Use `IssueWriter` for updates via authenticated PATCH
- **Environment Variables:** `GITEA_API_TOKEN` or platform-specific tokens for authentication - **Environment Variables:** `FORGEJO_API_TOKEN` or platform-specific tokens for authentication
### Test Framework ### Test Framework
- **pytest-based:** All tests use pytest framework - **pytest-based:** All tests use pytest framework

View file

@ -86,7 +86,7 @@ Remove tests when:
- Update tests to reflect new command structures and access patterns - Update tests to reflect new command structures and access patterns
### Backend Systems ### Backend Systems
- **Primary**: Gitea backend for issue management - **Primary**: Forgejo backend for issue management
- **Secondary**: Local plugin for offline/alternative workflows - **Secondary**: Local plugin for offline/alternative workflows
- **Focus**: Prioritize tests for actively used functionality - **Focus**: Prioritize tests for actively used functionality
@ -122,7 +122,7 @@ ACTION: Modify assertions to match new CLI structure
### Scenario 2: Obsolete Functionality ### Scenario 2: Obsolete Functionality
``` ```
FAILING: test_local_plugin_sequential_numbering() FAILING: test_local_plugin_sequential_numbering()
CAUSE: Local plugin not actively used, Gitea is primary backend CAUSE: Local plugin not actively used, Forgejo is primary backend
DECISION: Remove test as functionality is not essential to current workflow DECISION: Remove test as functionality is not essential to current workflow
ACTION: Remove test method and document rationale ACTION: Remove test method and document rationale
``` ```

View file

@ -13,14 +13,11 @@ The Kaizen Agentic framework provides a comprehensive system for distributing an
## Installation ## Installation
Install the Kaizen Agentic package from the Coulomb Gitea PyPI registry: Install the Kaizen Agentic package from the Forgejo PyPI registry:
```bash ```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
This provides the `kaizen-agentic` CLI tool for managing agents. See This provides the `kaizen-agentic` CLI tool for managing agents. See

View file

@ -4,14 +4,11 @@ Quick reference for the `kaizen-agentic` command-line tool.
## Installation ## Installation
From Coulomb Gitea PyPI (see [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md)): From Forgejo PyPI (see [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md)):
```bash ```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
## Core Commands ## Core Commands

View file

@ -6,12 +6,12 @@ How to share bugs, ideas, and adoption experience for kaizen-agentic.
| Channel | Use for | | Channel | Use for |
|---------|---------| |---------|---------|
| **Gitea Issues** | Bugs, features, general feedback (templates below) | | **Forgejo Issues** | Bugs, features, general feedback (templates below) |
| **`kaizen-agentic feedback`** | Print links and template guidance from the CLI | | **`kaizen-agentic feedback`** | Print links and template guidance from the CLI |
| **Pull requests** | Code and agent-definition contributions (see CONTRIBUTING.md) | | **Pull requests** | Code and agent-definition contributions (see CONTRIBUTING.md) |
| **State Hub messages** | Cross-repo coordination between custodian agents (advanced) | | **State Hub messages** | Cross-repo coordination between custodian agents (advanced) |
## Gitea issue templates ## Forgejo issue templates
Choose a template when opening a new issue: Choose a template when opening a new issue:
@ -19,7 +19,7 @@ Choose a template when opening a new issue:
- **Feature request** — enhancements with proposed scope - **Feature request** — enhancements with proposed scope
- **General feedback** — experience and adoption notes - **General feedback** — experience and adoption notes
Repository: [coulomb/kaizen-agentic](https://gitea.coulomb.social/coulomb/kaizen-agentic/issues) Repository: [coulomb/kaizen-agentic](https://forgejo.coulomb.social/coulomb/kaizen-agentic/issues)
## CLI ## CLI

View file

@ -12,7 +12,7 @@ This guide walks you through using Kaizen Agentic agents in any project, from in
```bash ```bash
# Clone the repository # Clone the repository
git clone https://github.com/kaizen-agentic/kaizen-agentic.git git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic cd kaizen-agentic
# Set up development environment # Set up development environment
@ -29,7 +29,7 @@ source .venv/bin/activate
```bash ```bash
# Clone the repository and build package # Clone the repository and build package
git clone https://github.com/kaizen-agentic/kaizen-agentic.git git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic cd kaizen-agentic
make setup-complete make setup-complete
@ -45,7 +45,7 @@ source .venv/bin/activate
```bash ```bash
# Clone the repository and build package # Clone the repository and build package
git clone https://github.com/kaizen-agentic/kaizen-agentic.git git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic cd kaizen-agentic
make setup-complete make setup-complete
@ -57,21 +57,18 @@ make install-global
# CLI available from any directory # CLI available from any directory
``` ```
**Option D: From Gitea PyPI (v1.1.0+)** **Option D: From Forgejo PyPI (v1.1.0+)**
```bash ```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
# or global CLI via pipx # or global CLI via pipx
pipx install kaizen-agentic \ pipx install kaizen-agentic \
--pip-args="--extra-index-url https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --pip-args="--extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/"
``` ```
> **📦 Registry**: Published on the Coulomb Gitea PyPI registry. Dependencies resolve > **📦 Registry**: Published on the Forgejo PyPI registry. Dependencies resolve
> from public PyPI via `--extra-index-url`. See [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md). > from public PyPI via `--extra-index-url`. See [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md).
### 2. Verify Installation ### 2. Verify Installation
@ -273,7 +270,7 @@ jobs:
python-version: '3.8' python-version: '3.8'
- run: >- - run: >-
pip install kaizen-agentic pip install kaizen-agentic
--extra-index-url "https://${{ secrets.GITEA_PACKAGE_USER }}:${{ secrets.GITEA_PACKAGE_TOKEN }}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
- run: kaizen-agentic validate - run: kaizen-agentic validate
``` ```
@ -413,7 +410,7 @@ kaizen-agentic status
# New team member setup # New team member setup
git clone project-repo git clone project-repo
cd project-repo cd project-repo
# see Option D for GITEA_PACKAGE_USER / GITEA_PACKAGE_TOKEN and --extra-index-url # see Option D for the Forgejo --extra-index-url
pip install kaizen-agentic pip install kaizen-agentic
kaizen-agentic status # See what agents are used kaizen-agentic status # See what agents are used
kaizen-agentic validate # Verify everything works kaizen-agentic validate # Verify everything works
@ -428,16 +425,14 @@ cat CLAUDE.md
**"Command not found: kaizen-agentic"** **"Command not found: kaizen-agentic"**
```bash ```bash
# Install from Gitea PyPI (same credentials as Option D) # Install from Forgejo PyPI (same endpoint as Option D)
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
# Or if using virtual env: # Or if using virtual env:
source .venv/bin/activate source .venv/bin/activate
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
**"No agents directory found"** **"No agents directory found"**

View file

@ -9,14 +9,11 @@ This step-by-step tutorial will guide you through creating your first project wi
## Step 1: Install Kaizen Agentic ## Step 1: Install Kaizen Agentic
From the Coulomb Gitea PyPI registry (dependencies resolve from public PyPI): From the Forgejo PyPI registry (dependencies resolve from public PyPI):
```bash ```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
See [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md) for pipx and release details. See [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md) for pipx and release details.
@ -243,11 +240,9 @@ kaizen-agentic status
**"kaizen-agentic: command not found"** **"kaizen-agentic: command not found"**
```bash ```bash
# Same install as Step 1 (Gitea extra index — see PACKAGE_RELEASE.md) # Same install as Step 1 (Forgejo extra index — see PACKAGE_RELEASE.md)
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
**"make: command not found"** **"make: command not found"**

View file

@ -52,7 +52,7 @@ invoke kaizen-agentic CLI commands.
5. **Enable gradually** — set `enabled: true` per definition after a manual smoke test 5. **Enable gradually** — set `enabled: true` per definition after a manual smoke test
against a repo with `.kaizen/metrics/` populated. against a repo with `.kaizen/metrics/` populated.
6. **Verify credentials** — scheduled runs need `kaizen-agentic` on PATH and any 6. **Verify credentials** — scheduled runs need `kaizen-agentic` on PATH and any
Gitea PyPI extra index if the runner installs from registry (see PACKAGE_RELEASE.md). Forgejo PyPI extra index if the runner installs from registry (see PACKAGE_RELEASE.md).
**kaizen-agentic maintainer checklist:** **kaizen-agentic maintainer checklist:**

View file

@ -1,30 +1,27 @@
# Python Package Release # Python Package Release
`kaizen-agentic` publishes as the `kaizen-agentic` Python package on the Coulomb `kaizen-agentic` publishes as the `kaizen-agentic` Python package on the Forgejo
Gitea PyPI registry. Public [pypi.org](https://pypi.org/) distribution is optional PyPI registry. Public [pypi.org](https://pypi.org/) distribution is optional
and not required for ecosystem use. and not required for ecosystem use.
## Install (consumers) ## Install (consumers)
Dependencies such as `pyyaml` resolve from public PyPI. Use Gitea as an extra index: Dependencies such as `pyyaml` resolve from public PyPI. Use Forgejo as an extra index:
```bash ```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
Global CLI via pipx: Global CLI via pipx:
```bash ```bash
pipx install kaizen-agentic \ pipx install kaizen-agentic \
--pip-args="--extra-index-url https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/" --pip-args="--extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/"
``` ```
Do not commit tokenized index URLs. Inject credentials via environment variables or Consumer reads are anonymous. Keep publish credentials in Forgejo Actions secrets
CI secrets. or inject them through the environment for a deliberate local release.
## Local Release ## Local Release
@ -37,53 +34,47 @@ make package-check
Publish to the Coulomb organization registry: Publish to the Coulomb organization registry:
```bash ```bash
TWINE_USERNAME=<gitea-user> \ TWINE_USERNAME=<forgejo-user> \
TWINE_PASSWORD=<package-token> \ TWINE_PASSWORD=<package-token> \
make publish-gitea make publish-forgejo
``` ```
Package upload endpoint: Package upload endpoint:
```text ```text
https://gitea.coulomb.social/api/packages/coulomb/pypi https://forgejo.coulomb.social/api/packages/coulomb/pypi
``` ```
Consumer simple index: Consumer simple index:
```text ```text
https://gitea.coulomb.social/api/packages/coulomb/pypi/simple/ https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
## Gitea repository secrets (one-time) ## Forgejo repository secrets (one-time)
Configure in Gitea: **Repository → Settings → Actions → Secrets**. Configure in Forgejo: **Repository → Settings → Actions → Secrets** (or use
organization-level secrets when managed centrally).
| Secret | Value | | Secret | Value |
|--------|-------| |--------|-------|
| `PACKAGE_USER` | `tegwick` — Gitea username that owns the package token | | `FORGEJO_PYPI_USER` | Forgejo username that owns the package token |
| `PACKAGE_TOKEN` | Gitea API token named `inter-hub-pkg-rep` (`write:package`) | | `FORGEJO_PYPI_TOKEN` | Forgejo token with package-write permission |
Token custody (OpenBao): Discover credential ownership before requesting or rotating a token:
```text ```bash
platform/data/operators/inter-hub/package-management warden route find "publish kaizen-agentic to Forgejo PyPI" --json
→ field: inter-hub-pkg-rep
``` ```
Paste the **plaintext** token into the Gitea secret UI. `inter-hub-pkg-rep` is the Never commit or copy the token into documentation, workplans, or State Hub.
token name in Gitea, not a username.
Gitea rejects secret names prefixed with `GITEA_` — use `PACKAGE_USER` / `PACKAGE_TOKEN`
(not `GITEA_PACKAGE_USER`). Workflows use `runs-on: haskelseed` and native `git clone`
(no GitHub Marketplace actions).
The publish workflow fails at the upload step when either secret is missing or The publish workflow fails at the upload step when either secret is missing or
invalid. Do not commit tokens to the repository. invalid. Do not commit tokens to the repository.
**Smoke-test (2026-06-16):** `workflow_dispatch` run #3042 authenticated successfully **Verified (2026-08-20):** the Forgejo index serves `kaizen-agentic==1.4.0`.
(`409 Conflict` on re-upload of `1.1.0` — expected). Root causes of earlier `401`s: A fresh virtual environment installed it with `--no-cache-dir` and the CLI reported
wrong token (`GITEA_API_TOKEN` ≠ package token), wrong username (`inter-hub-pkg-rep` version `1.4.0`.
is a token name), and a stale org-level secret. Build uses `.build-venv` (PEP 668).
Verify secrets without cutting a release: Verify secrets without cutting a release:
@ -103,13 +94,13 @@ Before `git tag vX.Y.Z && git push origin vX.Y.Z`:
- [ ] `make release-check` passes (tests, flake8, version consistency, agent parity) - [ ] `make release-check` passes (tests, flake8, version consistency, agent parity)
- [ ] `make package-check` builds and validates `dist/*` - [ ] `make package-check` builds and validates `dist/*`
- [ ] `CHANGELOG.md` has a dated `[X.Y.Z]` section matching `pyproject.toml` - [ ] `CHANGELOG.md` has a dated `[X.Y.Z]` section matching `pyproject.toml`
- [ ] `PACKAGE_USER` and `PACKAGE_TOKEN` secrets are set - [ ] `FORGEJO_PYPI_USER` and `FORGEJO_PYPI_TOKEN` secrets are set
- [ ] Publish workflow smoke-tested via `workflow_dispatch` (or prior tag release) - [ ] Publish workflow smoke-tested via `workflow_dispatch` (or prior tag release)
- [ ] `make agents-sync-package` run if `agents/` changed since last release - [ ] `make agents-sync-package` run if `agents/` changed since last release
## Gitea Actions Release ## Forgejo Actions Release
The `.gitea/workflows/publish-python-package.yml` workflow publishes on tags The `.forgejo/workflows/publish-python-package.yml` workflow publishes on tags
matching `v*`. matching `v*`.
Example: Example:
@ -135,11 +126,11 @@ A runner that executes a scheduled kaizen agent task (fired by activity-core)
needs: needs:
- **`kaizen-agentic` on PATH** — `pip install kaizen-agentic` (or `pipx install - **`kaizen-agentic` on PATH** — `pip install kaizen-agentic` (or `pipx install
kaizen-agentic`) using the Gitea PyPI extra index when installing from the kaizen-agentic`) using the Forgejo PyPI extra index when installing from the
internal registry: internal registry:
```bash ```bash
pip install kaizen-agentic \ pip install kaizen-agentic \
--extra-index-url https://gitea.coulomb.social/api/packages/coulomb/pypi/simple/ --extra-index-url https://forgejo.coulomb.social/api/packages/coulomb/pypi/simple/
``` ```
- **Repo checkout reachable** at the `host_paths[<host>]` registered in State - **Repo checkout reachable** at the `host_paths[<host>]` registered in State
Hub, with a valid `.kaizen/schedule.yml` (`kaizen-agentic schedule validate`). Hub, with a valid `.kaizen/schedule.yml` (`kaizen-agentic schedule validate`).

View file

@ -39,11 +39,11 @@ Potential v1.1 additions (not yet implemented):
## tele-mcp evaluation (deferred) ## tele-mcp evaluation (deferred)
[tele-mcp](https://gitea.coulomb.social/coulomb/tele-mcp) is a candidate MCP adapter [tele-mcp](https://forgejo.coulomb.social/coulomb/tele-mcp) is a candidate MCP adapter
for IDE-level telemetry (WP-0001 note). Assess before depending on it. Project and for IDE-level telemetry (WP-0001 note). Assess before depending on it. Project and
fleet layers above satisfy INTENT's "measurable agents" requirement without tele-mcp. fleet layers above satisfy INTENT's "measurable agents" requirement without tele-mcp.
## Feedback loop ## Feedback loop
User experience feedback uses [FEEDBACK.md](FEEDBACK.md) and Gitea issue templates — User experience feedback uses [FEEDBACK.md](FEEDBACK.md) and Forgejo issue templates —
separate from execution metrics. separate from execution metrics.

View file

@ -2,7 +2,7 @@
How kaizen-agentic supports a **customer engagement repo** for **improvement How kaizen-agentic supports a **customer engagement repo** for **improvement
loops** (reference: loops** (reference:
[coulomb-loop](https://gitea.coulomb.social/coulomb/coulomb-loop)). Second loop [coulomb-loop](https://forgejo.coulomb.social/coulomb/coulomb-loop)). Second loop
engagements should copy [customer-engagement-repo-layout.md](customer-engagement-repo-layout.md) engagements should copy [customer-engagement-repo-layout.md](customer-engagement-repo-layout.md)
and complete the checklist in one session. and complete the checklist in one session.
@ -93,7 +93,7 @@ kaizen-agentic schedule init --engagement <slug> --bootstrap-cadence weekly --fo
## Reference implementation ## Reference implementation
- Customer: [coulomb-loop INTENT](https://gitea.coulomb.social/coulomb/coulomb-loop/src/branch/main/INTENT.md) - Customer: [coulomb-loop INTENT](https://forgejo.coulomb.social/coulomb/coulomb-loop/src/branch/main/INTENT.md)
- Supplier workplan: [KAIZEN-WP-0008](../../workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md) - Supplier workplan: [KAIZEN-WP-0008](../../workplans/kaizen-agentic-WP-0008-coulomb-loop-supplier-engagement.md)
- Convention: [ADR-006](../adr/ADR-006-customer-engagement-convention.md) - Convention: [ADR-006](../adr/ADR-006-customer-engagement-convention.md)

View file

@ -2,7 +2,7 @@
Contract for a **customer engagement repository** that orchestrates kaizen Contract for a **customer engagement repository** that orchestrates kaizen
improvement loops across a fleet roster. Reference implementation: improvement loops across a fleet roster. Reference implementation:
[coulomb-loop](https://gitea.coulomb.social/coulomb/coulomb-loop) (`coulomb_social` domain). [coulomb-loop](https://forgejo.coulomb.social/coulomb/coulomb-loop) (`coulomb_social` domain).
Supplier agents and CLI live in `kaizen-agentic`. Runtime `.kaizen/` state lives Supplier agents and CLI live in `kaizen-agentic`. Runtime `.kaizen/` state lives
in **target repos**, not in the customer repo. in **target repos**, not in the customer repo.

View file

@ -56,9 +56,9 @@ test = [
kaizen-agentic = "kaizen_agentic.cli:safe_cli_wrapper" kaizen-agentic = "kaizen_agentic.cli:safe_cli_wrapper"
[project.urls] [project.urls]
"Homepage" = "https://github.com/kaizen-agentic/kaizen-agentic" "Homepage" = "https://forgejo.coulomb.social/coulomb/kaizen-agentic"
"Bug Reports" = "https://github.com/kaizen-agentic/kaizen-agentic/issues" "Bug Reports" = "https://forgejo.coulomb.social/coulomb/kaizen-agentic/issues"
"Source" = "https://github.com/kaizen-agentic/kaizen-agentic" "Source" = "https://forgejo.coulomb.social/coulomb/kaizen-agentic"
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
where = ["src"] where = ["src"]

View file

@ -16,7 +16,7 @@ maturity:
target: D5 target: D5
confidence: medium confidence: medium
rationale: README documents the agent library, the agency framework (persistent memory, Coach meta-agent rationale: README documents the agent library, the agency framework (persistent memory, Coach meta-agent
synthesising fleet-wide patterns), and a versioned release (v1.4.0); has .gitea/workflows CI. synthesising fleet-wide patterns), and a versioned release (v1.4.0); has .forgejo/workflows CI.
availability: availability:
current: A2 current: A2
target: A3 target: A3
@ -71,7 +71,7 @@ evidence:
- README.md - README.md
tests: tests:
- tests/ - tests/
- .gitea/workflows/ - .forgejo/workflows/
consumer_feedback: [] consumer_feedback: []
bug_reports: [] bug_reports: []
incidents: [] incidents: []
@ -95,7 +95,7 @@ promotion_history: []
### Discovery ### Discovery
README documents the agent library, the agency framework (persistent memory, Coach meta-agent synthesising fleet-wide patterns), and a versioned release (v1.4.0); has .gitea/workflows CI. README documents the agent library, the agency framework (persistent memory, Coach meta-agent synthesising fleet-wide patterns), and a versioned release (v1.4.0); has .forgejo/workflows CI.
### Availability ### Availability

View file

@ -172,14 +172,14 @@ def safe_cli_wrapper():
_FEEDBACK_CHANNELS = { _FEEDBACK_CHANNELS = {
"issues": "https://gitea.coulomb.social/coulomb/kaizen-agentic/issues", "issues": "https://forgejo.coulomb.social/coulomb/kaizen-agentic/issues",
"issue_templates": "https://gitea.coulomb.social/coulomb/kaizen-agentic/issues/new/choose", "issue_templates": "https://forgejo.coulomb.social/coulomb/kaizen-agentic/issues/new/choose",
"feedback_guide": ( "feedback_guide": (
"https://gitea.coulomb.social/coulomb/kaizen-agentic/" "https://forgejo.coulomb.social/coulomb/kaizen-agentic/"
"src/branch/main/docs/FEEDBACK.md" "src/branch/main/docs/FEEDBACK.md"
), ),
"contributing": ( "contributing": (
"https://gitea.coulomb.social/coulomb/kaizen-agentic/" "https://forgejo.coulomb.social/coulomb/kaizen-agentic/"
"src/branch/main/CONTRIBUTING.md" "src/branch/main/CONTRIBUTING.md"
), ),
} }
@ -200,7 +200,7 @@ def feedback(as_json: bool):
"channels": _FEEDBACK_CHANNELS, "channels": _FEEDBACK_CHANNELS,
"templates": ["bug_report", "feature_request", "feedback"], "templates": ["bug_report", "feature_request", "feedback"],
"cli_hint": ( "cli_hint": (
"Use Gitea issue templates or State Hub messages " "Use Forgejo issue templates or State Hub messages "
"for cross-repo coordination" "for cross-repo coordination"
), ),
} }

View file

@ -21,12 +21,12 @@ You are the MarkiTect project assistant, specialized in providing project status
- **roadmap/**: Directory with current and close range roadmap-topic-directories for concepts, workplans, examples... - **roadmap/**: Directory with current and close range roadmap-topic-directories for concepts, workplans, examples...
- **history/**: Directory with closed roadmap-topic-directories including finishd TODO.md files as YYMMDD-DONE.md - **history/**: Directory with closed roadmap-topic-directories including finishd TODO.md files as YYMMDD-DONE.md
- **Makefile**: Provides helpers to use and improve the capabilities provided by the project - **Makefile**: Provides helpers to use and improve the capabilities provided by the project
**Gitea Issues**: Backlog of issues and backlog of tasks stored as issues in gitea before selection as roadmap topics **Forgejo Issues**: Backlog of issues and tasks stored as issues in Forgejo before selection as roadmap topics
### Project Infrastructure Knowledge ### Project Infrastructure Knowledge
**Repository Structure:** **Repository Structure:**
- Main project hosted on Gitea with issue tracking for use cases and tasks - Main project hosted on Forgejo with issue tracking for use cases and tasks
- Planning documentation goes to roadmap/ROADMAPTOPIC subdirectories - Planning documentation goes to roadmap/ROADMAPTOPIC subdirectories
- Closed roadmap-topic-directories git-mv to history/ - Closed roadmap-topic-directories git-mv to history/
- Auto generated documentation maintained in docs/ - Auto generated documentation maintained in docs/
@ -36,7 +36,7 @@ You are the MarkiTect project assistant, specialized in providing project status
Important: Respect the directory structure! If in doubt ask or use directories under tmp/ to keep the structure clean! Important: Respect the directory structure! If in doubt ask or use directories under tmp/ to keep the structure clean!
**Development Workflow:** **Development Workflow:**
- Issue-driven development using Gitea API integration - Issue-driven development using Forgejo API integration
- Issue management via universal issue-facade CLI that works with multiple backends - Issue management via universal issue-facade CLI that works with multiple backends
- All commits require green test state - All commits require green test state
@ -48,8 +48,8 @@ Important: Respect the directory structure! If in doubt ask or use directories u
- **Discovery Tools**: `make capability-search TERM=xyz` to find existing functionality - **Discovery Tools**: `make capability-search TERM=xyz` to find existing functionality
**Issue Management Protocol:** **Issue Management Protocol:**
- **Gitea-First**: Feature requests, bugs, and enhancements should be documented as Gitea issues - **Forgejo-First**: Feature requests, bugs, and enhancements should be documented as Forgejo issues
- **Issue Creation**: When new requirements emerge, create issues in Gitea immediately but do NOT implement immediately - **Issue Creation**: When new requirements emerge, create issues in Forgejo immediately but do NOT implement immediately
- **Strategic Planning**: Issues should be prioritized and scheduled based on project roadmap (history/ROADMAP.md) - **Strategic Planning**: Issues should be prioritized and scheduled based on project roadmap (history/ROADMAP.md)
- **Implementation Discipline**: Only work on issues that are explicitly planned for the current session - **Implementation Discipline**: Only work on issues that are explicitly planned for the current session
- **Issue Workflow**: Create → Triage → Plan → Schedule → Implement → Close - **Issue Workflow**: Create → Triage → Plan → Schedule → Implement → Close
@ -67,12 +67,12 @@ When asked about project status or next steps:
2. **Review Recent Progress**: Check CHANGELOG.md for previous work and progress 2. **Review Recent Progress**: Check CHANGELOG.md for previous work and progress
3. **Check Planned Work**: TODO.md documents next steps and priorities, if empty see topics in roadmap/ 3. **Check Planned Work**: TODO.md documents next steps and priorities, if empty see topics in roadmap/
4. **Project Scope and Goals**: Vision, Mission, Guidelines and Usecases live in wiki/ if available 4. **Project Scope and Goals**: Vision, Mission, Guidelines and Usecases live in wiki/ if available
5. **Planning New Stuff**: Requirements (Epics and Stories) are gitea issues to be planned as roadmap topics 5. **Planning New Stuff**: Requirements (Epics and Stories) are Forgejo issues to be planned as roadmap topics
6. **Consider Git Status**: Allways be aware of current working directory state and recent commits 6. **Consider Git Status**: Allways be aware of current working directory state and recent commits
### Issue Management Guidelines ### Issue Management Guidelines
**When to Create Gitea Issues:** **When to Create Forgejo Issues:**
- New feature requests or enhancement ideas emerge during development - New feature requests or enhancement ideas emerge during development
- Bugs or technical debt are discovered but not immediately fixable - Bugs or technical debt are discovered but not immediately fixable
- Future improvements are identified but outside current session and topic scope - Future improvements are identified but outside current session and topic scope

View file

@ -21,7 +21,7 @@ You are a specialized release management agent focused on Python package publica
- **Package Building**: Build distribution packages (sdist and wheel) using modern Python tools - **Package Building**: Build distribution packages (sdist and wheel) using modern Python tools
- **Quality Assurance**: Run comprehensive tests and validation before publication - **Quality Assurance**: Run comprehensive tests and validation before publication
- **PyPI Publication**: Handle TestPyPI and production PyPI uploads with proper authentication - **PyPI Publication**: Handle TestPyPI and production PyPI uploads with proper authentication
- **Post-Release Tasks**: Update documentation, create GitHub releases, and notify stakeholders - **Post-Release Tasks**: Update documentation, create Forgejo releases, and notify stakeholders
### Documentation Updates ### Documentation Updates
- **Installation Instructions**: Update installation guides to reflect publication status - **Installation Instructions**: Update installation guides to reflect publication status
@ -39,7 +39,7 @@ You are a specialized release management agent focused on Python package publica
### Production Release ### Production Release
- Full validation and testing required - Full validation and testing required
- Publish to production PyPI - Publish to production PyPI
- Create GitHub releases with assets - Create Forgejo releases with assets
- Update all documentation - Update all documentation
### Patch Releases ### Patch Releases
@ -55,7 +55,7 @@ Provide these release- prefixed make targets:
- `release-prepare`: Prepare release (update versions, build packages) - `release-prepare`: Prepare release (update versions, build packages)
- `release-test`: Test publication workflow using TestPyPI - `release-test`: Test publication workflow using TestPyPI
- `release-publish`: Publish to production PyPI - `release-publish`: Publish to production PyPI
- `release-finalize`: Post-release tasks (tags, GitHub release, documentation) - `release-finalize`: Post-release tasks (tags, Forgejo release, documentation)
- `release-rollback`: Emergency rollback procedures - `release-rollback`: Emergency rollback procedures
## Best Practices ## Best Practices
@ -83,7 +83,7 @@ Provide these release- prefixed make targets:
## Integration Points ## Integration Points
### CI/CD Systems ### CI/CD Systems
- GitHub Actions workflow integration - Forgejo Actions workflow integration
- Automated testing on multiple Python versions - Automated testing on multiple Python versions
- Security scanning and dependency checking - Security scanning and dependency checking
- Automated documentation deployment - Automated documentation deployment

View file

@ -123,7 +123,7 @@ You are the authoritative guide for the TDD8 workflow using the tddai system. Yo
**Supporting Commands:** **Supporting Commands:**
- `make test-coverage NUM=X` - Analyze test coverage for an issue - `make test-coverage NUM=X` - Analyze test coverage for an issue
- `make test` - Run all tests - `make test` - Run all tests
- `make list-issues` - Show all Gitea issues with status - `make list-issues` - Show all Forgejo issues with status
- `make show-issue NUM=X` - Show detailed view of specific issue - `make show-issue NUM=X` - Show detailed view of specific issue
### Workspace Management Understanding ### Workspace Management Understanding
@ -306,7 +306,7 @@ Extend data access layer with search methods. Consider adding full-text search f
- **Issue Tracker Integration:** Compatible with Gitea, GitHub, and similar platforms - **Issue Tracker Integration:** Compatible with Gitea, GitHub, and similar platforms
- **Issue Reading:** Use `IssueFetcher` for programmatic access - **Issue Reading:** Use `IssueFetcher` for programmatic access
- **Issue Writing:** Use `IssueWriter` for updates via authenticated PATCH - **Issue Writing:** Use `IssueWriter` for updates via authenticated PATCH
- **Environment Variables:** `GITEA_API_TOKEN` or platform-specific tokens for authentication - **Environment Variables:** `FORGEJO_API_TOKEN` or platform-specific tokens for authentication
### Test Framework ### Test Framework
- **pytest-based:** All tests use pytest framework - **pytest-based:** All tests use pytest framework

View file

@ -86,7 +86,7 @@ Remove tests when:
- Update tests to reflect new command structures and access patterns - Update tests to reflect new command structures and access patterns
### Backend Systems ### Backend Systems
- **Primary**: Gitea backend for issue management - **Primary**: Forgejo backend for issue management
- **Secondary**: Local plugin for offline/alternative workflows - **Secondary**: Local plugin for offline/alternative workflows
- **Focus**: Prioritize tests for actively used functionality - **Focus**: Prioritize tests for actively used functionality
@ -122,7 +122,7 @@ ACTION: Modify assertions to match new CLI structure
### Scenario 2: Obsolete Functionality ### Scenario 2: Obsolete Functionality
``` ```
FAILING: test_local_plugin_sequential_numbering() FAILING: test_local_plugin_sequential_numbering()
CAUSE: Local plugin not actively used, Gitea is primary backend CAUSE: Local plugin not actively used, Forgejo is primary backend
DECISION: Remove test as functionality is not essential to current workflow DECISION: Remove test as functionality is not essential to current workflow
ACTION: Remove test method and document rationale ACTION: Remove test method and document rationale
``` ```

View file

@ -14,7 +14,7 @@ def test_feedback_human_output():
result = runner.invoke(cli, ["feedback"]) result = runner.invoke(cli, ["feedback"])
assert result.exit_code == 0 assert result.exit_code == 0
assert "feedback channels" in result.output.lower() assert "feedback channels" in result.output.lower()
assert "gitea.coulomb.social" in result.output assert "forgejo.coulomb.social" in result.output
assert "bug report" in result.output.lower() assert "bug report" in result.output.lower()

View file

@ -4,7 +4,7 @@ type: workplan
title: "Migrate package distribution from gitea to forgejo before CoulombCore retires" title: "Migrate package distribution from gitea to forgejo before CoulombCore retires"
domain: agents domain: agents
repo: kaizen-agentic repo: kaizen-agentic
status: proposed status: finished
owner: kaizen-agentic owner: kaizen-agentic
topic_slug: custodian topic_slug: custodian
created: "2026-08-20" created: "2026-08-20"
@ -12,20 +12,21 @@ updated: "2026-08-20"
depends_on: [] depends_on: []
tasks: tasks:
- id: T01 - id: T01
status: todo status: done
title: Establish whether kaizen-agentic packages already exist on forgejo title: Establish whether kaizen-agentic packages already exist on forgejo
- id: T02 - id: T02
status: todo status: done
title: Publish current versions to the forgejo PyPI index title: Publish current versions to the forgejo PyPI index
- id: T03 - id: T03
status: todo status: done
title: Repoint Makefile and all six docs in one change title: Repoint Makefile and all six docs in one change
- id: T04 - id: T04
status: todo status: done
title: Verify a clean install from forgejo on an uncached machine title: Verify a clean install from forgejo on an uncached machine
- id: T05 - id: T05
status: todo status: done
title: Retire the gitea variables and close out title: Retire the gitea variables and close out
state_hub_workstream_id: "78d33e10-49dc-41c2-8fbf-475520704f08"
--- ---
# KAIZEN-WP-0010 — Migrate package distribution to forgejo # KAIZEN-WP-0010 — Migrate package distribution to forgejo
@ -39,12 +40,10 @@ the operator on that date.
registry and a **PyPI package index** at `/api/packages/coulomb/pypi`. Both stop registry and a **PyPI package index** at `/api/packages/coulomb/pypi`. Both stop
existing when the host does. existing when the host does.
kaizen-agentic appears to be the only repo in the estate that never migrated. kaizen-agentic's release workflow moved to Forgejo in early July, but the
The rest moved in early July — `issue-core` carries both endpoints Makefile, consumer documentation, issue links, templates, and capability
(`Makefile:68` gitea, `Makefile:69` forgejo, publish targets at `240` and `250`), metadata did not move with it. This left a split-brain distribution story even
and `vergabe-teilnahme/pyproject.toml` already points at though the destination already existed and was in use.
`forgejo.coulomb.social/api/packages/coulomb/pypi/simple/`. So the destination
exists and is in use; this repo was missed.
### What breaks, and why it is worse than a broken link ### What breaks, and why it is worse than a broken link
@ -76,8 +75,9 @@ together — a half-migrated doc set is how the next repo gets missed.
```task ```task
id: KAIZEN-WP-0010-T01 id: KAIZEN-WP-0010-T01
status: todo status: done
priority: high priority: high
state_hub_task_id: "c00cbfde-7cfa-46d3-9e81-73d5c504a78f"
``` ```
**Establish whether kaizen-agentic packages already exist on forgejo.** Check **Establish whether kaizen-agentic packages already exist on forgejo.** Check
@ -88,14 +88,19 @@ Record what is there against what gitea holds. If forgejo already has current
versions, T02 becomes a no-op and this finishes much faster than feared — worth versions, T02 becomes a no-op and this finishes much faster than feared — worth
five minutes before assuming a full republication. five minutes before assuming a full republication.
Credentials: this needs a forgejo package token, not a gitea one. Route through **Result (2026-08-20):** Forgejo anonymously serves the current `1.4.0` wheel
`warden plan "forgejo package publish token"` rather than reusing and sdist. Gitea serves `1.1.0`, `1.2.0`, and `1.4.0`. The repository version
`GITEA_PACKAGE_TOKEN`, and never paste a token into the Makefile or a doc. and latest tag are both `1.4.0`.
The simple package index is anonymously readable. If a write or authenticated
API inventory is ever needed, route the Forgejo credential through `warden`
and never paste a token into the Makefile or documentation.
```task ```task
id: KAIZEN-WP-0010-T02 id: KAIZEN-WP-0010-T02
status: todo status: done
priority: high priority: high
state_hub_task_id: "3a65ae76-08fe-4535-aebf-c1bdec0860d9"
``` ```
**Publish current versions to the forgejo PyPI index.** Only the versions that **Publish current versions to the forgejo PyPI index.** Only the versions that
@ -106,10 +111,15 @@ actually pins an old version.
`issue-core/Makefile:250` is a working example of the forgejo `twine upload` `issue-core/Makefile:250` is a working example of the forgejo `twine upload`
target and is the shortest path to a correct invocation. target and is the shortest path to a correct invocation.
**Result (2026-08-20):** No-op. The current `1.4.0` release was already on
Forgejo, published by `.forgejo/workflows/publish-python-package.yml`; no
credential request or duplicate upload was necessary.
```task ```task
id: KAIZEN-WP-0010-T03 id: KAIZEN-WP-0010-T03
status: todo status: done
priority: high priority: high
state_hub_task_id: "872a5464-a985-473d-a65f-099a30b4d1d0"
``` ```
**Repoint the Makefile and all six docs in one change.** Add **Repoint the Makefile and all six docs in one change.** Add
@ -126,10 +136,18 @@ Also update `GITEA_PACKAGE_USER` / `GITEA_PACKAGE_TOKEN` variable *names* if you
keep the credential envelope — a variable called `GITEA_*` pointing at forgejo is keep the credential envelope — a variable called `GITEA_*` pointing at forgejo is
the kind of thing that survives for years and confuses everyone who reads it. the kind of thing that survives for years and confuses everyone who reads it.
**Result (2026-08-20):** Removed the Gitea Make variables and target outright;
`publish-forgejo` and `FORGEJO_PYPI_*` are the only release path. Consumer
instructions now use the anonymously readable Forgejo index without embedding
unnecessary credentials. Updated the six named documents plus operational
references in contributing/scope/capability metadata, CLI feedback URLs, issue
templates, project metadata, and packaged agent guidance.
```task ```task
id: KAIZEN-WP-0010-T04 id: KAIZEN-WP-0010-T04
status: todo status: done
priority: high priority: high
state_hub_task_id: "f4e40f59-ca22-4dd5-b043-7d69c8cf0be5"
``` ```
**Verify a clean install from forgejo on a machine with no cache.** A `pip **Verify a clean install from forgejo on a machine with no cache.** A `pip
@ -140,10 +158,16 @@ still wrong regardless of what the registry holds.
This is the task that actually closes the risk. T01T03 are preparation. This is the task that actually closes the risk. T01T03 are preparation.
**Result (2026-08-20):** A new temporary virtual environment installed
`kaizen-agentic==1.4.0` with `--no-cache-dir` and the documented anonymous
Forgejo extra index. Pip downloaded the wheel from Forgejo; both the CLI and
Python package reported `1.4.0`.
```task ```task
id: KAIZEN-WP-0010-T05 id: KAIZEN-WP-0010-T05
status: todo status: done
priority: medium priority: medium
state_hub_task_id: "c9f9c64f-27d4-41de-a1e8-a01734ce7964"
``` ```
**Close out.** Remove any remaining gitea references from operational files **Close out.** Remove any remaining gitea references from operational files
@ -154,6 +178,10 @@ tidy a grep loses information.
Tell `prj-state-hub-retirement` when T04 passes; this is tracked there as Tell `prj-state-hub-retirement` when T04 passes; this is tracked there as
`SHR-WP-0002-T07` and is one of two items gating CoulombCore's retirement. `SHR-WP-0002-T07` and is one of two items gating CoulombCore's retirement.
**Result (2026-08-20):** No CoulombCore/Gitea host, package variable, publish
target, workflow path, or issue-template path remains in operational files.
Historical workplans and changelog entries were deliberately preserved.
## Notes ## Notes
- Drafted by `prj-state-hub-retirement` on 2026-08-20 from the estate-wide sweep - Drafted by `prj-state-hub-retirement` on 2026-08-20 from the estate-wide sweep