claude-mcp-workflow 0.1.7 → 0.1.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/.claude-plugin/plugin.json +4 -2
- package/README.md +39 -2
- package/build/engine.d.ts +21 -1
- package/build/engine.d.ts.map +1 -1
- package/build/engine.js +59 -6
- package/build/engine.js.map +1 -1
- package/build/storage.d.ts +20 -0
- package/build/storage.d.ts.map +1 -1
- package/build/storage.js +41 -0
- package/build/storage.js.map +1 -1
- package/build/types.d.ts +21 -20
- package/build/types.d.ts.map +1 -1
- package/build/types.js +2 -1
- package/build/types.js.map +1 -1
- package/hooks/hooks.json +4 -2
- package/hooks/workflow-cleanup.sh +58 -20
- package/hooks/workflow-start.sh +60 -32
- package/package.json +1 -1
- package/templates/bug-fix.yaml +98 -16
- package/templates/code-review.yaml +30 -12
- package/templates/coding.yaml +49 -4
- package/templates/debugging.yaml +39 -14
- package/templates/explore.yaml +48 -14
- package/templates/file-code.yaml +13 -4
- package/templates/file-review.yaml +25 -6
- package/templates/github-init.yaml +24 -8
- package/templates/investigate.yaml +13 -4
- package/templates/master.yaml +16 -13
- package/templates/new-feature.yaml +24 -26
- package/templates/planning.yaml +38 -7
- package/templates/reflection.yaml +11 -4
- package/templates/review-push.yaml +26 -7
- package/templates/skills/architecture/SKILL.md +131 -1
- package/templates/skills/aws-lambda/SKILL.md +9 -9
- package/templates/skills/browser-verify/SKILL.md +58 -0
- package/templates/skills/build-cmake/SKILL.md +24 -8
- package/templates/skills/ci-github-actions/SKILL.md +34 -18
- package/templates/skills/claude-code-config/SKILL.md +41 -19
- package/templates/skills/cleanup/SKILL.md +57 -0
- package/templates/skills/coding-skill-selector/SKILL.md +2 -1
- package/templates/skills/debug-bridge-scaffold/SKILL.md +98 -0
- package/templates/skills/domain-gamedev/SKILL.md +56 -6
- package/templates/skills/domain-pixi/SKILL.md +256 -7
- package/templates/skills/domain-reid/SKILL.md +39 -5
- package/templates/skills/domain-yolo/SKILL.md +18 -7
- package/templates/skills/ide-zed/SKILL.md +23 -0
- package/templates/skills/lang-as3/SKILL.md +7 -5
- package/templates/skills/lang-haxe/SKILL.md +538 -19
- package/templates/skills/lang-python/SKILL.md +6 -2
- package/templates/skills/math/SKILL.md +64 -2
- package/templates/skills/mcp-setup/SKILL.md +14 -2
- package/templates/skills/preferences/SKILL.md +10 -10
- package/templates/skills/skill-manager/SKILL.md +264 -0
- package/templates/skills/target-openfl-native/SKILL.md +52 -17
- package/templates/skills/target-openfl-native/references/build-and-versions.md +7 -4
- package/templates/skills/task-delegation/SKILL.md +76 -4
- package/templates/skills/web-reading/SKILL.md +33 -25
- package/templates/skills/workflow-authoring/SKILL.md +47 -12
- package/templates/subagent.yaml +29 -8
- package/templates/testing.yaml +64 -10
- package/templates/web-research.yaml +23 -13
|
@@ -11,7 +11,7 @@ BNNeck = BatchNorm before classifier. The trick:
|
|
|
11
11
|
- **Training**: Euclidean distance in triplet loss (features BEFORE BNNeck)
|
|
12
12
|
- **Inference**: Cosine similarity (features AFTER BNNeck)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
This direction is commonly reversed — getting it wrong silently degrades results.
|
|
15
15
|
|
|
16
16
|
## Loss Recipe
|
|
17
17
|
|
|
@@ -22,19 +22,21 @@ The center loss weight (lambda=0.0005) is critical — too high destabilizes tra
|
|
|
22
22
|
## CLIP-ReID
|
|
23
23
|
|
|
24
24
|
Two-stage approach (NOT generic CLIP fine-tuning):
|
|
25
|
-
1. Learn **text tokens per identity**
|
|
26
|
-
2. Fine-tune **visual encoder** with learned text supervision
|
|
25
|
+
1. Learn **text tokens per identity** — BOTH encoders frozen; only the id-specific text tokens train
|
|
26
|
+
2. Fine-tune **visual encoder** with learned text supervision (text side stays fixed)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
MSMT17 **~86.7% mAP** is the SIE+OLP **+ re-ranking** configuration — plain ViT-B CLIP-ReID lands in the low-to-mid 70s mAP. Don't quote 86.7 as the vanilla-model number.
|
|
29
29
|
|
|
30
30
|
## SOTA Performance Reference
|
|
31
31
|
|
|
32
32
|
| Method | Market-1501 R1/mAP | MSMT17 R1/mAP |
|
|
33
33
|
|--------|---------------------|----------------|
|
|
34
|
-
| CLIP-ReID (ViT-B) | 96.4 / 93.3 | 91.1 / 86.7 |
|
|
34
|
+
| CLIP-ReID (ViT-B, SIE+OLP, +re-rank) | 96.4 / 93.3 | 91.1 / 86.7 |
|
|
35
35
|
| TransReID (ViT-B) | 95.2 / 89.5 | 86.2 / 69.4 |
|
|
36
36
|
| BoT (ResNet-50) | 94.5 / 85.9 | 77.5 / 47.5 |
|
|
37
37
|
|
|
38
|
+
The CLIP-ReID row already includes k-reciprocal re-ranking — do NOT add the re-ranking boost from the section below on top of these numbers (double-count).
|
|
39
|
+
|
|
38
40
|
## Key Datasets
|
|
39
41
|
|
|
40
42
|
| Dataset | IDs | Images | Notes |
|
|
@@ -49,3 +51,35 @@ Note: DukeMTMC-reID was **retracted** due to privacy concerns — avoid citing i
|
|
|
49
51
|
## k-Reciprocal Re-Ranking
|
|
50
52
|
|
|
51
53
|
Parameters: k1=20, k2=6, lambda=0.3. Boosts mAP by 5-10%. Use for offline, skip for real-time.
|
|
54
|
+
|
|
55
|
+
## torchreid install — from git, NOT PyPI
|
|
56
|
+
|
|
57
|
+
`pip install torchreid` fetches a **stale 0.2.5** (2019) with a different API — `import torchreid`
|
|
58
|
+
often outright fails on a modern torch/numpy. The real KaiyangZhou/deep-person-reid is **1.4.x, git-only**. Its `setup.py` imports numpy/Cython
|
|
59
|
+
at build time, so a plain `pip install git+...` **fails under PEP-517 build isolation**
|
|
60
|
+
(`error: getting requirements to build wheel` → `ModuleNotFoundError: No module named 'torchreid'`
|
|
61
|
+
/ numpy). Two working installs (both need numpy+Cython in the env):
|
|
62
|
+
`pip install --no-build-isolation git+https://github.com/KaiyangZhou/deep-person-reid.git`, or the
|
|
63
|
+
official `git clone … && cd deep-person-reid && pip install -r requirements.txt && python setup.py develop`
|
|
64
|
+
(its requirements.txt does NOT pin torch, so a preinstalled CUDA torch survives).
|
|
65
|
+
So a "package is installed but import raises" state ≠ missing — detect it with
|
|
66
|
+
`importlib.util.find_spec(m) is not None` + a real import attempt, and surface the actual exception
|
|
67
|
+
(don't report "missing" and re-suggest the PyPI name that caused it).
|
|
68
|
+
|
|
69
|
+
## torchreid (deep-person-reid) — query/gallery need DIFFERENT camids
|
|
70
|
+
|
|
71
|
+
`torchreid.metrics.evaluate_rank` (run by every engine at the final epoch, and whenever
|
|
72
|
+
`eval_freq` fires) drops, **for each query, every gallery sample sharing that query's
|
|
73
|
+
`(pid, camid)`**, then asserts `num_valid_q > 0` → `AssertionError: all query identities do not
|
|
74
|
+
appear in gallery`. A query is "valid" only if the same pid appears in gallery under a *different*
|
|
75
|
+
camid.
|
|
76
|
+
|
|
77
|
+
Trap when registering a custom `ImageDataset` for fine-tuning: if you build a throwaway
|
|
78
|
+
query/gallery by splitting one identity's crops but leave them under one camid, every query is
|
|
79
|
+
invalid → training crashes at the FINAL-EPOCH eval (not at data load, so it looks like a late,
|
|
80
|
+
unrelated failure). Fix: assign query camid=0, gallery camid=1 (or any distinct pair) with the
|
|
81
|
+
same pids on both sides.
|
|
82
|
+
|
|
83
|
+
Note the value gap vs cosine ReID: the evaluator ranks by that removal rule (Market1501 protocol);
|
|
84
|
+
it is NOT a plain cosine-margin metric, so its CMC/mAP on a tiny throwaway split is meaningless —
|
|
85
|
+
do the real margin eval separately.
|
|
@@ -5,19 +5,30 @@ description: YOLO object detection model selection
|
|
|
5
5
|
|
|
6
6
|
# YOLO — Verified Gotchas
|
|
7
7
|
|
|
8
|
+
## YOLO26 — Current Default
|
|
9
|
+
|
|
10
|
+
YOLO26 is NMS-free end-to-end (no NMS post-processing step), drops DFL, and delivers ~43% faster CPU inference. Same Ultralytics API — change the `.pt` file. Prefer it for new projects, especially CPU/edge deployment.
|
|
11
|
+
|
|
8
12
|
## YOLO11 vs YOLOv8
|
|
9
13
|
|
|
10
|
-
YOLO11:
|
|
14
|
+
YOLO11: higher mAP than v8m with 22% fewer params. Refined C3k2 blocks. **Drop-in replacement** — change `.pt` file, code identical. Same Ultralytics API.
|
|
15
|
+
|
|
16
|
+
## YOLOv10 — Legacy NMS-Free
|
|
17
|
+
|
|
18
|
+
YOLOv10 pioneered NMS-free inference, but its headline "1.8x faster" figure is vs an RT-DETR-R18 baseline, not vs other YOLOs. Superseded by YOLO26 for the NMS-free niche.
|
|
11
19
|
|
|
12
|
-
##
|
|
20
|
+
## Zero-Shot: YOLOE Supersedes YOLO-World
|
|
13
21
|
|
|
14
|
-
|
|
22
|
+
YOLOE covers text prompts, visual prompts, AND a prompt-free mode at real-time speed. Reach for YOLO-World only if a dependency pins it.
|
|
15
23
|
|
|
16
24
|
## Model Selection Quick Reference
|
|
17
25
|
|
|
18
26
|
| Model | When | Key Feature |
|
|
19
27
|
|-------|------|-------------|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
28
|
+
| YOLO26 | Default choice | NMS-free end-to-end, ~43% faster CPU inference |
|
|
29
|
+
| YOLO11 | Proven/stable production | Higher mAP than v8 with 22% fewer params |
|
|
30
|
+
| YOLO12 | Attention-based research | Attention-centric (area attention) |
|
|
31
|
+
| YOLOv8 | Mature, widest ecosystem | Anchor-free, unified API |
|
|
32
|
+
| YOLOv10 | Legacy | First NMS-free (1.8x claim is vs RT-DETR-R18) |
|
|
33
|
+
| YOLOE | Zero-shot / open-vocabulary | Text/visual prompts + prompt-free mode |
|
|
34
|
+
| YOLO-World | Superseded by YOLOE | Text prompt detection |
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ide-zed
|
|
3
|
+
description: Zed IDE integration rules
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Zed IDE Integration
|
|
7
|
+
|
|
8
|
+
1. **`Read` can't read binary files** (PNG, etc.) — Zed bug #48133 (open, P2). Use display tree for state, not screenshots.
|
|
9
|
+
2. **Stale Playwright processes accumulate** → `pkill -f playwright 2>/dev/null` if browser behaves unexpectedly.
|
|
10
|
+
3. **clangd relative `-I` paths in `.clangd` resolve from the source file's directory, not the project root** (when no `compile_commands.json` exists). Files in subdirectories (e.g. `project/common/foo.cpp`) will fail to find includes specified as `-I./some-dir` in `.clangd` `CompileFlags.Add`.
|
|
11
|
+
|
|
12
|
+
WRONG — `.clangd`:
|
|
13
|
+
```yaml
|
|
14
|
+
CompileFlags:
|
|
15
|
+
Add: [-I./native, -I./project/common]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
RIGHT — `compile_flags.txt` in the project root:
|
|
19
|
+
```
|
|
20
|
+
-I./native
|
|
21
|
+
-I./project/common
|
|
22
|
+
```
|
|
23
|
+
clangd uses the `compile_flags.txt` parent directory as CWD, so paths resolve correctly from the root. Keep `.clangd` for non-path flags (warnings, diagnostics, `If`/`PathMatch` overrides) only.
|
|
@@ -3,19 +3,21 @@ name: lang-as3
|
|
|
3
3
|
description: AS3 / AIR 51 language gotchas — optional chaining bugs, immutability limits
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# AS3 / AIR 51 — Verified Gotchas
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Optional chaining `?.`
|
|
9
9
|
|
|
10
10
|
- **Property access**: `obj?.prop` — works, returns `undefined` if null
|
|
11
11
|
- **Method calls**: `obj?.method()` — **BROKEN**. Calls `null()` instead of short-circuiting. Use `if (obj != null) obj.method()`
|
|
12
|
-
-
|
|
12
|
+
- When reverting a broken `?.` call to an explicit null-check, leave a marker comment at the site (e.g. `// ?. AIR bugfix — don't restore optional chaining`) so later edits don't reintroduce the bug
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
## Immutability
|
|
15
15
|
|
|
16
16
|
- `final` only works on **methods and classes**, NOT on fields — `final var` is a compile error
|
|
17
|
+
- Use `const` for never-reassigned fields instead: `private const _items:Array = [];` — assign at the declaration, or once in the constructor
|
|
18
|
+
- `const` is shallow — the binding is fixed, the object's contents stay mutable
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
## `as` operator with primitive types
|
|
19
21
|
|
|
20
22
|
- `context.call(...) as int` works **only** if the native extension returns `FRENewObjectFromInt32` (value arrives as a boxed `int`). If the C++ side returns `FRENewObjectFromDouble`, `as int` silently returns `null`, which coerces to `0`.
|
|
21
23
|
- Prefer explicit cast: `int(context.call(...))` — works regardless of whether the native side returns `int`, `uint`, `Number`, or `double`.
|