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 — kaizen-agentic
**Domain:** infotech
**Last synced:** 2026-07-16 10:48 UTC
**Domain:** agents
**Last synced:** 2026-08-20 07:20 UTC
**State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)*
## Active Workstreams
@ -13,6 +13,6 @@
## MCP Orientation (when available)
If the state-hub MCP server is reachable, call:
`get_domain_summary("infotech")`
`get_domain_summary("agents")`
This provides richer cross-domain context.
If the MCP call fails, use this file as your orientation source.

View file

@ -32,4 +32,4 @@ labels: bug
(paste relevant output)
```
## Additional context
## Additional context

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

@ -20,4 +20,4 @@ labels: enhancement
- [ ] Documentation / wiki
- [ ] Ecosystem integration (activity-core, artifact-store, agentic-resources)
## Additional context
## Additional context

View file

@ -18,4 +18,4 @@ labels: feedback
## Optional: metrics / telemetry context
If relevant, note whether you use project metrics (`.kaizen/metrics/`) or Helix Forge
fleet capture — helps us prioritize integration improvements.
fleet capture — helps us prioritize integration improvements.

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)
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;
`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/`)
- **Testing**: Pytest (`pytest`)
- **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
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
- **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
(`POST /messages/`) — see session protocol in `.claude/rules/session-protocol.md`.
@ -178,7 +178,7 @@ We follow continuous improvement principles:
### Communication
- 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
- Follow the project's code of conduct

View file

@ -1,14 +1,14 @@
# 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
VENV = .venv
VENV_PYTHON = $(VENV)/bin/python
VENV_PIP = $(VENV)/bin/pip
GITEA_PACKAGE_OWNER ?= coulomb
GITEA_PYPI_REPOSITORY_URL ?= https://gitea.coulomb.social/api/packages/$(GITEA_PACKAGE_OWNER)/pypi
GITEA_PYPI_SIMPLE_URL ?= https://gitea.coulomb.social/api/packages/$(GITEA_PACKAGE_OWNER)/pypi/simple/
FORGEJO_PACKAGE_OWNER ?= coulomb
FORGEJO_PYPI_REPOSITORY_URL ?= https://forgejo.coulomb.social/api/packages/$(FORGEJO_PACKAGE_OWNER)/pypi
FORGEJO_PYPI_SIMPLE_URL ?= https://forgejo.coulomb.social/api/packages/$(FORGEJO_PACKAGE_OWNER)/pypi/simple/
# Default target
help:
@ -48,10 +48,10 @@ help:
@echo " release-check - Validate release readiness (tests, linting, version consistency)"
@echo " release-prepare - Prepare release (update versions, build packages)"
@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-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 ""
@echo "Development:"
@ -970,7 +970,7 @@ release-prepare: release-check clean
ls -la dist/ | grep "$$VERSION" || echo " • Package files:"; ls -la dist/; \
echo ""; \
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-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) -m twine check dist/*
# Publish to Coulomb Gitea PyPI registry
publish-gitea: package-check
# Publish to the Forgejo PyPI registry
publish-forgejo: package-check
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
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
$(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
release-test: release-prepare
@ -1034,7 +1034,7 @@ release-publish: release-check
echo " • Generate API token"; \
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
@echo "🏁 Finalizing release..."
@echo ""
@ -1050,16 +1050,16 @@ release-finalize: $(VENV)/bin/activate
echo " ✅ Tag created"; \
fi; \
echo ""; \
echo " • GitHub Release:"; \
echo " • Forgejo Release:"; \
echo " 💡 Manual steps required:"; \
echo " 1. Push tags: git push origin v$$VERSION"; \
echo " 2. Create GitHub release at:"; \
echo " https://github.com/kaizen-agentic/kaizen-agentic/releases/new"; \
echo " 2. Create Forgejo release at:"; \
echo " https://forgejo.coulomb.social/coulomb/kaizen-agentic/releases/new"; \
echo " 3. Upload dist/ files as release assets"; \
echo ""; \
echo " • Documentation:"; \
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 ""; \
echo "✅ Release finalization checklist provided"; \

View file

@ -12,7 +12,7 @@ This project embraces the Japanese concept of "kaizen" (continuous improvement)
**From Source (Development):**
```bash
git clone https://github.com/kaizen-agentic/kaizen-agentic.git
git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic
make setup-complete
make agents-install-cli
@ -21,7 +21,7 @@ source .venv/bin/activate # Required for each session
**Global Installation (Available from any directory):**
```bash
git clone https://github.com/kaizen-agentic/kaizen-agentic.git
git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic
make setup-complete
python3 -m build && make install-global
@ -30,24 +30,21 @@ python3 -m build && make install-global
**Local Package Testing:**
```bash
git clone https://github.com/kaizen-agentic/kaizen-agentic.git
git clone https://forgejo.coulomb.social/coulomb/kaizen-agentic.git
cd kaizen-agentic
make setup-complete
python3 -m build && make install-local
source .venv/bin/activate # Required for each session
```
**From Gitea PyPI (v1.1.0+):**
**From Forgejo PyPI (v1.1.0+):**
```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
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
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.

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
- **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`)
- **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()`
- **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)
- 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)
- 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
- 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`
- 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
- Usage: internal dev projects and Custodian MCP hub-wide; pip install via Gitea extra index
- Active work: **WP-0006** (scheduled agent execution via activity-core → v1.3.0)
- 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 Forgejo extra index
- 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...
- **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
**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
**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
- Closed roadmap-topic-directories git-mv to history/
- 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!
**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
- 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
**Issue Management Protocol:**
- **Gitea-First**: Feature requests, bugs, and enhancements should be documented as Gitea issues
- **Issue Creation**: When new requirements emerge, create issues in Gitea immediately but do NOT implement immediately
- **Forgejo-First**: Feature requests, bugs, and enhancements should be documented as Forgejo issues
- **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)
- **Implementation Discipline**: Only work on issues that are explicitly planned for the current session
- **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
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
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
### Issue Management Guidelines
**When to Create Gitea Issues:**
**When to Create Forgejo Issues:**
- New feature requests or enhancement ideas emerge during development
- Bugs or technical debt are discovered but not immediately fixable
- 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
- **Quality Assurance**: Run comprehensive tests and validation before publication
- **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
- **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
- Full validation and testing required
- Publish to production PyPI
- Create GitHub releases with assets
- Create Forgejo releases with assets
- Update all documentation
### Patch Releases
@ -55,7 +55,7 @@ Provide these release- prefixed make targets:
- `release-prepare`: Prepare release (update versions, build packages)
- `release-test`: Test publication workflow using TestPyPI
- `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
## Best Practices
@ -83,7 +83,7 @@ Provide these release- prefixed make targets:
## Integration Points
### CI/CD Systems
- GitHub Actions workflow integration
- Forgejo Actions workflow integration
- Automated testing on multiple Python versions
- Security scanning and dependency checking
- 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:**
- `make test-coverage NUM=X` - Analyze test coverage for an issue
- `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
### 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 Reading:** Use `IssueFetcher` for programmatic access
- **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
- **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
### Backend Systems
- **Primary**: Gitea backend for issue management
- **Primary**: Forgejo backend for issue management
- **Secondary**: Local plugin for offline/alternative workflows
- **Focus**: Prioritize tests for actively used functionality
@ -122,7 +122,7 @@ ACTION: Modify assertions to match new CLI structure
### Scenario 2: Obsolete Functionality
```
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
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
Install the Kaizen Agentic package from the Coulomb Gitea PyPI registry:
Install the Kaizen Agentic package from the Forgejo PyPI registry:
```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
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

View file

@ -4,14 +4,11 @@ Quick reference for the `kaizen-agentic` command-line tool.
## Installation
From Coulomb Gitea PyPI (see [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md)):
From Forgejo PyPI (see [PACKAGE_RELEASE.md](PACKAGE_RELEASE.md)):
```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
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

