@groupby/ai-dev 0.5.7 → 0.5.9
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/agentic-checkout/prompts/AGENTS.md +103 -0
- package/teams/agentic-checkout/prompts/create-plan.md +103 -0
- package/teams/agentic-checkout/prompts/create-pull-request.md +157 -0
- package/teams/agentic-checkout/prompts/fix-pr-comments.md +170 -0
- package/teams/agentic-checkout/prompts/fix-review-findings.md +1 -12
- package/teams/agentic-checkout/prompts/implement-task.md +62 -0
- package/teams/agentic-checkout/prompts/new-workspace.md +12 -0
- package/teams/agentic-checkout/prompts/orchestrate-component-change.md +25 -0
- package/teams/agentic-checkout/prompts/review-change.md +8 -2
- package/teams/agentic-checkout/scripts/check-secrets +51 -0
- package/teams/agentic-checkout/scripts/install-git-hooks +15 -0
- package/teams/agentic-checkout/scripts/local-fast-report +5 -0
- package/teams/agentic-checkout/scripts/local-report +205 -0
- package/teams/agentic-checkout/scripts/local-summarize +47 -0
- package/teams/agentic-checkout/scripts/logs-deps +9 -0
- package/teams/agentic-checkout/scripts/setup-local-fast-model +20 -0
- package/teams/agentic-checkout/scripts/start-deps +15 -0
- package/teams/agentic-checkout/scripts/status-deps +9 -0
- package/teams/agentic-checkout/scripts/stop-deps +9 -0
- package/teams/agentic-checkout/scripts/sync-components +110 -0
- package/teams/agentic-checkout/skills/approval-gated-task-execution/SKILL.md +57 -0
- package/teams/agentic-checkout/skills/component-verification/SKILL.md +34 -0
- package/teams/agentic-checkout/skills/grill-me/SKILL.md +23 -0
- package/teams/agentic-checkout/skills/karpathy-guidelines/SKILL.md +67 -0
- package/teams/agentic-checkout/skills/secret-safety/SKILL.md +41 -0
- package/teams/agentic-checkout/skills/sync-components/SKILL.md +23 -60
- package/teams/agentic-checkout/skills/tdd/SKILL.md +48 -0
- 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
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: karpathy-guidelines
|
|
3
|
+
description: Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Karpathy Guidelines
|
|
8
|
+
|
|
9
|
+
Behavioral guidelines to reduce common LLM coding mistakes, derived from [Andrej Karpathy's observations](https://x.com/karpathy/status/2015883857489522876) on LLM coding pitfalls.
|
|
10
|
+
|
|
11
|
+
**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
|
|
12
|
+
|
|
13
|
+
## 1. Think Before Coding
|
|
14
|
+
|
|
15
|
+
**Don't assume. Don't hide confusion. Surface tradeoffs.**
|
|
16
|
+
|
|
17
|
+
Before implementing:
|
|
18
|
+
- State your assumptions explicitly. If uncertain, ask.
|
|
19
|
+
- If multiple interpretations exist, present them - don't pick silently.
|
|
20
|
+
- If a simpler approach exists, say so. Push back when warranted.
|
|
21
|
+
- If something is unclear, stop. Name what's confusing. Ask.
|
|
22
|
+
|
|
23
|
+
## 2. Simplicity First
|
|
24
|
+
|
|
25
|
+
**Minimum code that solves the problem. Nothing speculative.**
|
|
26
|
+
|
|
27
|
+
- No features beyond what was asked.
|
|
28
|
+
- No abstractions for single-use code.
|
|
29
|
+
- No "flexibility" or "configurability" that wasn't requested.
|
|
30
|
+
- No error handling for impossible scenarios.
|
|
31
|
+
- If you write 200 lines and it could be 50, rewrite it.
|
|
32
|
+
|
|
33
|
+
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
|
|
34
|
+
|
|
35
|
+
## 3. Surgical Changes
|
|
36
|
+
|
|
37
|
+
**Touch only what you must. Clean up only your own mess.**
|
|
38
|
+
|
|
39
|
+
When editing existing code:
|
|
40
|
+
- Don't "improve" adjacent code, comments, or formatting.
|
|
41
|
+
- Don't refactor things that aren't broken.
|
|
42
|
+
- Match existing style, even if you'd do it differently.
|
|
43
|
+
- If you notice unrelated dead code, mention it - don't delete it.
|
|
44
|
+
|
|
45
|
+
When your changes create orphans:
|
|
46
|
+
- Remove imports/variables/functions that YOUR changes made unused.
|
|
47
|
+
- Don't remove pre-existing dead code unless asked.
|
|
48
|
+
|
|
49
|
+
The test: Every changed line should trace directly to the user's request.
|
|
50
|
+
|
|
51
|
+
## 4. Goal-Driven Execution
|
|
52
|
+
|
|
53
|
+
**Define success criteria. Loop until verified.**
|
|
54
|
+
|
|
55
|
+
Transform tasks into verifiable goals:
|
|
56
|
+
- "Add validation" → "Write tests for invalid inputs, then make them pass"
|
|
57
|
+
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
|
|
58
|
+
- "Refactor X" → "Ensure tests pass before and after"
|
|
59
|
+
|
|
60
|
+
For multi-step tasks, state a brief plan:
|
|
61
|
+
```
|
|
62
|
+
1. [Step] → verify: [check]
|
|
63
|
+
2. [Step] → verify: [check]
|
|
64
|
+
3. [Step] → verify: [check]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: secret-safety
|
|
3
|
+
description: Prevent credentials and sensitive tokens from being committed, logged, or pushed. Use before commits, pushes, PRs, and when editing config or examples.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Secret Safety
|
|
8
|
+
|
|
9
|
+
Use this skill before committing, pushing, creating PRs, or editing configuration, examples, logs, credentials, or local
|
|
10
|
+
environment files.
|
|
11
|
+
|
|
12
|
+
## Rules
|
|
13
|
+
|
|
14
|
+
- Never commit real credentials, API keys, private keys, tokens, session cookies, certificates, keystores, or populated `.env` files.
|
|
15
|
+
- Keep secrets in environment variables, local untracked files, Vault, Azure Key Vault, GitHub Actions secrets, or another approved secret store.
|
|
16
|
+
- Only commit placeholder examples such as `.env.example`, `.env.sample`, or documentation values that are clearly non-secret.
|
|
17
|
+
- Do not paste secrets into prompts, PR descriptions, logs, commit messages, plans, or generated documentation.
|
|
18
|
+
- If a secret appears in a tracked file, stop and remove it before committing or pushing.
|
|
19
|
+
- If a real secret was committed or pushed, treat it as compromised: rotate/revoke it and remove it from git history using an approved process.
|
|
20
|
+
|
|
21
|
+
## Checks
|
|
22
|
+
|
|
23
|
+
Run the harness secret scanner before commit or push:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
scripts/check-secrets .
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
When checking a component repository from the harness root, pass the component path:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
scripts/check-secrets components/<component>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Install the harness pre-push hook for the harness checkout:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
scripts/install-git-hooks
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The scanner is a guardrail, not a guarantee. Also inspect diffs manually for sensitive values.
|
|
@@ -1,76 +1,39 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sync-components
|
|
3
|
-
description: Sync
|
|
3
|
+
description: Sync component repositories from components.txt using the deterministic harness script.
|
|
4
4
|
license: MIT
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Sync Components
|
|
8
8
|
|
|
9
|
-
Use
|
|
10
|
-
|
|
11
|
-
## Goal
|
|
12
|
-
|
|
13
|
-
Populate `components/` from the entries in `components.txt` using `git clone`, and leave each synced component on the `main` branch.
|
|
14
|
-
|
|
15
|
-
Keep this workflow lightweight. Do not inspect component source trees, run builds, run tests, scan every repository, or perform broad Git status checks unless the user explicitly asks.
|
|
16
|
-
|
|
17
|
-
Do not create a shell script, temporary script, generated helper, Makefile target, or wrapper command for this workflow. Running generated scripts often triggers extra approval prompts. Use direct shell commands only.
|
|
18
|
-
|
|
19
|
-
## Source Of Truth
|
|
20
|
-
|
|
21
|
-
Read `components.txt` from the framework or workspace checkout.
|
|
22
|
-
|
|
23
|
-
Each non-empty, non-comment line is either:
|
|
24
|
-
|
|
25
|
-
- A full Git remote URL, used as-is.
|
|
26
|
-
- A repository name. If the file uses bare repository names, infer the Git remote from the project instructions or ask the user for the organization/remote prefix before cloning.
|
|
27
|
-
|
|
28
|
-
The local checkout path for each entry is:
|
|
29
|
-
|
|
30
|
-
```text
|
|
31
|
-
components/<repo-name>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Derive `<repo-name>` from the entry basename and remove a trailing `.git`.
|
|
9
|
+
Use when the user asks to sync, clone, refresh, or update component repositories.
|
|
35
10
|
|
|
36
11
|
## Workflow
|
|
37
12
|
|
|
38
|
-
1.
|
|
39
|
-
2.
|
|
40
|
-
3. Read `components.txt`.
|
|
41
|
-
4. For each component entry:
|
|
42
|
-
- If `components/<repo-name>` does not exist, run:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
git clone <remote> components/<repo-name>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
- If the directory already exists, keep it and report `exists`.
|
|
49
|
-
- After clone or exists, run:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
git -C components/<repo-name> checkout main
|
|
53
|
-
```
|
|
13
|
+
1. Ask for the user's command approval through the normal Copilot CLI approval flow; do not enable `/allow-all`.
|
|
14
|
+
2. Run exactly one of these commands after approval:
|
|
54
15
|
|
|
55
|
-
|
|
16
|
+
```bash
|
|
17
|
+
scripts/sync-components
|
|
18
|
+
```
|
|
56
19
|
|
|
57
|
-
|
|
58
|
-
git -C components/<repo-name> fetch origin main
|
|
59
|
-
git -C components/<repo-name> checkout main
|
|
60
|
-
```
|
|
20
|
+
or, when a local fast model summary is useful:
|
|
61
21
|
|
|
62
|
-
|
|
22
|
+
```bash
|
|
23
|
+
scripts/local-fast-report sync
|
|
24
|
+
```
|
|
63
25
|
|
|
64
|
-
|
|
26
|
+
3. Label `scripts/local-fast-report sync` runs as using the local fast model in any shell command title/description.
|
|
27
|
+
4. Do not run both commands; `scripts/local-fast-report sync` already runs `scripts/sync-components`.
|
|
28
|
+
5. Report cloned, existing, checked-out-main, rebased-main, skipped-dirty, and failed components.
|
|
29
|
+
6. If any component is `skipped-dirty`, stop and ask before destructive cleanup or retry.
|
|
65
30
|
|
|
66
|
-
##
|
|
31
|
+
## Rules
|
|
67
32
|
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
- Do not
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
- Do not
|
|
74
|
-
|
|
75
|
-
- Do not run dependency installation, tests, formatters, linters, or builds.
|
|
76
|
-
- Keep all cloned repositories directly under `components/`.
|
|
33
|
+
- Do not reimplement sync with model-driven `git clone`/`fetch`/`checkout`/`rebase` sequences unless the script fails and
|
|
34
|
+
the user approves manual recovery.
|
|
35
|
+
- Do not bypass the user's normal command approval prompts.
|
|
36
|
+
- Never delete, reset, clean, force-checkout, or discard existing component work without explicit approval for that
|
|
37
|
+
component.
|
|
38
|
+
- Do not inspect component source, install dependencies, run tests/builds/formatters/linters, or read component-local
|
|
39
|
+
instructions during sync.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tdd
|
|
3
|
+
description: Use a test-driven workflow for implementation tasks. Write or update a failing test first, implement the smallest change to pass, then verify and refactor.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# TDD
|
|
8
|
+
|
|
9
|
+
Use this skill when the user asks for TDD, test-first development, bug fixes with regression tests, or implementation
|
|
10
|
+
where behavior should be proven by tests.
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
1. Identify the smallest observable behavior change.
|
|
15
|
+
2. Find the closest existing test file, fixture style, and assertion pattern.
|
|
16
|
+
3. Write or update a focused test before changing production code.
|
|
17
|
+
4. Run the narrowest relevant test command and confirm the test fails for the expected reason.
|
|
18
|
+
5. Implement the smallest production change needed to pass.
|
|
19
|
+
6. Re-run the focused test.
|
|
20
|
+
7. Run the nearest broader relevant test set when the change touches shared behavior, contracts, event payloads, or
|
|
21
|
+
public APIs.
|
|
22
|
+
8. Refactor only after tests pass, then re-run the focused test.
|
|
23
|
+
|
|
24
|
+
## Component Commands
|
|
25
|
+
|
|
26
|
+
Prefer component-local instructions when present. Otherwise use the verification matrix in `AGENTS.md` as the canonical source for install/test/build/lint commands.
|
|
27
|
+
|
|
28
|
+
For focused tests, use the component's existing test runner syntax for a single file, module, class, or test case.
|
|
29
|
+
|
|
30
|
+
## Constraints
|
|
31
|
+
|
|
32
|
+
- Do not make broad refactors before the red/green loop is complete.
|
|
33
|
+
- Do not add new test frameworks or dependencies unless the component already uses them and the change requires it.
|
|
34
|
+
- Do not add large test scaffolding when an existing test style can cover the behavior.
|
|
35
|
+
- Do not skip the failing-test step unless tests cannot run locally or the change is documentation/configuration only.
|
|
36
|
+
- If the failing-test step is skipped, explain why before editing production code.
|
|
37
|
+
- Keep tests focused on observable behavior, not private implementation details.
|
|
38
|
+
- For bug fixes, the first test should fail on the original bug.
|
|
39
|
+
- For new behavior, the first test should encode the expected contract or user-visible behavior.
|
|
40
|
+
|
|
41
|
+
## Reporting
|
|
42
|
+
|
|
43
|
+
In the final response, include:
|
|
44
|
+
|
|
45
|
+
- The test added or changed.
|
|
46
|
+
- The initial failing command and failure summary, if run.
|
|
47
|
+
- The passing verification command.
|
|
48
|
+
- Any broader tests that were skipped and why.
|
|
@@ -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.
|