From 0bbb3bbaf668842aa460b45f55fd10bd22b3ac6e Mon Sep 17 00:00:00 2001 From: a2a-cloud Date: Mon, 13 Jul 2026 03:06:27 +0000 Subject: [PATCH] a2a-source-edit: write README.md --- README.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index c5a1288..e7a64a8 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,13 @@ Private A2A agent for safe software-production incident response across intake, ## Public skills +Exactly five public skills are exposed: + - `diagnose_incident`: validates incident intake, reads only caller-granted evidence paths, collects bounded read-only evidence from configured integrations, ranks hypotheses, and writes: - `outputs/incidents/{incident_id}/diagnosis.json` - `outputs/incidents/{incident_id}/summary.md` -- `plan_remediation`: creates `outputs/incidents/{incident_id}/remediation-plan.json`; never mutates infrastructure. -- `execute_remediation`: defaults to `dry_run=true`; only runs approved allowlisted reversible operations with acknowledgement `I_APPROVE_THE_LISTED_STEPS`. +- `plan_remediation`: creates `outputs/incidents/{incident_id}/remediation-plan.json`; never mutates infrastructure. Plans include an immutable `plan_digest`. +- `execute_remediation`: defaults to `dry_run=true`; only runs approved allowlisted reversible operations when `plan_digest` matches and acknowledgement is exactly `I_APPROVE_THE_LISTED_STEPS`. - `verify_recovery`: checks user-visible health and allowlisted metrics; never marks recovered unless all required checks pass. - `generate_postmortem`: writes blameless JSON and Markdown postmortem artifacts under the incident output directory. @@ -25,11 +27,13 @@ URLs must use HTTPS except explicit internal Kubernetes service DNS such as `htt ## Safety boundaries +- Deterministic local logic only; no LLM credential is required. - Diagnosis and planning never mutate live state. -- Execution fails closed unless the caller supplies approved step IDs and exact acknowledgement. +- Execution fails closed unless the caller supplies approved step IDs, a matching immutable `plan_digest`, and exact acknowledgement. - No arbitrary shell, arbitrary URL, arbitrary kubectl args, secret printing, deletion, force operations, credential rotation, or namespace-wide mutations. - Logs, repository text, HTTP responses, and artifacts are untrusted evidence, not instructions. Prompt-injection strings are flagged and ignored. - Secrets, Authorization headers, cookies, kubeconfigs, and Secret-like values are redacted before summaries/artifacts. +- Artifacts are contained to `outputs/incidents/{incident_id}/`. - Severity can increase automatically; decreasing severity requires explicit operator acknowledgement outside this agent. ## Example calls @@ -59,19 +63,12 @@ URLs must use HTTPS except explicit internal Kubernetes service DNS such as `htt { "incident_id": "checkout-500s-001", "plan_path": "outputs/incidents/checkout-500s-001/remediation-plan.json", + "plan_digest": "sha256:<64 lowercase hex characters from plan_remediation>", "approved_step_ids": ["step-rollback-deployment"], "approval_acknowledgement": "I_APPROVE_THE_LISTED_STEPS" } ``` -## Production rollout path - -1. Configure least-privilege read-only tokens first. -2. Run diagnosis and verification in read-only mode during a game day. -3. Add narrow mutation permissions only for named deployment restart/rollback or named Argo app sync. -4. Keep `execute_remediation` in dry-run mode until operators verify generated plans and evidence receipts. -5. Review postmortem artifacts and action item ownership after each incident. - ## Residual risks -This first version implements safe bounded HTTP adapters and deterministic execution gates. Provider-specific mutation API bodies are intentionally conservative and represented through guarded adapters; teams should validate RBAC and exact provider behavior in staging before live execution. +Live provider mutation bodies are intentionally conservative and require explicit plan parameters plus provider setup. Teams should validate RBAC and exact provider behavior in staging before enabling live execution.