Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .aiassistant/rules/aida.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
# 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".
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.
If it returns `ok=true`, execute the returned raw `git commit` command exactly.
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 or rewrite the returned command.
1 change: 1 addition & 0 deletions .aida/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
rules_selection.local.yaml
git_policy.local.yaml
1 change: 1 addition & 0 deletions .aida/change_domains.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#
# Define how changed paths map to validation domains.
# See `.aida/validation_policy.yaml` for mapping domains to pipelines.
version: 1
domains:
- id: python-package
description: Any workspace Python package under packages/*
Expand Down
26 changes: 16 additions & 10 deletions .aida/git_policy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,26 @@
# AIDA git policy
#
# Configure commit and git workflow policy used by AIDA tools.
version: 1
git_policy:
commit:
# Max allowed characters for the full commit subject line.
subject_max_chars: 70
# Allowed values for required `risk:` footer.
risk_values: [nonprod, low, high]
# Require AI contribution metadata (`AI-Code-Share`) in each commit.
require_ai_share: false
# Require `Co-authored-by:` footer in each commit.
risk_values:
- nonprod
- low
- high
require_co_authored_by: false
# Allow `--ai-share-auto <actor>` (deterministic actor=100).
enable_ai_share_auto: true
ticket_prefix: JIRA
risk_prefix: risk
template_file: templates/commit-message.txt
pre_commit_guidance: false
ticket_enabled: true
risk_enabled: true
workflow:
# Prefer `git push --force-with-lease` over `--force` for unpublished branches.
prefer_force_with_lease: true
# Allow autosquash/rebase only for unpublished (not yet shared) commits.
autosquash_unpublished_only: true
pr:
title_template_file: templates/pr-title.txt
body_template_file: templates/pr-body.md
enforcement:
mode: "off"
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 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.
57 changes: 57 additions & 0 deletions .aida/migrate-backups/20260307-133351/.claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
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.
4 changes: 4 additions & 0 deletions .aida/migrate-backups/20260307-133351/.junie/guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 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.
4 changes: 4 additions & 0 deletions .aida/migrate-backups/20260307-133351/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 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.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# 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.
10 changes: 10 additions & 0 deletions .aida/migrate-backups/20260307-140805/.claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
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.
6 changes: 6 additions & 0 deletions .aida/migrate-backups/20260307-140805/.junie/guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# 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.
6 changes: 6 additions & 0 deletions .aida/migrate-backups/20260307-140805/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# 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.
8 changes: 8 additions & 0 deletions .aida/templates/commit-message.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# (C) 2026 GoodData Corporation
{type}{repository_part}: {title}

{body}

{co_authored_by}
{ticket}
{risk}
12 changes: 12 additions & 0 deletions .aida/templates/pr-body.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# PR template generated by AIDA onboarding.
# Detected ticket prefix usage in history (DX-123 pattern).

## Summary
- {summary}

## Test plan
- {test_plan}

{co_authored_by}
{ticket}
{risk}
2 changes: 2 additions & 0 deletions .aida/templates/pr-title.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# (C) 2026 GoodData Corporation
{type}{repository_part}: {title}
85 changes: 31 additions & 54 deletions .aida/validation_policy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,69 +3,46 @@
#
# This file wires domains -> pipelines -> steps (command_id + processor_id).
# Initially empty (validate may no-op until you configure routes).
version: 1
validation_policy:
codegen:
- id: api-client-regeneration-check
match_globs:
- "schemas/**/*.json"
- ".openapi-generator/**/*.yaml"
- "scripts/generate_client.sh"
pipeline: api-client-fast
scopes: ["pre_push"]

- id: api-client-regeneration-check
match_globs:
- schemas/**/*.json
- .openapi-generator/**/*.yaml
- scripts/generate_client.sh
pipeline: api-client-fast
scopes:
- pre_push
routes:
- domain: python-package
pipeline: package-fast
- domain: api-client
pipeline: api-client-fast
- domain: repo-tooling
pipeline: repo-fast
- domain: aida-config
pipeline: aida-config

