katalyst-forge 5.4.0__tar.gz → 5.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/CHANGELOG.md +16 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/PKG-INFO +1 -1
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/pyproject.toml +1 -1
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/.gitignore +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/LICENSE +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/CHANGELOG.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/README.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/agents/agent.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/agents/config.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/agents/manifest.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/agents/skill.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/environment.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/hooks/hook-config.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/katalyst-lock.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/nodes/common.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/nodes/design.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/nodes/organizational.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/nodes/portfolio.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/nodes/technical.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/schemas/taxonomy-node.schema.json +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/__init__.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/bundle.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/__init__.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/batch.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/billing.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/contracts.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/core.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/dashboard.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/errors.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/forge_stages.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/generate_dashboard.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/html_report.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/measurement.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/money.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/protocols.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/providers/__init__.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/providers/forge_model_router.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/providers/llm_gateway.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/providers/opencode.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/redaction.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/registry.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/routing_policy.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/run_health.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/tiles.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/py.typed +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/relationships.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/_base.yaml.j2 +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/layer.yaml.j2 +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/project.yaml.j2 +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/stack.yaml.j2 +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/system.yaml.j2 +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/team.yaml.j2 +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/team_member.yaml.j2 +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/.dockerignore +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/.env.example +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/README.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/base/Dockerfile +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/docker-compose.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/env-template/Dockerfile +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/env-template/docker-compose.override.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/env-template/environment.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/app-docker/layer.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/README.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/composite/terraform/main.tf +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/composite/terraform/outputs.tf +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/composite/terraform/variables.tf +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/env-template/environment.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/env-template/terragrunt.hcl +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/context.hcl +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/dev.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/prod.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/staging.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/layer.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/version.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/README.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/base/app/argocd-application.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/base/kustomization.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/base/namespace.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/environment-template/argocd-application.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/environment-template/kustomization.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/environment-template/patch-argocd-application.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-argocd/layer.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/README.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/deployment.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/kustomization.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/namespace.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/service.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/environment-template/kustomization.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/environment-template/patch-deployment.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/global/k8s/base/kustomization.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/global/k8s/base/namespace.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/global/k8s/kustomization.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/layer.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/__init__.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/_practice_refs.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/agentic.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/delivery.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/design.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/metrics.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/org.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/pipeline.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/practices.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/wings/system.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/templates/CHANGELOG.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/conftest.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/fake_providers_opencode.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/fake_providers_router.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/expected-modified.txt +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/expected-new.txt +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/modified-inplace.patch +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/delivery/work_items/ric-1580-forge-model-routing.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/capabilities/CAP-011-per-dispatch-model-tier-routing.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/capabilities/CAP-012-dispatch-parity-and-containment.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/capabilities/CAP-013-per-stage-model-token-telemetry.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/nfrs/dispatched-stage-executes-on-requested-tier.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/nfrs/routed-dispatch-preserves-task-parity.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/nfrs/tier-resolution-fails-before-any-child-session.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/nfrs/zero-committed-vendor-model-identity.yaml +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-024-operator-selects-model-tier-per-forge-run.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-025-model-tiers-from-env-vars-no-vendor-pins.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-026-routing-tier-recorded-on-work-item.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-027-per-stage-model-and-token-telemetry.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-028-dispatch-tool-enforces-agent-allowlist.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-029-silent-or-aborted-dispatch-yields-blocked.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-030-dispatched-write-stage-stays-in-worktree.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/fixtures/incident-ric1580/new/.global/taxonomy/design/user-needs/UN-031-single-stage-spike-preserves-eleven-stage-rollout.md +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/forge-reconcile/reconcile.test.mjs +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_agent_run.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_cost_observability_wing.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_delivery_doc_consistency.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_delivery_traceability.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_entry_point_discovery.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_forge.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_batch_hygiene.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_billing_isolation.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_content_contract.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_contracts.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_dashboard.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_dashboard_end_to_end.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_html_report.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_lazy_providers.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_money_and_redaction.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_providers.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_resolve_compute.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_routing_policy.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_run_health.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_metrics_wing.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_practice_assignment.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_relationships.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_storage_contract.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_validate_templates_gates.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_wing_schemas.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_wings.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_writer_bundle_schema.py +0 -0
- {katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/tests/test_writer_kind_mapping.py +0 -0
|
@@ -16,6 +16,22 @@ PyPI package version. A breaking node-type/model change bumps `schema_version`.
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
+
## [5.4.1] -- 2026-08-09
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- **The practice resolver reads the schema the taxonomy actually authors** (RIC-1532). It instructed agents to read three things that do not exist: `spec.practice.applicableTo`, a `skill_ref` on a practice, and an enforcement ladder of required/recommended/optional. Two TODO blocks admitted the schema was unresolved and asked callers not to depend on the paths, which left the practice-compliance gate documented against a contract no taxonomy can honour. Resolved by reading the shipped `wings/practices.py` and probing a real taxonomy rather than the docs example, which turns out not to match what is authored: `practice` is a real kind, no applicability field exists on it or on `practice_area` so context can only scope which areas are in play, `enforcement` lives on the `standard` node valued automated/review/advisory, and pillars live at `spec.pillars`. The graph cannot serve any of it, because `kata tax show --format json` reduces a `practice_area` spec to the generic envelope, so identity now comes from the probe and content from the source file the probe reports. The fail-loud probe contract from #41 is intact and gains one case: no resolved source is inconclusive, not a clean zero.
|
|
24
|
+
- **The auditor and reporter agree on what blocks** (RIC-1532). Both consumers of the resolver were corrected in the same change, because leaving them would have had the resolver grade every finding advisory while the reporter printed "Non-compliant (required)" and "Blocks: Yes" for that same finding. Blocking now originates only from a standard with `enforcement: automated` or from an NFR, and an inconclusive probe can no longer surface as a pass.
|
|
25
|
+
- **`kata-code-reviewer` no longer installs with unrestricted shell and dispatch** (RIC-1648). The agent shipped in `agents/` and did install globally, because `install-opencode.mjs` enumerates that directory rather than reading `opencode.json`, but it was absent from `opencode.json`'s agent map entirely. That absence was not cosmetic: `opencode.json` is the only place the per-agent permission blocks live in full, and the installer mirrors `permission` from it so an installed agent is no more privileged than its in-repo counterpart. With no entry to mirror, the installed reviewer carried only the `external_directory` rule from its own frontmatter, leaving `tools.bash` and `tools.task` true with no corresponding `permission` blocks, the one agent in the installed set with unbounded shell and unbounded sub-agent dispatch. It now carries an entry bounded to what its prompt does: `permission.task` names only `kata-forge-architect` and `kata-forge-security`, and `bash` is an allowlist over a `"*": "deny"` floor. NFR-023 recorded this agent as the live example of its fourth caller state, absent from the agent map, and the same NFR fails closed for unbounded callers until each carries an explicit entry, so a bounded entry satisfies the gate rather than widening it. Unbounded callers drop from three to two.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- The fourth caller state in the NFR-023 differential gate is still tested, now built from a synthetic caller name instead of asserting that a real shipped agent is broken, which is what made that assertion fail the moment the agent was fixed.
|
|
30
|
+
- `kata-code-reviewer` is counted where it had been uncounted: `validate.sh`'s agent list, and a new `review` family in `openpackage.yml` rather than the `forge` family, since it is a standalone reviewer and not a Forge stage agent.
|
|
31
|
+
- Patch rather than minor: both changes correct a contract that was already published, and neither touches `src/` or `schemas/`, so the PyPI wheel and the JSON Schemas are unchanged from 5.4.0 and the bundle `schema_version` stays put. What moves is agent, skill and configuration content.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
19
35
|
## [5.4.0] -- 2026-08-09
|
|
20
36
|
|
|
21
37
|
### Added
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/generate_dashboard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/providers/llm_gateway.py
RENAMED
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/metrics/providers/opencode.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/_base.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/layer.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/project.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/stack.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/system.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-5.4.0 → katalyst_forge-5.4.1}/src/katalyst_forge/templates/creation/team.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|