Added project documentation in wiki and established INTENT.md

This commit is contained in:
2026-06-16 00:58:43 +02:00
parent 95b729cc53
commit 71ef5f4734
21 changed files with 1442 additions and 31 deletions

View File

@@ -0,0 +1,112 @@
IdempotentCompounding
*Kaizen Agentic Philosophy*
# IdempotentCompounding — a primer
Definition (one-liner): Build and evolve systems by idempotent automation (safe to run repeatedly) and compounding increments (small units that add durable value), governed by outcomes and quality gates.
## Core principles
- Idempotence by default — Every operation (provision, deploy, migrate, refactor) is safe to re-run; desired state > imperative steps.
- Compound value, not complexity — Ship small, composable capability units that stack cleanly and raise the baseline.
- Evidence over intention — Each increment must declare its value metric and show before/after.
- Reversibility — Fast rollback/roll-forward; changes are sliceable and isolated.
- Sustainability as a constraint — Optimize for maintainability, cost, energy, and human time.
- Quality is automated — Tests, checks, and drift detection run continuously, not occasionally.
- Documentation is generated — Architecture, runbooks, and changelogs are derived from code & traces, then curated.
## The operating cycle (repeatable)
Select → Specify → Safeguard → Apply → Verify → Record
- Select a high-ROI increment (hotspot × business value).
- Specify desired state (declarative spec, schema, or refactor objective).
- Safeguard with idempotent checks: contract tests, drift monitors, health probes.
- Apply via automation (IaC, pipelines, codemods) — re-runnable end-to-end.
- Verify outcomes (SLOs, cost, complexity, security).
- Record: update arc42 views, ADR, and the quality dashboard.
Rule of thumb: if youre afraid to re-run it, its not IdempotentCompounding yet.
## Units of change (the “compounders”)
- Infra Module (e.g., Terraform/Kubernetes object)
- Service Capability (feature flag, API slice)
- Quality Guide Move (codemod + lint rule)
- Data Contract (schema + migration + validation)
- Ops Control (SLO, alert, autoscaler policy)
Each unit carries:
- Spec (YAML/DSL + schema)
- Guards (tests/checks)
- KPIs (value metric)
- Rollbacks (delete/replace plan)
- Docs hooks (arc42/ADR update hints)
## Minimal guardrails
- Idempotence test: run the job twice; expect no diff.
- Blast-radius cap: feature flags, canaries, or scoped namespaces.
- Drift sentry: reconcile loop or plan delta must be ≈0 after apply.
- Budget bound: change must not breach cost/latency/error-rate budgets.
- Timebox: if verification cant prove value in X hours, revert or park.
## Metrics that matter
- Value: SLO attainment, cycle time, revenue/usage lift, defect escape rate ↓
- Quality: Maintainability index ↑, complexity/duplication ↓, DoC compliance %
- Sustainability: € per request ↓, watts per request ↓, toil hours ↓
- Reliability: MTTR ↓, change failure rate ↓, successful re-runs % = 100
## Tooling patterns (typical stack)
- Desired state: Terraform/Pulumi, Helm/Kustomize, GitOps (Argo CD/Flux)
- Idempotent app changes: migration frameworks, codemods (libCST/jscodeshift), OpenRewrite
- Verification: contract & golden tests; load tests in CI for hot paths
- Observability: traces/metrics feeding fitness functions in pipelines
- Docs: Structurizr/PlantUML generated from code + traces; ADRs as code
How it fits the AbcdekGuidance Practice
A — Architecture (ArcFortyTwo): auto-generate views; define fitness functions (what “value” means).
B — Build (SafetyNetTests): make verification idempotent; contract tests become guards.
C — Clean (CleanByDefinition): encode idempotence rules (no side-effect scripts, reversible migrations).
D — Direction (GamePlan): prioritize compounders with best value/effort ratio.
E — Evolve (RefactoringLoop): codemods + tests prove idempotent repeats and measurable deltas.
K — KeepClean (Kaizen): weekly trend checks; drift/DoC gates keep compounded value from decaying.
Templates (drop-in)
1) Value Ticket (per increment)
Title: <Increment name>
Desired State: <declarative spec or target structure>
Guards: <tests/checks to pass; idempotence proof: re-run yields no diff>
Value Metric: <name, baseline, target, window>
Rollback: <how to undo safely>
Docs Hooks: <arc42 sections / ADR to update>
Owner / ETA:
2) Idempotence Checklist
[ ] Declarative spec exists
[ ] Dry-run/plan produces stable diff
[ ] Double-apply yields zero change
[ ] Safe to parallelize or properly serialized
[ ] Idempotent cleanup (delete/apply symmetry)
## Example (brief)
- Goal: Reduce p95 latency by 20% on /checkout.
- Compounder: Add Redis read-through cache for product lookups (Helm values + code toggle).
- Guards: Contract tests for /checkout; load test at 95th percentile; drift check on Helm release.
- Apply: helm upgrade (safe to re-run), feature flag rollout 10%→100%.
- Verify: p95 from 480 ms → 360 ms (7-day window), error rate unchanged.
- Record: ADR-012, arc42 runtime view updated, dashboard shows value trend.
## Bottom line
IdempotentCompounding turns improvement into a safe, repeatable habit: every step is re-runnable, every change compounds value, and every gain is proven.
xxx