View file

@ -6,12 +6,12 @@ How to share bugs, ideas, and adoption experience for kaizen-agentic.
| 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 |
| **Pull requests** | Code and agent-definition contributions (see CONTRIBUTING.md) |
| **State Hub messages** | Cross-repo coordination between custodian agents (advanced) |
## Gitea issue templates
## Forgejo issue templates
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
- **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
@ -38,4 +38,4 @@ kaizen-agentic feedback --json # machine-readable for tooling
## Privacy
Do not include secrets, tokens, or private project content in public issues. Redact
`.kaizen/` memory contents unless you intentionally share sanitized examples.
`.kaizen/` memory contents unless you intentionally share sanitized examples.

View file

@ -12,7 +12,7 @@ This guide walks you through using Kaizen Agentic agents in any project, from in
```bash
# 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
# Set up development environment
@ -29,7 +29,7 @@ source .venv/bin/activate
```bash
# 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
make setup-complete
@ -45,7 +45,7 @@ source .venv/bin/activate
```bash
# 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
make setup-complete
@ -57,21 +57,18 @@ make install-global
# CLI available from any directory
```
**Option D: From Gitea PyPI (v1.1.0+)**
**Option D: From Forgejo PyPI (v1.1.0+)**
```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
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
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).
### 2. Verify Installation
@ -273,7 +270,7 @@ jobs:
python-version: '3.8'
- run: >-
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
```
@ -413,7 +410,7 @@ kaizen-agentic status
# New team member setup
git clone 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
kaizen-agentic status # See what agents are used
kaizen-agentic validate # Verify everything works
@ -428,16 +425,14 @@ cat CLAUDE.md
**"Command not found: kaizen-agentic"**
```bash
# Install from Gitea PyPI (same credentials as Option D)
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
# Install from Forgejo PyPI (same endpoint as Option D)
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:
source .venv/bin/activate
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"**

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
From the Coulomb Gitea PyPI registry (dependencies resolve from public PyPI):
From the Forgejo PyPI registry (dependencies resolve from public PyPI):
```bash
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
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.
@ -243,11 +240,9 @@ kaizen-agentic status
**"kaizen-agentic: command not found"**
```bash
# Same install as Step 1 (Gitea extra index — see PACKAGE_RELEASE.md)
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
# Same install as Step 1 (Forgejo extra index — see PACKAGE_RELEASE.md)
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"**

View file

@ -52,7 +52,7 @@ invoke kaizen-agentic CLI commands.
5. **Enable gradually** — set `enabled: true` per definition after a manual smoke test
against a repo with `.kaizen/metrics/` populated.
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:**

View file

@ -1,30 +1,27 @@
# Python Package Release
`kaizen-agentic` publishes as the `kaizen-agentic` Python package on the Coulomb
Gitea PyPI registry. Public [pypi.org](https://pypi.org/) distribution is optional
`kaizen-agentic` publishes as the `kaizen-agentic` Python package on the Forgejo
PyPI registry. Public [pypi.org](https://pypi.org/) distribution is optional
and not required for ecosystem use.
## 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
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
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:
```bash
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
CI secrets.
Consumer reads are anonymous. Keep publish credentials in Forgejo Actions secrets
or inject them through the environment for a deliberate local release.
## Local Release
@ -37,53 +34,47 @@ make package-check
Publish to the Coulomb organization registry:
```bash
TWINE_USERNAME=<gitea-user> \
TWINE_USERNAME=<forgejo-user> \
TWINE_PASSWORD=<package-token> \
make publish-gitea
make publish-forgejo
```
Package upload endpoint:
```text
https://gitea.coulomb.social/api/packages/coulomb/pypi
https://forgejo.coulomb.social/api/packages/coulomb/pypi
```
Consumer simple index:
```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 |
|--------|-------|
| `PACKAGE_USER` | `tegwick` — Gitea username that owns the package token |
| `PACKAGE_TOKEN` | Gitea API token named `inter-hub-pkg-rep` (`write:package`) |
| `FORGEJO_PYPI_USER` | Forgejo username that owns the package token |
| `FORGEJO_PYPI_TOKEN` | Forgejo token with package-write permission |
Token custody (OpenBao):
Discover credential ownership before requesting or rotating a token:
```text
platform/data/operators/inter-hub/package-management
→ field: inter-hub-pkg-rep
```bash
warden route find "publish kaizen-agentic to Forgejo PyPI" --json
```
Paste the **plaintext** token into the Gitea secret UI. `inter-hub-pkg-rep` is the
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).
Never commit or copy the token into documentation, workplans, or State Hub.
The publish workflow fails at the upload step when either secret is missing or
invalid. Do not commit tokens to the repository.
**Smoke-test (2026-06-16):** `workflow_dispatch` run #3042 authenticated successfully
(`409 Conflict` on re-upload of `1.1.0` — expected). Root causes of earlier `401`s:
wrong token (`GITEA_API_TOKEN` ≠ package token), wrong username (`inter-hub-pkg-rep`
is a token name), and a stale org-level secret. Build uses `.build-venv` (PEP 668).
**Verified (2026-08-20):** the Forgejo index serves `kaizen-agentic==1.4.0`.
A fresh virtual environment installed it with `--no-cache-dir` and the CLI reported
version `1.4.0`.
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 package-check` builds and validates `dist/*`
- [ ] `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)
- [ ] `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*`.
Example:
@ -135,11 +126,11 @@ A runner that executes a scheduled kaizen agent task (fired by activity-core)
needs:
- **`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:
```bash
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
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](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
fleet layers above satisfy INTENT's "measurable agents" requirement without tele-mcp.
## 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.

View file

@ -2,7 +2,7 @@
How kaizen-agentic supports a **customer engagement repo** for **improvement
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)
and complete the checklist in one session.
@ -93,7 +93,7 @@ kaizen-agentic schedule init --engagement <slug> --bootstrap-cadence weekly --fo
## 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)
- 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
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
in **target repos**, not in the customer repo.

View file

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

View file

@ -16,7 +16,7 @@ maturity:
target: D5
confidence: medium
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:
current: A2
target: A3
@ -71,7 +71,7 @@ evidence:
- README.md
tests:
- tests/
- .gitea/workflows/
- .forgejo/workflows/
consumer_feedback: []
bug_reports: []
incidents: []
@ -95,7 +95,7 @@ promotion_history: []
### 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

View file

@ -172,14 +172,14 @@ def safe_cli_wrapper():
_FEEDBACK_CHANNELS = {
"issues": "https://gitea.coulomb.social/coulomb/kaizen-agentic/issues",
"issue_templates": "https://gitea.coulomb.social/coulomb/kaizen-agentic/issues/new/choose",
"issues": "https://forgejo.coulomb.social/coulomb/kaizen-agentic/issues",
"issue_templates": "https://forgejo.coulomb.social/coulomb/kaizen-agentic/issues/new/choose",
"feedback_guide": (
"https://gitea.coulomb.social/coulomb/kaizen-agentic/"
"https://forgejo.coulomb.social/coulomb/kaizen-agentic/"
"src/branch/main/docs/FEEDBACK.md"
),
"contributing": (
"https://gitea.coulomb.social/coulomb/kaizen-agentic/"
"https://forgejo.coulomb.social/coulomb/kaizen-agentic/"
"src/branch/main/CONTRIBUTING.md"
),
}
@ -200,7 +200,7 @@ def feedback(as_json: bool):
"channels": _FEEDBACK_CHANNELS,
"templates": ["bug_report", "feature_request", "feedback"],
"cli_hint": (
"Use Gitea issue templates or State Hub messages "
"Use Forgejo issue templates or State Hub messages "
"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...
- **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
**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
**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
- Closed roadmap-topic-directories git-mv to history/
- 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!
**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
- 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
**Issue Management Protocol:**
- **Gitea-First**: Feature requests, bugs, and enhancements should be documented as Gitea issues
- **Issue Creation**: When new requirements emerge, create issues in Gitea immediately but do NOT implement immediately
- **Forgejo-First**: Feature requests, bugs, and enhancements should be documented as Forgejo issues
- **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)
- **Implementation Discipline**: Only work on issues that are explicitly planned for the current session
- **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
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
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
### Issue Management Guidelines
**When to Create Gitea Issues:**
**When to Create Forgejo Issues:**
- New feature requests or enhancement ideas emerge during development
- Bugs or technical debt are discovered but not immediately fixable
- 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
- **Quality Assurance**: Run comprehensive tests and validation before publication
- **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
- **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
- Full validation and testing required
- Publish to production PyPI
- Create GitHub releases with assets
- Create Forgejo releases with assets
- Update all documentation
### Patch Releases
@ -55,7 +55,7 @@ Provide these release- prefixed make targets:
- `release-prepare`: Prepare release (update versions, build packages)
- `release-test`: Test publication workflow using TestPyPI
- `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
## Best Practices
@ -83,7 +83,7 @@ Provide these release- prefixed make targets:
## Integration Points
### CI/CD Systems
- GitHub Actions workflow integration
- Forgejo Actions workflow integration
- Automated testing on multiple Python versions
- Security scanning and dependency checking
- 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:**
- `make test-coverage NUM=X` - Analyze test coverage for an issue
- `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
### 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 Reading:** Use `IssueFetcher` for programmatic access
- **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
- **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
### Backend Systems
- **Primary**: Gitea backend for issue management
- **Primary**: Forgejo backend for issue management
- **Secondary**: Local plugin for offline/alternative workflows
- **Focus**: Prioritize tests for actively used functionality
@ -122,7 +122,7 @@ ACTION: Modify assertions to match new CLI structure
### Scenario 2: Obsolete Functionality
```
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
ACTION: Remove test method and document rationale
```

View file

@ -14,7 +14,7 @@ def test_feedback_human_output():
result = runner.invoke(cli, ["feedback"])
assert result.exit_code == 0
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()

View file

@ -4,7 +4,7 @@ type: workplan
title: "Migrate package distribution from gitea to forgejo before CoulombCore retires"
domain: agents
repo: kaizen-agentic
status: proposed
status: finished
owner: kaizen-agentic
topic_slug: custodian
created: "2026-08-20"
@ -12,20 +12,21 @@ updated: "2026-08-20"
depends_on: []
tasks:
- id: T01
status: todo
status: done
title: Establish whether kaizen-agentic packages already exist on forgejo
- id: T02
status: todo
status: done
title: Publish current versions to the forgejo PyPI index
- id: T03
status: todo
status: done
title: Repoint Makefile and all six docs in one change
- id: T04
status: todo
status: done
title: Verify a clean install from forgejo on an uncached machine
- id: T05
status: todo
status: done
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
@ -39,12 +40,10 @@ the operator on that date.
registry and a **PyPI package index** at `/api/packages/coulomb/pypi`. Both stop
existing when the host does.
kaizen-agentic appears to be the only repo in the estate that never migrated.
The rest moved in early July — `issue-core` carries both endpoints
(`Makefile:68` gitea, `Makefile:69` forgejo, publish targets at `240` and `250`),
and `vergabe-teilnahme/pyproject.toml` already points at
`forgejo.coulomb.social/api/packages/coulomb/pypi/simple/`. So the destination
exists and is in use; this repo was missed.
kaizen-agentic's release workflow moved to Forgejo in early July, but the
Makefile, consumer documentation, issue links, templates, and capability
metadata did not move with it. This left a split-brain distribution story even
though the destination already existed and was in use.
### 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
id: KAIZEN-WP-0010-T01
status: todo
status: done
priority: high
state_hub_task_id: "c00cbfde-7cfa-46d3-9e81-73d5c504a78f"
```
**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
five minutes before assuming a full republication.
Credentials: this needs a forgejo package token, not a gitea one. Route through
`warden plan "forgejo package publish token"` rather than reusing
`GITEA_PACKAGE_TOKEN`, and never paste a token into the Makefile or a doc.
**Result (2026-08-20):** Forgejo anonymously serves the current `1.4.0` wheel
and sdist. Gitea serves `1.1.0`, `1.2.0`, and `1.4.0`. The repository version
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
id: KAIZEN-WP-0010-T02
status: todo
status: done
priority: high
state_hub_task_id: "3a65ae76-08fe-4535-aebf-c1bdec0860d9"
```
**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`
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
id: KAIZEN-WP-0010-T03
status: todo
status: done
priority: high
state_hub_task_id: "872a5464-a985-473d-a65f-099a30b4d1d0"
```
**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
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
id: KAIZEN-WP-0010-T04
status: todo
status: done
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
@ -140,10 +158,16 @@ still wrong regardless of what the registry holds.
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
id: KAIZEN-WP-0010-T05
status: todo
status: done
priority: medium
state_hub_task_id: "c9f9c64f-27d4-41de-a1e8-a01734ce7964"
```
**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
`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
- Drafted by `prj-state-hub-retirement` on 2026-08-20 from the estate-wide sweep