@groupby/ai-dev 0.5.7 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/package.json +1 -1
  2. package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/full.md +31 -0
  3. package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/light.md +7 -0
  4. package/teams/fhr-ai-team/github/copilot-instructions.md +24 -0
  5. package/teams/fhr-ai-team/github/instructions/python.instructions.md +23 -0
  6. package/teams/fhr-ai-team/github/pull_request_template.md +21 -0
  7. package/teams/fhr-ai-team/prompts/brainstorm.md +7 -0
  8. package/teams/fhr-ai-team/prompts/plan-algo-tests.md +7 -0
  9. package/teams/fhr-ai-team/prompts/plan.md +7 -0
  10. package/teams/fhr-ai-team/prompts/pr-description.md +7 -0
  11. package/teams/fhr-ai-team/prompts/test.md +7 -0
  12. package/teams/fhr-ai-team/resources/AGENTS.md +55 -0
  13. package/teams/fhr-ai-team/resources/CLAUDE.md +52 -0
  14. package/teams/fhr-ai-team/resources/README.md +51 -0
  15. package/teams/fhr-ai-team/resources/claude-code-setup.md +60 -0
  16. package/teams/fhr-ai-team/resources/copilot-setup.md +64 -0
  17. package/teams/fhr-ai-team/resources/onboarding.md +179 -0
  18. package/teams/fhr-ai-team/resources/opencode-install.md +29 -0
  19. package/teams/fhr-ai-team/resources/opencode-setup.md +43 -0
  20. package/teams/fhr-ai-team/skills/algo-test-planning/SKILL.md +192 -0
  21. package/teams/fhr-ai-team/skills/algo-test-planning/references/pipeline-registry.md +280 -0
  22. package/teams/fhr-ai-team/skills/brainstorming/SKILL.md +111 -0
  23. package/teams/fhr-ai-team/skills/e2e-testing/SKILL.md +163 -0
  24. package/teams/fhr-ai-team/skills/grill-me/SKILL.md +10 -0
  25. package/teams/fhr-ai-team/skills/ml-tooling-dev/SKILL.md +313 -0
  26. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/kubectl-debug.md +165 -0
  27. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/mongodb-config.md +218 -0
  28. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-configs.md +190 -0
  29. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-steps.md +182 -0
  30. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_logs.py +203 -0
  31. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_query.py +233 -0
  32. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_wait.py +195 -0
  33. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mlflow_query.py +252 -0
  34. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mongo_predictor.py +352 -0
  35. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/SKILL.md +230 -0
  36. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/dataset-naming.md +190 -0
  37. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/domain-vocabulary.md +447 -0
  38. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/repo-dependency-graph.md +264 -0
  39. package/teams/fhr-ai-team/skills/planning/SKILL.md +138 -0
  40. package/teams/fhr-ai-team/skills/pr-description/SKILL.md +94 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groupby/ai-dev",
3
- "version": "0.5.7",
3
+ "version": "0.5.8",
4
4
  "description": "Interactive installer for Rezolve Ai development content",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,31 @@
