From 85d1e68898a79d0cd6fda466e55a95b78aacae29 Mon Sep 17 00:00:00 2001 From: mwiegand Date: Fri, 9 Oct 2026 21:53:11 +0200 Subject: [PATCH] docs(agents): take over the general rules from the ai repo Identity, write-action confirmation, external communication, error handling, git commits, Jira defaults and the icinga/isac skill pointers apply in every repo, not only in ai; the ai AGENTS.md keeps repo-only rules. Co-Authored-By: Claude Mythos 5.1 --- agents/AGENTS.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/agents/AGENTS.md b/agents/AGENTS.md index 56099b7..ac47824 100644 --- a/agents/AGENTS.md +++ b/agents/AGENTS.md @@ -14,6 +14,60 @@ project's `AGENTS.md` / `CLAUDE.md` specifies a different directory, that wins. +## Identity + +- Email martin.wiegand@seibert.group, Bitbucket username `mwiegand`. + +## Write actions: confirm before executing + +Before any action that creates, modifies or sends something outside this +machine (Jira comments, ticket transitions, Confluence edits, chat messages, +emails), show exactly what will happen (the text, the target, the transition) +and wait for explicit approval. For bulk operations present the full list +first and change nothing until the plan is confirmed. Local edits, commits, +pushes and memory writes do not need this. + +## External communication (messages, emails, comments) + +- Neutral and technical: the agent conveys information, it does not imitate + a human. No social emojis, no emotional filler ("Danke dir! 🙂", "Huhu"). +- Structure: factual salutation ("Hallo ,"), precise content, concrete + call to action, closing without emotional markers. +- Append "(ai generated)" to every external text; never in chat replies to me. + +## Error handling + +If a tool call fails or hits a rate limit, pause and tell me. One retry with +the identified cause fixed (e.g. a sandbox denial) is fine; never retry in a +loop or brute-force through API calls. + +## Git commits + +- Conventional Commits; imperative, intent-focused subjects; body only when + needed; split unrelated changes; ask only for mixed diffs. +- On a Jira issue, prefix the subject with its key (`IT-12345`) in every repo. + The ISAC repo has its own single-line convention (`IT-12345 bw/: + `, no Conventional Commits); the `isac` skill has the details. + +## Jira + +- Search with JQL scoped to issues, never Confluence. Default filter: + `assignee = currentUser() AND status NOT IN (Done, Closed) ORDER BY duedate ASC` +- Asked to work on a ticket: present the ticket, then a numbered action plan. + No vague follow-up questions. +- Write actions (tickets, comments) go through the `jira-write` skill. + Comments are internal by default; public only when they address the + participants, never silently public. + +## Pointers to skills (load before acting) + +- **Icinga / monitoring** questions or alert handling: `icinga-monitoring` + (host groups, wrapper commands, per-service notes). +- **ISAC / BundleWrap / `bw`** (`$ISAC_PATH`, default `~/Projekte/isac`): the + `isac` skill **before** the first command or file access; its rules + (customer hosts and secrets off-limits, `isac` wrapper instead of raw `bw`, + approval before host changes) apply from the first command on. + ## Code health Strategic over tactical, with follow-through. Each change should leave the