@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.
- package/package.json +1 -1
- package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/full.md +31 -0
- package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/light.md +7 -0
- package/teams/fhr-ai-team/github/copilot-instructions.md +24 -0
- package/teams/fhr-ai-team/github/instructions/python.instructions.md +23 -0
- package/teams/fhr-ai-team/github/pull_request_template.md +21 -0
- package/teams/fhr-ai-team/prompts/brainstorm.md +7 -0
- package/teams/fhr-ai-team/prompts/plan-algo-tests.md +7 -0
- package/teams/fhr-ai-team/prompts/plan.md +7 -0
- package/teams/fhr-ai-team/prompts/pr-description.md +7 -0
- package/teams/fhr-ai-team/prompts/test.md +7 -0
- package/teams/fhr-ai-team/resources/AGENTS.md +55 -0
- package/teams/fhr-ai-team/resources/CLAUDE.md +52 -0
- package/teams/fhr-ai-team/resources/README.md +51 -0
- package/teams/fhr-ai-team/resources/claude-code-setup.md +60 -0
- package/teams/fhr-ai-team/resources/copilot-setup.md +64 -0
- package/teams/fhr-ai-team/resources/onboarding.md +179 -0
- package/teams/fhr-ai-team/resources/opencode-install.md +29 -0
- package/teams/fhr-ai-team/resources/opencode-setup.md +43 -0
- package/teams/fhr-ai-team/skills/algo-test-planning/SKILL.md +192 -0
- package/teams/fhr-ai-team/skills/algo-test-planning/references/pipeline-registry.md +280 -0
- package/teams/fhr-ai-team/skills/brainstorming/SKILL.md +111 -0
- package/teams/fhr-ai-team/skills/e2e-testing/SKILL.md +163 -0
- package/teams/fhr-ai-team/skills/grill-me/SKILL.md +10 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/SKILL.md +313 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/kubectl-debug.md +165 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/mongodb-config.md +218 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-configs.md +190 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-steps.md +182 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_logs.py +203 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_query.py +233 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_wait.py +195 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mlflow_query.py +252 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mongo_predictor.py +352 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/SKILL.md +230 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/dataset-naming.md +190 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/domain-vocabulary.md +447 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/repo-dependency-graph.md +264 -0
- package/teams/fhr-ai-team/skills/planning/SKILL.md +138 -0
- package/teams/fhr-ai-team/skills/pr-description/SKILL.md +94 -0
package/package.json
CHANGED
|
@@ -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,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: 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,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 |
|