1
+ ## Summary
2
+
3
+ <!-- What problem does this solve? Link the ticket (XO-XXXX / EB-XXXX) if there is one. Brief summary of the approach. -->
4
+
5
+ ## Scope
6
+
7
+ <!-- What is included in this PR? Delete this section when the scope is self-evident from the title. -->
8
+
9
+ ## Behavior
10
+
11
+ <!-- Describe the observable outcomes of this change, not the implementation details.
12
+ What does the system do differently after this PR? State it in terms a reviewer can verify:
13
+ - Given X, the system now does Y (previously: Z)
14
+ - Config key `foo.bar` controls ... ; default is ...
15
+ For design decisions, explain what was chosen and why the alternatives were rejected. -->
16
+
17
+ ## Wiring
18
+
19
+ <!-- How is the new code connected to the rest of the system? Which callers, configs, or entry points are affected? Delete this section for self-contained changes. -->
20
+
21
+ ## Tests
22
+
23
+ <!-- How was this tested? List test commands, key scenarios covered, or link CI results. -->
24
+
25
+ ## How to run
26
+
27
+ <!-- Steps to run or test this locally, if applicable. Delete this section for changes that don't need manual verification. -->
28
+
29
+ ## Backward compatibility
30
+
31
+ <!-- Does this change any public API, config key, data format, or pipeline interface? If yes, explain the migration path. If fully backward-compatible, write "No breaking changes". Delete this section for internal-only changes. -->
@@ -0,0 +1,7 @@
1
+ ## What changed
2
+
3
+ <!-- One or two sentences: what changed and why. -->
4
+
5
+ ## Notes for reviewer
6
+
7
+ <!-- Optional: anything non-obvious about the change, or "None". -->
@@ -0,0 +1,24 @@
1
+ # Custom instructions for GitHub Copilot
2
+
3
+ When performing a code review, please ensure the following:
4
+
5
+ ## Crownpeak AI Team Conventions
6
+ - Search the codebase for existing utilities before creating new ones.
7
+ - Check shared libraries: earlybirds_commons, torch_toolbox, item-toolbox, nlp-toolbox.
8
+ - Use "item" not "product", "encodings" not "embeddings".
9
+ - JSON/YAML config keys: camelCase.
10
+ - Parquet columns: camelCase.
11
+ - GCS paths: kebab-case.
12
+ - Strategy IDs: kebab-case.
13
+ - Docker images: kebab-case.
14
+ - Parquet column labels: class-level attributes (_label pattern), not module-level constants.
15
+ - Config classes: use standard suffixes (*Config, *ModelConfig, *BatchConfig, etc.).
16
+ - No placeholders, no "TBD", no vague error handling.
17
+
18
+ ## Commit Messages - Use the following guidelines
19
+ - Use the imperative mood in the subject line (e.g., "Fix bug" instead of "Fixed bug").
20
+ - Start with a capital letter.
21
+ - Do not end the subject line with a period.
22
+ - Use the body to explain what and why vs. how.
23
+ - Use bullet points for multiple changes if necessary.
24
+ - Keep the subject line under 50 characters.
@@ -0,0 +1,23 @@
1
+ ---
2
+ applyTo: "**/*.py"
3
+ ---
4
+
5
+ # Python Coding Style
6
+
7
+ - Use PEP 8 style guide for Python code.
8
+ - Don't write docstrings for all public modules, classes, functions, and methods.
9
+ - Use meaningful variable and function names.
10
+ - Use snake_case for variable and function names.
11
+ - Use CamelCase for class names.
12
+ - Use type annotations for function parameters and return types.
13
+ - Add '_opt' at the end of the function name for optional parameters and at the end of variable name for optional variables.
14
+ - Use double quotes for string literals. Use single quotes for string literals only when the string contains double quotes.
15
+ - Use triple quotes for multi-line strings. Use implicit string concatenation inside parentheses when joining shorter fragments across lines.
16
+ - Use f-strings for string formatting. Avoid using the format() method or % operator for string formatting.
17
+ - Use list comprehensions and generator expressions for creating lists and iterators. Avoid using map() and filter() functions.
18
+ - Use `with open(...) as file_obj:` for file I/O operations. Avoid manual `close()` calls when a context manager can manage the file handle.
19
+ - Use context managers for resource management when available. Avoid using `try/finally` for resource cleanup when a context manager can express the same behavior more clearly.
20
+ - Use exceptions for error handling. Avoid using return codes for error handling.
21
+ - Use pytest for functional testing. Avoid using other testing frameworks unless necessary.
22
+ - If a dict key is used in several places, use a variable for the key name. Use a constant for the key name if it is used in several modules. The variable name should be in snake_case and start with an underscore.
23
+ - Use single responsibility principle for SOLID code.
@@ -0,0 +1,21 @@
1
+ <!--
2
+ Pick a template:
3
+ - Small change (bug fix, config, dependency bump, typo): use light template
4
+ -> append ?template=light.md to the PR creation URL
5
+ - Feature, refactor, or architectural change: use full template
6
+ -> append ?template=full.md to the PR creation URL
7
+
8
+ Or fill in the default below.
9
+ -->
10
+
11
+ ## Why
12
+
13
+ <!-- What problem does this solve? Link the ticket (XO-XXXX / EB-XXXX) if there is one. -->
14
+
15
+ ## What
16
+
17
+ <!-- Describe the approach. For non-trivial changes, explain the design and key decisions. -->
18
+
19
+ ## Tests
20
+
21
+ <!-- How was this tested? List test commands, key scenarios covered, or link CI results. -->
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Brainstorm a new feature or design with codebase context. Discovers AI team repos, searches existing code, gathers requirements interactively.
3
+ ---
4
+
5
+ Invoke the ai.pierre:brainstorming skill.
6
+
7
+ $ARGUMENTS
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Plan and configure a test for an algo pipeline. Interactive 3-stage flow to select pipeline, gather config, and generate Kubeflow JSON.
3
+ ---
4
+
5
+ Invoke the ai.pierre:algo-test-planning skill.
6
+
7
+ $ARGUMENTS
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Plan an implementation with mandatory codebase search and code reuse. Produces TDD-based bite-sized tasks with exact file paths.
3
+ ---
4
+
5
+ Invoke the ai.pierre:planning skill.
6
+
7
+ Implement $ARGUMENTS. IMPORTANT: First search the codebase for existing utilities, scripts, and patterns that do similar things. Reuse them. Do not create new abstractions without showing me what already exists.
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Generating a PR description from the current branch diff
3
+ ---
4
+
5
+ Invoke the ai.pierre:pr-description skill.
6
+
7
+ Generate a PR description for the current branch. $ARGUMENTS
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Run tests - local pytest, Kubeflow pipeline e2e, or MLflow model validation. Uses ml-tooling-dev for pipeline operations.
3
+ ---
4
+
5
+ Invoke the ai.pierre:e2e-testing skill.
6
+
7
+ $ARGUMENTS
@@ -0,0 +1,55 @@
1
+ # ai.pierre - Agent Instructions
2
+
3
+ This file provides instructions for AI coding agents (OpenCode, Copilot, and others) working with Crownpeak AI team repositories.
4
+
5
+ ## Skills Available
6
+
7
+ The `skills/` directory contains the following skills. Detect which skill applies based on the user's request and invoke it automatically.
8
+
9
+ ### Workflow Skills
10
+
11
+ | Skill | Directory | Trigger |
12
+ |-------|-----------|---------|
13
+ | Brainstorming | `skills/brainstorming/` | User wants to design, explore, or brainstorm a feature |
14
+ | Planning | `skills/planning/` | User wants to plan an implementation or break down tasks |
15
+ | Algo Test Planning | `skills/algo-test-planning/` | User wants to test a Kubeflow pipeline |
16
+ | E2E Testing | `skills/e2e-testing/` | User wants to run tests (local, pipeline, or model validation) |
17
+ | Grill Me | `skills/grill-me/` | User wants to stress-test a plan or design through rigorous questioning |
18
+
19
+ ### Domain Skills
20
+
21
+ | Skill | Directory | Trigger |
22
+ |-------|-----------|---------|
23
+ | ML Tooling Dev | `skills/ml-tooling-dev/` | User works with Kubeflow, MLflow, or MongoDB |
24
+ | Naming Conventions | `skills/naming-conventions-reviewer/` | User writes or reviews code in any ML repo |
25
+
26
+ ## Automatic Skill Selection
27
+
28
+ The user does **not** need to explicitly request skills. Determine the applicable skill from the user's natural language request:
29
+
30
+ - "Design a feature" / "How should we approach..." -> brainstorming
31
+ - "Break this down" / "Plan the implementation" -> planning
32
+ - "Test the pipeline" / "Run a test for..." -> algo-test-planning or e2e-testing
33
+ - "Check the Kubeflow run" / "Debug this job" -> ml-tooling-dev
34
+ - "Grill me" / "Stress-test this plan" / "Challenge my design" -> grill-me
35
+ - "Review this code" / "Is this name right?" -> naming-conventions-reviewer
36
+
37
+ ## Team Context
38
+
39
+ ### Repository Naming
40
+ - `algo.*` - ML algorithm projects (training, inference, evaluation)
41
+ - `algo.*-ml` - ML model training/fine-tuning (run on Kubeflow)
42
+ - `ai.*` - AI-powered microservices (FastAPI, Streamlit)
43
+ - `*-toolbox` - Shared Python libraries
44
+ - `attraqt-kubeflow-*` - Kubeflow pipeline configs and definitions
45
+ - `ebap-*` - Early Birds AI Platform infrastructure
46
+
47
+ ### Shared Libraries
48
+ Before writing new utilities, check:
49
+ - `earlybirds_commons`, `torch_toolbox`, `item-toolbox`, `nlp-toolbox`, `eb_tensorflow`
50
+
51
+ ### Core Rules
52
+ 1. Search the codebase for existing implementations before proposing new code
53
+ 2. Reuse shared library utilities; do not duplicate
54
+ 3. Follow naming conventions (see `skills/naming-conventions-reviewer/`)
55
+ 4. No placeholders, no "TBD", no vague instructions in plans or designs
@@ -0,0 +1,52 @@
1
+ # ai.pierre - Crownpeak AI Team Engineering Skills
2
+
3
+ This plugin provides engineering skills and slash commands for the Crownpeak AI team's ML development workflow.
4
+
5
+ ## Available Commands
6
+
7
+ | Command | When to use |
8
+ |---------|-------------|
9
+ | `/brainstorm` | Designing a new feature, exploring architecture decisions, or evaluating approaches |
10
+ | `/pr-description` | Generating a PR description from the current branch diff |
11
+ | `/plan` | Breaking down an approved design into implementation tasks |
12
+ | `/plan-algo-tests` | Configuring and planning a Kubeflow pipeline test run |
13
+ | `/test` | Running local tests, launching pipeline e2e tests, or validating model outputs |
14
+
15
+ ## Auto-Routing Rules
16
+
17
+ When working in any Crownpeak AI repo, apply these skills automatically:
18
+
19
+ - **Writing or reviewing code** in any repo -> invoke `ai.pierre:naming-conventions-reviewer` to validate names
20
+ - **Working with Kubeflow, MLflow, or MongoDB** -> invoke `ai.pierre:ml-tooling-dev` for operations and debugging
21
+ - **Brainstorming or designing** -> invoke `ai.pierre:brainstorming` for codebase-aware design
22
+ - **Planning implementation** -> invoke `ai.pierre:planning` for task breakdown
23
+ - **Testing pipelines** -> invoke `ai.pierre:algo-test-planning` for config generation, `ai.pierre:e2e-testing` for execution
24
+ - **Stress-testing a plan or design** -> invoke `ai.pierre:grill-me` to interrogate decisions branch by branch
25
+ - **Creating a PR or asked to write a PR description** -> invoke `ai.pierre:pr-description` to generate from the diff
26
+
27
+ ## Team Repo Structure
28
+
29
+ | Pattern | Purpose | Examples |
30
+ |---------|---------|---------|
31
+ | `algo.*` | ML algorithm projects | `algo.search`, `algo.clip`, `algo.tagging` |
32
+ | `algo.*-ml` | ML training (Kubeflow) | `algo.search-ml`, `algo.clip-ml` |
33
+ | `ai.*` | AI microservices | `ai.tagging-service`, `ai.guardrails-service` |
34
+ | `*-toolbox` | Shared Python libraries | `pytorch-toolbox`, `nlp-toolbox`, `item-toolbox` |
35
+ | `attraqt-kubeflow-*` | Kubeflow infra | `attraqt-kubeflow-configs`, `attraqt-kubeflow-pipelines` |
36
+ | `ebap-*` | AI Platform infra | `ebap-argo-app`, `ebap-schema` |
37
+
38
+ ## Shared Libraries
39
+
40
+ Always check these before writing new utilities:
41
+ - `earlybirds_commons` - shared utilities and configurations
42
+ - `torch_toolbox` - PyTorch model training/inference
43
+ - `item-toolbox` - e-commerce item data utilities
44
+ - `nlp-toolbox` - text tokenization and NLP
45
+ - `eb_tensorflow` - TensorFlow model utilities
46
+
47
+ ## Non-Negotiable Principles
48
+
49
+ 1. **Search before creating.** Always search the codebase for existing implementations before proposing new code.
50
+ 2. **Reuse before writing.** If a utility exists in a shared library, use it.
51
+ 3. **Name correctly.** All names must follow the conventions enforced by `naming-conventions-reviewer`.
52
+ 4. **No placeholders.** Every plan, design, and implementation must be complete and precise.
@@ -0,0 +1,51 @@
1
+ # ai.agent-skills
2
+
3
+ Engineering skills for Crownpeak AI team coding agents. Plugin name: **ai.pierre**.
4
+
5
+ Provides codebase-aware brainstorming, implementation planning with mandatory code reuse, interactive Kubeflow pipeline test configuration, and cross-repo naming convention enforcement.
6
+
7
+ **New to Claude Code?** Start with the [onboarding guide](docs/onboarding.md) after installing.
8
+
9
+ ## Quick Install
10
+
11
+ | Tool | Command |
12
+ |------|---------|
13
+ | **Claude Code** | `/plugin install ai.pierre` ([setup guide](docs/claude-code-setup.md)) |
14
+ | **OpenCode** | Clone repo, open in OpenCode ([setup guide](docs/opencode-setup.md)) |
15
+ | **GitHub Copilot** | Copy skills to `.github/skills/` ([setup guide](docs/copilot-setup.md)) |
16
+
17
+ ## Commands
18
+
19
+ | Command | Description |
20
+ |---------|-------------|
21
+ | `/brainstorm` | Codebase-aware brainstorming with dynamic AI team repo discovery via `gh` |
22
+ | `/plan` | Implementation planning with mandatory codebase search and code reuse |
23
+ | `/plan-algo-tests` | Interactive 3-stage flow: pipeline selection, config gathering, Kubeflow JSON generation |
24
+ | `/test` | Local pytest, Kubeflow pipeline e2e testing, or MLflow model validation |
25
+
26
+ ## Skills
27
+
28
+ | Skill | Description |
29
+ |-------|-------------|
30
+ | `brainstorming` | Design exploration with repo discovery, codebase search, interactive requirements gathering |
31
+ | `planning` | TDD-based task breakdown with cross-repo dependency mapping |
32
+ | `algo-test-planning` | Pipeline test config generation with 3-stage interactive flow |
33
+ | `e2e-testing` | Local, pipeline, and model validation testing workflows |
34
+ | `ml-tooling-dev` | Kubeflow, MLflow, and MongoDB dev environment management |
35
+ | `grill-me` | Stress-test a plan or design through relentless questioning, resolving each branch of the decision tree |
36
+ | `naming-conventions-reviewer` | Cross-repo naming convention enforcement for ML repositories |
37
+
38
+ ## Copilot Instructions
39
+
40
+ A reference [`copilot-instructions.md`](.github/copilot-instructions.md) is included for GitHub Copilot code reviews. It covers Python coding style, Crownpeak AI team naming conventions, and commit message standards. Copy it into your project's `.github/` directory to enable Copilot-assisted reviews. See the [Copilot setup guide](docs/copilot-setup.md) for details.
41
+
42
+ ## Repository Structure
43
+
44
+ ```
45
+ .claude/commands/ Slash commands (thin wrappers invoking skills)
46
+ .github/ Reference copilot-instructions.md for code reviews
47
+ skills/ Skill definitions with SKILL.md, references/, and scripts/
48
+ docs/ Setup guides for Claude Code, OpenCode, and Copilot
49
+ CLAUDE.md Agent instructions for Claude Code
50
+ AGENTS.md Agent instructions for OpenCode and Copilot
51
+ ```
@@ -0,0 +1,60 @@
1
+ # Claude Code Setup
2
+
3
+ ## Installation
4
+
5
+ ### Via Plugin System (Recommended)
6
+
7
+ ```bash
8
+ # Add the marketplace (if not already added)
9
+ /plugin marketplace add Attraqt/ai-agent-skills-marketplace
10
+
11
+ # Install the plugin
12
+ /plugin install ai.pierre@ai-agent-skills-marketplace
13
+ ```
14
+
15
+ ### Manual Install (Local Development)
16
+
17
+ ```bash
18
+ # Clone the repo
19
+ git clone https://github.com/Attraqt/ai.agent-skills.git
20
+
21
+ # Run Claude Code with the plugin directory
22
+ claude --plugin-dir /path/to/ai.agent-skills
23
+ ```
24
+
25
+ ## Available Commands
26
+
27
+ | Command | Description |
28
+ |---------|-------------|
29
+ | `/brainstorm` | Codebase-aware brainstorming with dynamic repo discovery |
30
+ | `/plan` | Implementation planning with mandatory codebase search and code reuse |
31
+ | `/plan-algo-tests` | Interactive 3-stage pipeline test configuration and Kubeflow JSON generation |
32
+ | `/test` | Local pytest, Kubeflow pipeline e2e, or MLflow model validation |
33
+
34
+ ### Usage Examples
35
+
36
+ ```
37
+ /brainstorm adding sparse retrieval to semantic search
38
+ /plan BGE-M3 migration for algo.semantic-search-ml
39
+ /plan-algo-tests
40
+ /test algo.search-ml unit tests
41
+ ```
42
+
43
+ ## Bundled Skills
44
+
45
+ These skills are loaded automatically and invoked based on context:
46
+
47
+ | Skill | Auto-invoked when |
48
+ |-------|-------------------|
49
+ | `ml-tooling-dev` | Working with Kubeflow, MLflow, or MongoDB |
50
+ | `naming-conventions-reviewer` | Writing or reviewing code in any ML repo |
51
+ | `brainstorming` | Designing or exploring features |
52
+ | `planning` | Breaking down implementation tasks |
53
+ | `algo-test-planning` | Configuring pipeline test runs |
54
+ | `e2e-testing` | Running any type of test |
55
+
56
+ ## How Auto-Routing Works
57
+
58
+ The `CLAUDE.md` file at the plugin root defines when each skill should be invoked.
59
+ Claude Code reads this file and applies the appropriate skill based on your request context.
60
+ You can also invoke skills explicitly via slash commands.
@@ -0,0 +1,64 @@
1
+ # GitHub Copilot Setup
2
+
3
+ ## Installation
4
+
5
+ ### Copy Skills to Your Repository
6
+
7
+ ```bash
8
+ # Clone ai.agent-skills
9
+ git clone https://github.com/Attraqt/ai.agent-skills.git /tmp/ai.agent-skills
10
+
11
+ # Copy skills to your project
12
+ mkdir -p .github/skills
13
+ cp -R /tmp/ai.agent-skills/skills/* .github/skills/
14
+ ```
15
+
16
+ ### Add Copilot Instructions
17
+
18
+ Copy the instructions files from this repository into your project:
19
+
20
+ ```bash
21
+ cp /tmp/ai.agent-skills/.github/copilot-instructions.md .github/copilot-instructions.md
22
+ mkdir -p .github/instructions
23
+ cp /tmp/ai.agent-skills/.github/instructions/*.instructions.md .github/instructions/
24
+ ```
25
+
26
+ The instructions are split into two layers:
27
+
28
+ - [`.github/copilot-instructions.md`](../.github/copilot-instructions.md) - Generic rules: Crownpeak AI team conventions and commit message standards. Applied to all reviews.
29
+ - [`.github/instructions/python.instructions.md`](../.github/instructions/python.instructions.md) - Python coding style. Applied only when reviewing `**/*.py` files.
30
+
31
+ You can add more language-specific files (e.g. `typescript.instructions.md`) following the same pattern. See [GitHub docs on path-specific instructions](https://docs.github.com/en/copilot/tutorials/customize-code-review#when-to-use-path-specific-instructions) for details.
32
+
33
+ ### Agent Personas (Optional)
34
+
35
+ Copy agent definitions for specialized review:
36
+
37
+ ```bash
38
+ mkdir -p .github/agents
39
+
40
+ # Create a naming reviewer agent
41
+ cat > .github/agents/naming-reviewer.md << 'EOF'
42
+ You are an expert reviewer for naming conventions in Crownpeak/Earlybirds ML repositories.
43
+ Review code changes for naming consistency using the rules in .github/skills/naming-conventions-reviewer/SKILL.md.
44
+ Flag violations with the correct canonical name.
45
+ EOF
46
+ ```
47
+
48
+ Invoke in Copilot Chat:
49
+ ```
50
+ @naming-reviewer Review this PR for naming convention violations
51
+ ```
52
+
53
+ ## Usage Tips
54
+
55
+ 1. **Keep instructions concise.** Copilot works best with focused, summarized rules rather than full skill files.
56
+ 2. **Use agents for review.** The naming-reviewer agent is useful for PR reviews.
57
+ 3. **Reference skills in chat.** When working on pipeline configs, paste relevant content from `skills/ml-tooling-dev/` into Copilot Chat for context.
58
+ 4. **Combine with PR reviews.** Configure Copilot to use the naming-reviewer agent for automated PR checks.
59
+
60
+ ## Limitations
61
+
62
+ - Copilot does not support the interactive AskUserQuestion flow used by brainstorming and algo-test-planning skills
63
+ - Pipeline-specific skills (ml-tooling-dev, algo-test-planning) work best in Claude Code or OpenCode where they can execute commands
64
+ - For full skill support, use Claude Code or OpenCode
@@ -0,0 +1,179 @@
1
+ # Claude Code — Team Tips & Best Practices
2
+
3
+ > After installing the plugin per [claude-code-setup.md](claude-code-setup.md), read this before your first ticket.
4
+
5
+ ---
6
+
7
+ ## 1. Initial Setup
8
+
9
+ ### GitHub Access
10
+
11
+ Connect Claude Code to GitHub by selecting **individual repositories** — never grant org-wide access. This is a security requirement. If you run into authorization issues, ask Pavel, Julian, or Aurélie for help.
12
+
13
+ ### Atlassian Integration
14
+
15
+ You can connect Claude Code to Atlassian so you can reference Jira ticket IDs directly in your prompts instead of copy-pasting ticket content.
16
+
17
+ ### Essential Skills to Install
18
+
19
+ Before you start working, make sure you have at least these skills available (check with `/` in a session):
20
+
21
+ - **Grill Me** — structured requirements Q&A before implementation
22
+ - **Handoff** — summarizes a session into a spec for the next one
23
+ - **Caveman** — strips pleasantries to save tokens (multiple verbosity levels)
24
+
25
+ If skills don't appear after installation, try these steps in order:
26
+
27
+ 1. Open a new session and type `/` to check if skills are listed
28
+ 2. If not, try reloading skills from the settings
29
+ 3. If still missing, restart the desktop app entirely
30
+ 4. If you installed via CLI but use the desktop app (or vice versa), you may need to reinstall using the method that matches your interface
31
+
32
+ ---
33
+
34
+ ## 2. Workflow: From Ticket to PR
35
+
36
+ ### Step 1 — Read the Ticket
37
+
38
+ Read and understand the ticket yourself first. You need to be able to answer Claude's questions during the Grill Me phase. Don't skip this.
39
+
40
+ ### Step 2 — Grill Me Session
41
+
42
+ Paste the ticket content into a code block (triple backticks), add your instruction and context below it, then invoke `/grill-me`.
43
+
44
+ ```
45
+ \`\`\`
46
+ <ticket content here>
47
+ \`\`\`
48
+
49
+ I want to implement this ticket within the repository <repo-name>.
50
+ /grill-me
51
+ ```
52
+
53
+ **What Grill Me does:** It injects a prompt that tells Claude to interview you relentlessly about every aspect of the plan, traversing a "design tree" of implementation possibilities until you both reach a shared understanding of what to build.
54
+
55
+ **Why it matters:**
56
+ - Surfaces things you forgot or didn't think about (e.g., deployment strategy, missing endpoints)
57
+ - Reaches an explicit **agreement** with the LLM — so it doesn't guess or go off-track during implementation
58
+ - Without it, Claude still asks questions, but they're less structured and less relevant. You end up spending more tokens correcting course later.
59
+
60
+ **During the Q&A:**
61
+ - Read Claude's recommendations before answering — they're usually good, but not always what you want
62
+ - You can reply with just "B" or "recommendation" when you agree — be token-efficient
63
+ - When Claude asks about something out of scope, say so clearly: "Authentication will be handled on the infrastructure side and should not be implemented in this ticket" — not just "don't include this" (too vague, causes misinterpretation)
64
+ - If Claude asks about something you're unsure of, provide context even if it wasn't in the ticket — this enriches later decision-making
65
+
66
+ **Variant — Grill Me with Docs:** Searches your codebase documentation to ask better-informed questions. Useful when you're not sure how to answer a Grill Me question yourself.
67
+
68
+ ### Step 3 — Handoff to a Fresh Session
69
+
70
+ After Grill Me reaches "ready to implement," use `/handoff`. This generates a markdown specification summarizing the agreed plan. Then start a new session and point Claude at that spec.
71
+
72
+ **Why not just keep going in the same session?**
73
+ - Long sessions bloat context — every message you send includes all previous conversation
74
+ - More context = more token cost + degraded LLM quality ("the more context it has, the dumber it gets")
75
+ - `/handoff` gives you a clean start with only what matters
76
+
77
+ Alternative: `/compact` does a similar context reset within the same session.
78
+
79
+ ### Step 4 — Implementation
80
+
81
+ Point Claude at the handoff spec and let it implement. The desktop app (not CLI) will handle PR creation and avoid pushing directly to develop.
82
+
83
+ ### Step 5 — Review
84
+
85
+ Use `/review` for a general code review of your changes. You can also fine-tune review behavior via `copilot-instructions.md` in the repository.
86
+
87
+ ---
88
+
89
+ ## 3. Prompting Techniques
90
+
91
+ ### Be Terse, but Not Ambiguous
92
+
93
+ Saving tokens is good. Losing meaning is not. "B" is fine when Claude gives you options. "Don't include this" is too vague when scoping out a feature — say what you mean and why.
94
+
95
+ ### Provide Full Stack Context
96
+
97
+ Claude doesn't know your stack unless you tell it. Missing context leads to rework — even a good Grill Me session can miss things if Claude doesn't know about your tooling.
98
+
99
+ At the start of a session (or in your Grill Me prompt), mention:
100
+ - **Frameworks and services** your project depends on (LangFuse, Streamlit, FastAPI, etc.)
101
+ - **Deployment targets** (ArgoCD, Argo App ML, Kubeflow, specific namespaces)
102
+ - **Data sources** (MongoDB collections, MLflow experiment names)
103
+ - **What's out of scope** for this ticket (auth, infra, other tickets handling adjacent work)
104
+
105
+ If you're unsure what context matters, use the **Grill Me with Docs** variant — it reads your codebase docs to fill in gaps.
106
+
107
+ ### Use Code Blocks for Pasted Content
108
+
109
+ Wrap ticket text, specs, or any pasted content in triple backticks. Keeps the prompt clean and helps Claude distinguish instructions from reference material.
110
+
111
+ ### Use `/rewind` When Things Go Wrong
112
+
113
+ Rolls back both conversation and code changes to any previous point. Extremely useful when Claude goes down the wrong path.
114
+
115
+ ---
116
+
117
+ ## 4. Token Efficiency
118
+
119
+ - **Caveman skill** reduces conversational overhead. At higher levels it switches to the most token-efficient language (while still generating code in English).
120
+ - **Smaller tickets = fewer tokens.** Split work into focused subtasks. One task per session is the sweet spot.
121
+ - **Avoid 1M-token context models** — quality degrades well before that limit. Standard context with fresh sessions works better.
122
+ - **Handoff between sessions** instead of accumulating context in one long conversation.
123
+ - **French uses more tokens than English** due to accents and tokenization. If token budget is tight, prompt in English.
124
+
125
+ ---
126
+
127
+ ## 5. Building & Using Skills
128
+
129
+ Skills are more than markdown prompts — they're most powerful when they wrap **scripts** that Claude executes.
130
+
131
+ ### The Pattern
132
+
133
+ 1. **Skill file** (markdown) — describes the workflow, what scripts to use at each step, and provides context (URLs, environment info, conventions)
134
+ 2. **Scripts** (bash/python) — do the actual work without burning tokens on CLI commands
135
+
136
+ ### Example: ML Tooling Dev Skill
137
+
138
+ Manages Kubeflow, MLflow, and MongoDB by providing Claude with pre-built scripts for querying pipelines, reading logs, checking run status, and updating configs. Claude uses the scripts directly instead of figuring out `kubectl` commands from scratch each time.
139
+
140
+ ### Why Scripts Over MCP
141
+
142
+ - **Adapted to your workflow** — generic MCPs don't know your conventions
143
+ - **Token-efficient** — scripts execute directly; MCP adds an LLM layer for each tool call
144
+ - **Documented** — docs in the skill help Claude understand what each script does
145
+
146
+ ### Improving Skills Iteratively
147
+
148
+ When a skill produces errors, feed those errors back to Claude and ask it to enhance the skill. Each iteration reduces token waste and improves reliability.
149
+
150
+ ### Creating Skills from Sessions
151
+
152
+ At the end of a productive session, ask Claude: "Based on this session, use Skill Creator to build a skill that replicates what I just did." Results vary by session complexity, but it's a good starting point.
153
+
154
+ ---
155
+
156
+ ## 6. Multi-Repository Work
157
+
158
+ For projects spanning multiple repos:
159
+
160
+ 1. Keep all project repos in one parent directory
161
+ 2. Add a `CLAUDE.md` at the parent level that summarizes how the projects relate
162
+ 3. Launch Claude from that parent directory
163
+ 4. Tell Claude to look at local repos when it needs cross-project context
164
+
165
+ ---
166
+
167
+ ## 7. Security Reminders
168
+
169
+ - **GitHub:** Select individual repos, not org-wide access
170
+ - **Credentials/tokens:** Don't hardcode secrets in code Claude generates. Use `.env` files and ensure they're in `.gitignore`. Claude Code settings can be configured to ignore sensitive files by default.
171
+ - **Audit trail:** Everything Claude does is under **your** username. Treat its actions as your own — review before merging.
172
+ - **Destructive commands:** Claude is reluctant to run Terragrunt, and cautious with SQL. This is by design. Don't override these guardrails without thinking.
173
+ - **Auto mode:** Be careful — it can push to develop or skip branch creation if you're not watching. Before entering auto mode, always verify: (1) you're on a feature branch, not develop; (2) the remote is set correctly. If something goes wrong, use `git reflog` to find your previous state and `git reset` to recover. Ask for help if unsure.
174
+
175
+ ---
176
+
177
+ ## 8. Learning from Claude
178
+
179
+ Read Claude's traces (`Cmd+O` on macOS) — the full trace of what Claude does is visible and educational. You'll learn bash techniques, see its reasoning process, and spot errors you can feed back to improve skills.
@@ -0,0 +1,29 @@
1
+ # OpenCode Installation
2
+
3
+ ## Setup
4
+
5
+ 1. Clone the repository:
6
+ ```bash
7
+ git clone https://github.com/Attraqt/ai.agent-skills.git
8
+ ```
9
+
10
+ 2. Open the project in OpenCode. The `AGENTS.md` file at the repo root is loaded automatically and provides agent instructions.
11
+
12
+ 3. Skills in the `skills/` directory are discovered automatically via directory convention.
13
+
14
+ ## How It Works
15
+
16
+ - **No slash commands needed.** The agent reads `AGENTS.md` and automatically selects the appropriate skill based on your natural language request.
17
+ - Skills are stored as `skills/<skill-name>/SKILL.md` files with supporting references and scripts.
18
+ - The agent maps your request to the right skill (e.g., "design a feature" triggers brainstorming, "test the pipeline" triggers algo-test-planning).
19
+
20
+ ## Example Prompts
21
+
22
+ | What you say | Skill invoked |
23
+ |-------------|---------------|
24
+ | "Let's brainstorm how to add image search" | brainstorming |
25
+ | "Plan the implementation for BGE-M3 migration" | planning |
26
+ | "I want to test the semantic search pipeline for Myer" | algo-test-planning |
27
+ | "Run the tests for algo.search-ml" | e2e-testing |
28
+ | "Check the status of my Kubeflow run" | ml-tooling-dev |
29
+ | "Review the naming in this PR" | naming-conventions-reviewer |