td-ai-tools 1.2.2 → 1.2.3
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/README.md +2 -0
- package/lib/installer.js +27 -17
- package/lib/project-hooks.js +171 -0
- package/package.json +2 -2
- package/skills/README.md +1 -3
- package/skills/shopify-lint/SKILL.md +4 -1
- package/skills/shopify-lint/hooks/claude-stop.sh +49 -0
- package/skills/shopify-lint/hooks/codex-stop.sh +49 -0
- package/skills/shopify-lint/hooks/manifest.json +34 -0
- package/skills/shopify-lint/scripts/__pycache__/shopify_lint.cpython-312.pyc +0 -0
- package/skills/shopify-lint/scripts/setup.sh +2 -0
- package/skills/shopify-lint/tests/__pycache__/test_shopify_lint.cpython-312.pyc +0 -0
- package/skills/car-ticket-generator/SKILL.md +0 -131
- package/skills/car-ticket-generator/agents/openai.yaml +0 -4
- package/skills/everhour-basecamp-estimates/.env.example +0 -2
- package/skills/everhour-basecamp-estimates/SKILL.md +0 -75
- package/skills/everhour-basecamp-estimates/agents/openai.yaml +0 -4
- package/skills/everhour-basecamp-estimates/scripts/update_estimates.py +0 -654
- package/skills/everhour-basecamp-estimates/tests/test_update_estimates.py +0 -286
- package/skills/playwright-cli/PRIMER.md +0 -122
- package/skills/visual-regression/scripts/__pycache__/visual_regression.cpython-312.pyc +0 -0
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: everhour-basecamp-estimates
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: Bulk update Everhour task estimates from a Basecamp todo or todolist URL, then append bracketed hours to the Basecamp todo titles.
|
|
5
|
-
alwaysApply: false
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
Use this skill when the user wants to update Everhour task estimates in bulk from a Basecamp todo or todolist URL.
|
|
9
|
-
|
|
10
|
-
## Files
|
|
11
|
-
|
|
12
|
-
- Local config: `.agents/skills/everhour-basecamp-estimates/.env`
|
|
13
|
-
- Example config: `.agents/skills/everhour-basecamp-estimates/.env.example`
|
|
14
|
-
- Workflow script: `.agents/skills/everhour-basecamp-estimates/scripts/update_estimates.py`
|
|
15
|
-
|
|
16
|
-
## Required inputs
|
|
17
|
-
|
|
18
|
-
- A Basecamp todo or todolist URL
|
|
19
|
-
- Either one estimate in hours to apply to every active task, or a JSON array of per-task estimates in hours
|
|
20
|
-
|
|
21
|
-
## Workflow
|
|
22
|
-
|
|
23
|
-
1. Confirm `.agents/skills/everhour-basecamp-estimates/.env` exists and contains:
|
|
24
|
-
- `EVERHOUR_API_KEY`
|
|
25
|
-
- `EVERHOUR_PROJECT_ID`
|
|
26
|
-
2. Run the bundled script from the repo root:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
python3 .agents/skills/everhour-basecamp-estimates/scripts/update_estimates.py \
|
|
30
|
-
"https://3.basecamp.com/..." \
|
|
31
|
-
2.5
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
3. For todolists that need different estimates per todo, pass a JSON array. The array length must match the number of active todos after completed items are skipped:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
python3 .agents/skills/everhour-basecamp-estimates/scripts/update_estimates.py \
|
|
38
|
-
"https://3.basecamp.com/..." \
|
|
39
|
-
"[1,2.5,4]"
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
4. Use `--dry-run` first if the user wants to review matches before mutating anything:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
python3 .agents/skills/everhour-basecamp-estimates/scripts/update_estimates.py \
|
|
46
|
-
"https://3.basecamp.com/..." \
|
|
47
|
-
"[1,2.5,4]" \
|
|
48
|
-
--dry-run
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Behavior
|
|
52
|
-
|
|
53
|
-
- The script parses the Basecamp URL with the Basecamp CLI.
|
|
54
|
-
- For a todo URL, it loads one todo title.
|
|
55
|
-
- For a todolist URL, it loads every todo title in that list.
|
|
56
|
-
- Completed Basecamp todos are skipped.
|
|
57
|
-
- A scalar estimate is applied to each active todo.
|
|
58
|
-
- A JSON estimate array is applied in active-todo order and must match the active todo count exactly.
|
|
59
|
-
- It matches Basecamp titles against Everhour task names inside the configured project.
|
|
60
|
-
- If multiple Everhour tasks have the same normalized title, it selects the task whose Everhour task id or URL maps to the Basecamp todo id.
|
|
61
|
-
- Matching is exact after normalization:
|
|
62
|
-
- trim whitespace
|
|
63
|
-
- collapse repeated spaces
|
|
64
|
-
- case-insensitive compare
|
|
65
|
-
- strip a trailing estimate suffix like `[2.5h]` before matching
|
|
66
|
-
- It updates Everhour estimates first, converting hours to seconds and sending an overall estimate.
|
|
67
|
-
- Only after all Everhour updates succeed does it rename the Basecamp todos to append the bracketed hours suffix.
|
|
68
|
-
|
|
69
|
-
## Guardrails
|
|
70
|
-
|
|
71
|
-
- If any Basecamp title has no Everhour match, stop and report it.
|
|
72
|
-
- If any Basecamp title matches more than one Everhour task and the Basecamp todo id cannot resolve one task, stop and report the ambiguity.
|
|
73
|
-
- If an estimate array length does not match the active todo count, stop before any updates.
|
|
74
|
-
- If the provided todo URL is already completed, stop without updating anything.
|
|
75
|
-
- Do not update Basecamp titles before Everhour updates complete.
|