@@ -70,7 +70,7 @@ The Aignostics Python SDK uses a **sophisticated multi-stage CI/CD pipeline** bu
7070
7171| Workflow | Triggers | Purpose | Calls |
7272| ----------| ----------| ---------| -------|
73- | ** ci-cd.yml** | push(main), PR, release, tag | Main CI/CD pipeline | _ lint, _ audit, _ test, _ codeql, _ ketryx, _ package-publish, _ docker-publish |
73+ | ** ci-cd.yml** | push(main), PR, release, tag | Main CI/CD pipeline | _ lint,_ audit, _ test,_ codeql, _ ketryx,_ package-publish, _ docker-publish |
7474| ** build-native-only.yml** | push, PR, release (if msg contains ` build:native:only ` ) | Native executable builds | _ build-native-only |
7575| ** claude-code-interactive.yml** | workflow_dispatch (manual) | Manual Claude sessions | _ claude-code (interactive) |
7676| ** claude-code-automation-pr-review.yml** | PR opened/sync (excludes bots) | Automated PR reviews | _ claude-code (automation) |
@@ -334,30 +334,32 @@ uv run pytest -m "(scheduled or scheduled_only)" -v
3343341. Unit Tests (3 min)
335335 ├─ Python 3.11 ─┐
336336 ├─ Python 3.12 ─┼─ Parallel execution
337- └─ Python 3.13 ─┘
337+ ├─ Python 3.13 ─┤
338+ └─ Python 3.14 ─┘
338339
3393402. Integration Tests (5 min)
340341 ├─ Python 3.11 ─┐
341342 ├─ Python 3.12 ─┼─ Parallel execution
342- └─ Python 3.13 ─┘
343+ ├─ Python 3.13 ─┤
344+ └─ Python 3.14 ─┘
343345
3443463. E2E Regular (7 min)
345347 ├─ Python 3.11 ─┐
346348 ├─ Python 3.12 ─┼─ Parallel execution
347- └─ Python 3.13 ─┘
349+ ├─ Python 3.13 ─┤
350+ └─ Python 3.14 ─┘
348351
3493524. Long Running (if not skipped)
350- └─ Python 3.13 only (single version)
353+ └─ Python 3.14 only (single version)
351354
3523555. Very Long Running (if explicitly enabled)
353- └─ Python 3.13 only (single version)
356+ └─ Python 3.14 only (single version)
354357```
355358
356359** Matrix Testing** :
357360
358- * Unit, Integration, E2E run on ** all 3 Python versions** (3.11, 3.12, 3.13)
359- * Long running and very long running run on ** Python 3.13 only** to save CI time
360- * Windows ARM excludes Python 3.12.12 due to instability
361+ * Unit, Integration, E2E run on ** all four Python versions** (3.11, 3.12, 3.13, 3.14)
362+ * Long running and very long running run on ** Python 3.14 only** to save CI time
361363
362364### Skip Markers System
363365
@@ -509,7 +511,6 @@ Claude Code is integrated into the CI/CD pipeline for:
509511# Inputs:
510512# - prompt: "Your task description"
511513# - max_turns: 200 (default)
512- # - platform_environment: staging (default) or production
513514` ` `
514515
515516# ### 2. Automation Mode
@@ -526,21 +527,20 @@ Claude Code is integrated into the CI/CD pipeline for:
526527**Inputs**:
527528
528529` ` ` yaml
529- platform_environment: 'staging' | 'production' # Default: staging
530530mode: 'interactive' | 'automation' # Required
531531prompt: 'string' # For automation mode
532532max_turns: '200' # Default: 200
533533allowed_tools: 'comma,separated,list' # Default: Read,Write,Edit,Glob,Grep,Bash(git:*),Bash(uv:*),Bash(make:*)
534534` ` `
535535
536- **Environment Setup** (same as test environment) :
536+ **Environment Setup**:
537537
5385381. Installs `uv` package manager
5395392. Installs dev tools (`.github/workflows/_install_dev_tools.bash`)
5405403. Syncs Python dependencies (`uv sync --all-extras`)
5415414. Sets up headless display (for GUI tests)
542- 5. Creates `.env` with Aignostics credentials (staging or production)
543- 6. Configures GCP credentials for bucket access
542+
543+ **Note**: Claude Code workflows intentionally do NOT have access to Aignostics platform credentials or GCP credentials to prevent accidental credential leakage.
544544
545545**Claude Configuration**:
546546
@@ -555,10 +555,7 @@ claude \
555555
556556**Secrets Required**:
557557
558- * `ANTHROPIC_API_KEY` - For Claude Code
559- * `AIGNOSTICS_CLIENT_ID_DEVICE_{STAGING|PRODUCTION}`
560- * `AIGNOSTICS_REFRESH_TOKEN_{STAGING|PRODUCTION}`
561- * `GCP_CREDENTIALS_{STAGING|PRODUCTION}`
558+ * `ANTHROPIC_API_KEY` - For Claude Code (only secret available to Claude Code workflows)
562559
563560# ## Automated PR Review (claude-code-automation-pr-review.yml)
564561
@@ -600,7 +597,6 @@ and adherence to CLAUDE.md guidelines.
600597
601598* `prompt`: What you want Claude to work on
602599* `max_turns`: How many iterations (default 200)
603- * `platform_environment`: staging (default) or production
604600
605601**Example Use Cases**:
606602
@@ -618,16 +614,15 @@ and adherence to CLAUDE.md guidelines.
618614* ✅ Use `--system-prompt` referencing CLAUDE.md
619615* ✅ Limit tool access (`--allowed-tools`)
620616* ✅ Set reasonable `--max-turns`
621- * ✅ Use staging environment for development
622617* ✅ Review Claude's changes before merging
623618* ✅ Let Claude explore workflows and test strategies
624619
625620**DON'T**:
626621
627622* ❌ Grant unrestricted tool access
628623* ❌ Skip CLAUDE.md system prompt
629- * ❌ Test against production without approval
630624* ❌ Merge without human review
625+ * ❌ Add platform/GCP credentials to Claude Code workflows (security risk)
631626
632627# # Scheduled Jobs
633628
@@ -1013,14 +1008,18 @@ make dist_native
10131008
101410091. Ensure `main` branch is clean and all tests pass
101510102. Run version bump :
1011+
10161012 ` ` ` bash
10171013 make bump patch # or minor, major
10181014 ` ` `
1015+
101910163. This creates a commit and git tag
102010174. Push with tags :
1018+
10211019 ` ` ` bash
10221020 git push --follow-tags
10231021 ` ` `
1022+
102410235. CI detects tag and triggers :
10251024 * Full CI pipeline (lint, audit, test, CodeQL)
10261025 * Package build and publish to PyPI
0 commit comments