- domain: python-package
pipeline: package-fast
- domain: api-client
pipeline: api-client-fast
- domain: repo-tooling
pipeline: repo-fast
- domain: aida-config
pipeline: aida-config
pipelines:
package-fast:
steps:
- command_id: package-lint
processor_id: passthrough
- command_id: package-type-check
processor_id: passthrough
- command_id: package-test-py314
processor_id: pytest

package-compat:
steps:
- command_id: package-lint
processor_id: passthrough
- command_id: package-type-check
processor_id: passthrough
- command_id: package-test-py314
processor_id: pytest
- command_id: package-test-py310
processor_id: pytest

package-full:
steps:
- command_id: package-lint
processor_id: passthrough
- command_id: package-type-check
processor_id: passthrough
- command_id: package-test-matrix
processor_id: pytest

- command_id: package-lint
processor_id: passthrough
- command_id: package-type-check
processor_id: passthrough
- command_id: package-test-py314
processor_id: pytest
api-client-fast:
steps:
- command_id: api-client-tests
processor_id: pytest

- command_id: api-client-tests
processor_id: pytest
repo-fast:
steps:
- command_id: workspace-lint
processor_id: passthrough
- command_id: workspace-type-check
processor_id: passthrough

- command_id: workspace-lint
processor_id: passthrough
- command_id: workspace-type-check
processor_id: passthrough
aida-config:
steps:
- command_id: aida-doctor
processor_id: passthrough
- command_id: aida-doctor
processor_id: passthrough
65 changes: 38 additions & 27 deletions .aida/validation_registry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,56 @@
# AIDA validation registry
#
# Define command_id and processor_id specifications referenced by validation_policy.yaml.
version: 1
registry:
includes: []
commands:
package-lint:
argv: ["make", "-C", "{root}", "lint"]
cwd: "{workspace_root}"
argv:
- make
- -C
- '{root}'
- lint
cwd: '{workspace_root}'
package-type-check:
argv: ["make", "-C", "{root}", "type-check"]
cwd: "{workspace_root}"
package-test:
argv: ["make", "-C", "{root}", "test"]
cwd: "{workspace_root}"
argv:
- make
- -C
- '{root}'
- type-check
cwd: '{workspace_root}'
package-test-py314:
argv: ["make", "-C", "{root}", "test"]
cwd: "{workspace_root}"
argv:
- make
- -C
- '{root}'
- test
cwd: '{workspace_root}'
env:
TEST_ENVS: py314
package-test-py310:
argv: ["make", "-C", "{root}", "test"]
cwd: "{workspace_root}"
env:
TEST_ENVS: py310
package-test-matrix:
argv: ["make", "-C", "{root}", "test"]
cwd: "{workspace_root}"
env:
TEST_ENVS: py314,py313,py312,py311,py310
workspace-lint:
argv: ["make", "lint"]
cwd: "{workspace_root}"
argv:
- make
- lint
cwd: '{workspace_root}'
workspace-type-check:
argv: ["make", "type-check"]
cwd: "{workspace_root}"
argv:
- make
- type-check
cwd: '{workspace_root}'
api-client-tests:
argv: ["uv", "run", "tox", "-c", "{workspace_root}/gooddata-api-client/tox.ini"]
cwd: "{workspace_root}/gooddata-api-client"
argv:
- uv
- run
- tox
- -c
- '{workspace_root}/gooddata-api-client/tox.ini'
cwd: '{workspace_root}/gooddata-api-client'
aida-doctor:
argv: ["aida-mcp", "doctor"]
cwd: "{workspace_root}"
argv:
- aida-mcp
- doctor
cwd: '{workspace_root}'
processors:
passthrough:
kind: builtin
Expand Down
Loading
Loading