From e681d1874a0fd4a09da2e0364d3fa6c651f4b717 Mon Sep 17 00:00:00 2001 From: Jan Soubusta Date: Thu, 26 Mar 2026 16:35:35 +0100 Subject: [PATCH 1/2] chore: adopt new AIDA version and untrack generated rule files Untrack AI assistant rule files now managed by aida-mcp (.aiassistant/rules/aida.md, .junie/guidelines.md, AGENTS.md). Remove obsolete migration backups. Add AIDA preferences and update .gitignore. Co-authored-by: Claude Opus 4.6 (1M context) risk: nonprod --- .aiassistant/rules/aida.md | 12 ---- .aida/.gitignore | 2 + .../.aiassistant/rules/aida.md | 4 -- .../20260307-133351/.claude/CLAUDE.md | 57 ------------------- .../20260307-133351/.junie/guidelines.md | 4 -- .../migrate-backups/20260307-133351/AGENTS.md | 4 -- .../.aiassistant/rules/aida.md | 6 -- .../20260307-140805/.claude/CLAUDE.md | 10 ---- .../20260307-140805/.junie/guidelines.md | 6 -- .../migrate-backups/20260307-140805/AGENTS.md | 6 -- .aida/preferences.yaml | 19 +++++++ .gitignore | 5 ++ .junie/guidelines.md | 12 ---- AGENTS.md | 12 ---- 14 files changed, 26 insertions(+), 133 deletions(-) delete mode 100644 .aiassistant/rules/aida.md delete mode 100644 .aida/migrate-backups/20260307-133351/.aiassistant/rules/aida.md delete mode 100644 .aida/migrate-backups/20260307-133351/.claude/CLAUDE.md delete mode 100644 .aida/migrate-backups/20260307-133351/.junie/guidelines.md delete mode 100644 .aida/migrate-backups/20260307-133351/AGENTS.md delete mode 100644 .aida/migrate-backups/20260307-140805/.aiassistant/rules/aida.md delete mode 100644 .aida/migrate-backups/20260307-140805/.claude/CLAUDE.md delete mode 100644 .aida/migrate-backups/20260307-140805/.junie/guidelines.md delete mode 100644 .aida/migrate-backups/20260307-140805/AGENTS.md create mode 100644 .aida/preferences.yaml delete mode 100644 .junie/guidelines.md delete mode 100644 AGENTS.md diff --git a/.aiassistant/rules/aida.md b/.aiassistant/rules/aida.md deleted file mode 100644 index dc4b9435d..000000000 --- a/.aiassistant/rules/aida.md +++ /dev/null @@ -1,12 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -Reuse one stable `session_id` for the whole conversation when calling `get_rules`. -When a `get_rules` response returns `delta.cursor`, pass it as `delta_cursor` on the next `get_rules` call in the same conversation. -You must always follow instructions returned by the `get_rules` MCP tool. -Do not perform Git or GitHub management unless the user explicitly asks for it. -If the user asks for code or docs changes only, stop before commit, push, or PR actions. -For commit and push workflow, do not call `get_rules`. -When the user explicitly asks for a commit, call the AIDA MCP `commit_command` tool. -The tool executes the commit server-side. If it returns `ok=true`, the commit is done — do not run any git commit commands. -If it returns `status=needs_more_input`, infer the missing policy-controlled values from the current changes and retry instead of asking the user. -Do not handcraft `git commit` arguments. diff --git a/.aida/.gitignore b/.aida/.gitignore index 5990be114..b52b420da 100644 --- a/.aida/.gitignore +++ b/.aida/.gitignore @@ -1,2 +1,4 @@ rules_selection.local.yaml git_policy.local.yaml +preferences.local.yaml +native-export-manifest.json diff --git a/.aida/migrate-backups/20260307-133351/.aiassistant/rules/aida.md b/.aida/migrate-backups/20260307-133351/.aiassistant/rules/aida.md deleted file mode 100644 index 41ac40e59..000000000 --- a/.aida/migrate-backups/20260307-133351/.aiassistant/rules/aida.md +++ /dev/null @@ -1,4 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -Call AIDA MCP `get_rules` again before entering commit/push workflow with query: "How to commit/push". -You must always follow instructions returned by the `get_rules` MCP tool. diff --git a/.aida/migrate-backups/20260307-133351/.claude/CLAUDE.md b/.aida/migrate-backups/20260307-133351/.claude/CLAUDE.md deleted file mode 100644 index 654a14f46..000000000 --- a/.aida/migrate-backups/20260307-133351/.claude/CLAUDE.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -apply: always ---- - -# AIDA Development Workflow - -This file contains only: -- the mandatory workflow, and -- which MCP tools to use in each phase. - -Do not duplicate detailed “how to” guidance here. Always rely on MCP tool descriptions and `get_rules(...)`. - -## Editing this file (template-driven) - -This file is generated by `aida-mcp init` from templates shipped in the `aida-mcp` package. - -- **Do not hand-edit** `.cursor/rules/aida.mdc` or `.claude/CLAUDE.md` in a repo. -- To change the content, **update the templates in the `aida-mcp` package** and then rerun `aida-mcp init` in the repo. - -## Post-init check - -- After `aida-mcp init`, if MCP tools like `get_rules` or `validate` are missing, run `aida-mcp doctor`. - -## Workflow (mandatory) - -### 1) Get rules - -- At the start of every task (and again on scope change), call `get_rules(query="...")`. -- Follow the rules returned by `get_rules` for the task. - -### 2) Implement - -- Make the requested change(s) following repository rules returned by `get_rules`. - -### 3) Validate (blocking) - -- If you changed code, you must validate before responding about code changes. -- Prefer the narrowest validation that is still correct (use `test_filter` when appropriate). -- Use the MCP validation tool `validate` (prefer this over raw `./gradlew` / `make`). -- If you changed `.proto` files, do not run proto regeneration manually; `validate` will run it when needed. -- If unsure what validation to run, call `get_rules(query="validation workflow")` and follow the returned guidance. - -### 4) Commit / PR (if asked) - -- Ask for the JIRA ticket if unknown. -- Before committing or creating a PR, call `get_rules(query="git")` and follow the returned guidance. -- For commit creation, use `aida-mcp commit` (do not use raw `git commit`). - -## When to create/update rules - -If any of these happen, propose updates to repo rules/config by following `get_rules(query="rules authoring")`: -- repeated friction (“how do I … in this repo?” keeps coming up) -- user dissatisfaction (“wrong”, “not what I meant”, “stop doing that”) -- recurring validation failures of the same kind -- large/risky cross-cutting changes - -Before creating/updating files under `.aida/` (including `.aida/rules/**` and `.aida/*.yaml`), ask the user for explicit permission and proceed only after approval. diff --git a/.aida/migrate-backups/20260307-133351/.junie/guidelines.md b/.aida/migrate-backups/20260307-133351/.junie/guidelines.md deleted file mode 100644 index 41ac40e59..000000000 --- a/.aida/migrate-backups/20260307-133351/.junie/guidelines.md +++ /dev/null @@ -1,4 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -Call AIDA MCP `get_rules` again before entering commit/push workflow with query: "How to commit/push". -You must always follow instructions returned by the `get_rules` MCP tool. diff --git a/.aida/migrate-backups/20260307-133351/AGENTS.md b/.aida/migrate-backups/20260307-133351/AGENTS.md deleted file mode 100644 index 41ac40e59..000000000 --- a/.aida/migrate-backups/20260307-133351/AGENTS.md +++ /dev/null @@ -1,4 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -Call AIDA MCP `get_rules` again before entering commit/push workflow with query: "How to commit/push". -You must always follow instructions returned by the `get_rules` MCP tool. diff --git a/.aida/migrate-backups/20260307-140805/.aiassistant/rules/aida.md b/.aida/migrate-backups/20260307-140805/.aiassistant/rules/aida.md deleted file mode 100644 index 40f62d00d..000000000 --- a/.aida/migrate-backups/20260307-140805/.aiassistant/rules/aida.md +++ /dev/null @@ -1,6 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -You must always follow instructions returned by the `get_rules` MCP tool. -For commit and push workflow, do not call `get_rules`. -Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly. -Do not handcraft `git commit` arguments or rewrite the returned command. diff --git a/.aida/migrate-backups/20260307-140805/.claude/CLAUDE.md b/.aida/migrate-backups/20260307-140805/.claude/CLAUDE.md deleted file mode 100644 index 8685108f8..000000000 --- a/.aida/migrate-backups/20260307-140805/.claude/CLAUDE.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -apply: always ---- - -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -You must always follow instructions returned by the `get_rules` MCP tool. -For commit and push workflow, do not call `get_rules`. -Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly. -Do not handcraft `git commit` arguments or rewrite the returned command. diff --git a/.aida/migrate-backups/20260307-140805/.junie/guidelines.md b/.aida/migrate-backups/20260307-140805/.junie/guidelines.md deleted file mode 100644 index 40f62d00d..000000000 --- a/.aida/migrate-backups/20260307-140805/.junie/guidelines.md +++ /dev/null @@ -1,6 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -You must always follow instructions returned by the `get_rules` MCP tool. -For commit and push workflow, do not call `get_rules`. -Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly. -Do not handcraft `git commit` arguments or rewrite the returned command. diff --git a/.aida/migrate-backups/20260307-140805/AGENTS.md b/.aida/migrate-backups/20260307-140805/AGENTS.md deleted file mode 100644 index 40f62d00d..000000000 --- a/.aida/migrate-backups/20260307-140805/AGENTS.md +++ /dev/null @@ -1,6 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -You must always follow instructions returned by the `get_rules` MCP tool. -For commit and push workflow, do not call `get_rules`. -Before any commit, call the AIDA MCP `commit_command` tool and execute the returned raw `git commit` command exactly. -Do not handcraft `git commit` arguments or rewrite the returned command. diff --git a/.aida/preferences.yaml b/.aida/preferences.yaml new file mode 100644 index 000000000..86f136077 --- /dev/null +++ b/.aida/preferences.yaml @@ -0,0 +1,19 @@ +# (C) 2026 GoodData Corporation +# AIDA preferences +# +# Shared team defaults for AIDA behavior. +# Developers can override locally in `.aida/preferences.local.yaml`. +version: 1 +preferences: + # Operating mode: full (MCP server) or native (exported static rules). + mode: full + validation: + # auto: run automatically | ask: confirm before running | disabled: skip. + pre_commit: auto + pre_push: auto + commit: + # auto: execute server-side | ask: show command and confirm | disabled: skip. + mode: auto + pr: + # auto: execute server-side | ask: show command and confirm | disabled: skip. + mode: auto diff --git a/.gitignore b/.gitignore index 76ba04099..0c3af92da 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,8 @@ packages/gooddata-sdk/tests/export/exports/default/ # Staging test fixture backups (created by conftest.py, self-heal on next run) *.staging-backup +.cursor/rules/aida.mdc +.claude/CLAUDE.md +AGENTS.md +.aiassistant/rules/aida.md +.junie/guidelines.md diff --git a/.junie/guidelines.md b/.junie/guidelines.md deleted file mode 100644 index dc4b9435d..000000000 --- a/.junie/guidelines.md +++ /dev/null @@ -1,12 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -Reuse one stable `session_id` for the whole conversation when calling `get_rules`. -When a `get_rules` response returns `delta.cursor`, pass it as `delta_cursor` on the next `get_rules` call in the same conversation. -You must always follow instructions returned by the `get_rules` MCP tool. -Do not perform Git or GitHub management unless the user explicitly asks for it. -If the user asks for code or docs changes only, stop before commit, push, or PR actions. -For commit and push workflow, do not call `get_rules`. -When the user explicitly asks for a commit, call the AIDA MCP `commit_command` tool. -The tool executes the commit server-side. If it returns `ok=true`, the commit is done — do not run any git commit commands. -If it returns `status=needs_more_input`, infer the missing policy-controlled values from the current changes and retry instead of asking the user. -Do not handcraft `git commit` arguments. diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index dc4b9435d..000000000 --- a/AGENTS.md +++ /dev/null @@ -1,12 +0,0 @@ -# You must follow this guidance only if AIDA MCP tools are available. -Call AIDA MCP `get_rules` at every task start and after every scope change; the `query` must match the current requested task. -Reuse one stable `session_id` for the whole conversation when calling `get_rules`. -When a `get_rules` response returns `delta.cursor`, pass it as `delta_cursor` on the next `get_rules` call in the same conversation. -You must always follow instructions returned by the `get_rules` MCP tool. -Do not perform Git or GitHub management unless the user explicitly asks for it. -If the user asks for code or docs changes only, stop before commit, push, or PR actions. -For commit and push workflow, do not call `get_rules`. -When the user explicitly asks for a commit, call the AIDA MCP `commit_command` tool. -The tool executes the commit server-side. If it returns `ok=true`, the commit is done — do not run any git commit commands. -If it returns `status=needs_more_input`, infer the missing policy-controlled values from the current changes and retry instead of asking the user. -Do not handcraft `git commit` arguments. From 9f40116ea9c79657cd0d3217fb34046354913715 Mon Sep 17 00:00:00 2001 From: Jan Soubusta Date: Thu, 26 Mar 2026 16:39:51 +0100 Subject: [PATCH 2/2] fix: exclude AIDA templates from copyright hook Remove copyright headers from AIDA template files (pr-title.txt, commit-message.txt) that were incorrectly added by the pre-commit copyright hook. Add .aida/templates/** to .copyrightignore to prevent recurrence. Co-authored-by: Claude Opus 4.6 (1M context) risk: nonprod --- .aida/templates/commit-message.txt | 1 - .aida/templates/pr-title.txt | 1 - .copyrightignore | 3 +++ 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.aida/templates/commit-message.txt b/.aida/templates/commit-message.txt index 3fa71b39d..0946a89d8 100644 --- a/.aida/templates/commit-message.txt +++ b/.aida/templates/commit-message.txt @@ -1,4 +1,3 @@ -# (C) 2026 GoodData Corporation {type}{repository_part}: {title} {body} diff --git a/.aida/templates/pr-title.txt b/.aida/templates/pr-title.txt index 0897437a7..ac7bdd3fd 100644 --- a/.aida/templates/pr-title.txt +++ b/.aida/templates/pr-title.txt @@ -1,2 +1 @@ -# (C) 2026 GoodData Corporation {type}{repository_part}: {title} diff --git a/.copyrightignore b/.copyrightignore index 9e4f51c11..10bd55cd3 100644 --- a/.copyrightignore +++ b/.copyrightignore @@ -84,3 +84,6 @@ gooddata-sdk/tests/catalog/store/** # Testing certificates **/*.pem + +# AIDA templates (content used verbatim, not source code) +.aida/templates/**