@datatamer.ai/agentdev 1.0.6 → 1.0.7
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/dist/agentdev.js +10 -10
- package/package.json +7 -6
- package/skills/agentdev-linkedin.md +425 -0
- package/skills/agentdev-twitter.md +430 -0
- package/skills/api-integration-guide.md +1382 -0
- package/skills/auto-ticket-workflow.md +118 -33
|
@@ -47,6 +47,27 @@ Instead, all OpenSpec operations are INLINED in this skill:
|
|
|
47
47
|
- Print errors immediately if they occur
|
|
48
48
|
- NEVER run silently - the user needs to see what's happening
|
|
49
49
|
|
|
50
|
+
## CRITICAL: Post Intermediate Progress Comments to GitHub
|
|
51
|
+
|
|
52
|
+
**In addition to printing progress, post intermediate step updates as GitHub issue comments.**
|
|
53
|
+
|
|
54
|
+
The user wants real-time visibility into what the workflow is doing. Post short progress comments at key intermediate steps — not just at the end of each phase.
|
|
55
|
+
|
|
56
|
+
**Use this helper pattern to post progress comments:**
|
|
57
|
+
```bash
|
|
58
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 <step description>"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**When to post intermediate comments:**
|
|
62
|
+
- Phase 2: When starting OpenSpec creation, when each artifact is created
|
|
63
|
+
- Phase 3: When starting implementation, when each task starts, when each task completes, when committing
|
|
64
|
+
- Phase 4: When starting local tests, when tests pass/fail
|
|
65
|
+
- Phase 5: When pushing to git, when merging to production, when waiting for CI, when deployment completes
|
|
66
|
+
- Phase 6: When starting production tests, when tests pass/fail
|
|
67
|
+
- Phase 7: Before moving to Done, refresh comments to check for new instructions
|
|
68
|
+
|
|
69
|
+
**Keep intermediate comments SHORT** (1-2 lines). The phase summary comments at the end of each phase remain as-is for detailed summaries.
|
|
70
|
+
|
|
50
71
|
## Check for New Comments Between Phases
|
|
51
72
|
|
|
52
73
|
**Between every phase transition**, check if new comments have been posted on the ticket:
|
|
@@ -231,7 +252,12 @@ openspec status --change "<change-name>" --json
|
|
|
231
252
|
```
|
|
232
253
|
Parse the JSON to get `applyRequires` (artifacts needed before implementation).
|
|
233
254
|
|
|
234
|
-
5. **
|
|
255
|
+
5. **Post progress comment:**
|
|
256
|
+
```bash
|
|
257
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 OpenSpec change \`<change-name>\` created. Building artifacts..."
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
6. **Create artifacts in sequence:**
|
|
235
261
|
|
|
236
262
|
For each artifact in dependency order:
|
|
237
263
|
```bash
|
|
@@ -241,11 +267,12 @@ openspec instructions <artifact-id> --change "<change-name>" --json
|
|
|
241
267
|
- Read the `template` from instructions
|
|
242
268
|
- Read any dependency files for context
|
|
243
269
|
- Create the artifact file following the template structure
|
|
270
|
+
- **Post progress comment:** `gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 Created artifact: \`<artifact-id>\`"`
|
|
244
271
|
- Print "✓ Created <artifact-id>"
|
|
245
272
|
|
|
246
273
|
Continue until all `applyRequires` artifacts are complete.
|
|
247
274
|
|
|
248
|
-
|
|
275
|
+
7. **Comment on GitHub issue with OpenSpec status:**
|
|
249
276
|
```bash
|
|
250
277
|
gh issue comment <issue-number> -R data-tamer/<repo> --body "## 🔄 Phase 2: OpenSpec Created
|
|
251
278
|
|
|
@@ -290,16 +317,22 @@ This returns context files and task list.
|
|
|
290
317
|
|
|
291
318
|
4. **Read context files** listed in `contextFiles` (proposal, specs, design, tasks).
|
|
292
319
|
|
|
293
|
-
5. **
|
|
320
|
+
5. **Post progress comment that implementation is starting:**
|
|
321
|
+
```bash
|
|
322
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 Starting implementation..."
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
6. **Implement tasks one by one:**
|
|
294
326
|
|
|
295
327
|
For each pending task in tasks.md:
|
|
328
|
+
- **Post progress comment:** `gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 Working on: <task description>"`
|
|
296
329
|
- Print "Working on task: <task description>"
|
|
297
330
|
- Make the code changes required
|
|
298
331
|
- Keep changes minimal and focused
|
|
299
332
|
- Mark task complete: `- [ ]` → `- [x]`
|
|
300
333
|
- Print "✓ Task complete"
|
|
301
334
|
|
|
302
|
-
|
|
335
|
+
7. **Commit changes:**
|
|
303
336
|
```bash
|
|
304
337
|
git add <changed-files>
|
|
305
338
|
git commit -m "fix/feat: <description>
|
|
@@ -309,7 +342,7 @@ Fixes #<issue-number>
|
|
|
309
342
|
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>"
|
|
310
343
|
```
|
|
311
344
|
|
|
312
|
-
|
|
345
|
+
8. **Comment on GitHub issue with implementation details:**
|
|
313
346
|
```bash
|
|
314
347
|
gh issue comment <issue-number> -R data-tamer/<repo> --body "## 🔄 Phase 3: Implementation Complete
|
|
315
348
|
|
|
@@ -328,12 +361,17 @@ Starting local testing...
|
|
|
328
361
|
|
|
329
362
|
### Phase 4: Local Testing
|
|
330
363
|
|
|
331
|
-
1.
|
|
364
|
+
1. **Post progress comment:**
|
|
365
|
+
```bash
|
|
366
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 Starting local testing..."
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
2. Determine which services need restart:
|
|
332
370
|
- `data-tamer-dashboard/` → Frontend (hot reload, NO restart needed)
|
|
333
371
|
- `tamer_service/` → `kubectl rollout restart deployment/tamer-datasource-consumer-dev deployment/tamer-message-consumer-dev -n datatamer`
|
|
334
372
|
- `consumer_service/` → `kubectl rollout restart deployment/consumer-service-dev -n datatamer`
|
|
335
373
|
|
|
336
|
-
|
|
374
|
+
3. **Run Playwright headless tests:**
|
|
337
375
|
```bash
|
|
338
376
|
cd /home/riccardo/Documents/apps/datatamer/app/auto-ticket-logs
|
|
339
377
|
node playwright-test.js login # Test login works
|
|
@@ -341,9 +379,9 @@ node playwright-test.js slides # Test slides feature
|
|
|
341
379
|
```
|
|
342
380
|
Screenshots are saved to `/tmp/auto-ticket-screenshots/`
|
|
343
381
|
|
|
344
|
-
|
|
382
|
+
4. If tests fail: Fix issues and re-test (do NOT move to production)
|
|
345
383
|
|
|
346
|
-
|
|
384
|
+
5. If tests pass: **Comment on GitHub issue:**
|
|
347
385
|
```bash
|
|
348
386
|
gh issue comment <issue-number> -R data-tamer/<repo> --body "## 🔄 Phase 4: Local Testing Passed
|
|
349
387
|
|
|
@@ -359,7 +397,12 @@ All local tests passed. Starting production deployment...
|
|
|
359
397
|
|
|
360
398
|
### Phase 5: Production Deployment
|
|
361
399
|
|
|
362
|
-
1. **
|
|
400
|
+
1. **Post progress comment:**
|
|
401
|
+
```bash
|
|
402
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 Starting production deployment..."
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
2. **Deploy using git workflow:**
|
|
363
406
|
```bash
|
|
364
407
|
git push origin master
|
|
365
408
|
git checkout production
|
|
@@ -368,17 +411,22 @@ git push origin production
|
|
|
368
411
|
git checkout master
|
|
369
412
|
```
|
|
370
413
|
|
|
371
|
-
|
|
414
|
+
3. **Post progress comment:**
|
|
415
|
+
```bash
|
|
416
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 Code pushed to production branch. Waiting for CI..."
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
4. **Wait for GitHub Actions:**
|
|
372
420
|
```bash
|
|
373
421
|
gh run watch -R data-tamer/<repo>
|
|
374
422
|
```
|
|
375
423
|
|
|
376
|
-
|
|
424
|
+
5. **Verify production pods:**
|
|
377
425
|
```bash
|
|
378
426
|
ssh root@153.92.127.95 'export KUBECONFIG=/etc/rancher/k3s/k3s.yaml && kubectl get pods -n datatamer | grep <service>'
|
|
379
427
|
```
|
|
380
428
|
|
|
381
|
-
|
|
429
|
+
6. **Comment on GitHub issue with deployment status:**
|
|
382
430
|
```bash
|
|
383
431
|
gh issue comment <issue-number> -R data-tamer/<repo> --body "## 🔄 Phase 5: Production Deployed
|
|
384
432
|
|
|
@@ -406,25 +454,30 @@ gh api graphql -f query='query { node(id: "<item-id>") { ... on ProjectV2Item {
|
|
|
406
454
|
```
|
|
407
455
|
Print "✓ Ticket #<number> moved to test (verified)"
|
|
408
456
|
|
|
409
|
-
2. **
|
|
457
|
+
2. **Post progress comment:**
|
|
458
|
+
```bash
|
|
459
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "🔄 Running production tests..."
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
3. **Run Playwright tests on production:**
|
|
410
463
|
```bash
|
|
411
464
|
cd /home/riccardo/Documents/apps/datatamer/app/auto-ticket-logs
|
|
412
465
|
node playwright-test.js login --production
|
|
413
466
|
node playwright-test.js slides --production
|
|
414
467
|
```
|
|
415
468
|
|
|
416
|
-
|
|
469
|
+
4. **Take final screenshot of the feature working:**
|
|
417
470
|
- Use browser automation (Claude in Chrome MCP) to navigate to the relevant page on production
|
|
418
471
|
- Take a screenshot showing the implemented feature
|
|
419
472
|
- Save to `/tmp/auto-ticket-screenshots/final-<issue-number>.png`
|
|
420
473
|
|
|
421
|
-
|
|
474
|
+
5. **If production tests FAIL:**
|
|
422
475
|
- Comment on issue with failure details
|
|
423
476
|
- Rollback if critical
|
|
424
477
|
- Move ticket back to "Todo" (with verification)
|
|
425
478
|
- Stop workflow
|
|
426
479
|
|
|
427
|
-
|
|
480
|
+
6. **If production tests PASS:**
|
|
428
481
|
- **Comment on GitHub issue:**
|
|
429
482
|
```bash
|
|
430
483
|
gh issue comment <issue-number> -R data-tamer/<repo> --body "## 🔄 Phase 6: Production Testing Passed
|
|
@@ -440,7 +493,13 @@ All production tests passed. Completing ticket...
|
|
|
440
493
|
|
|
441
494
|
### Phase 7: Completion
|
|
442
495
|
|
|
443
|
-
1. **
|
|
496
|
+
1. **CRITICAL: Refresh comments before completing.** Read ALL comments one final time to check for new instructions:
|
|
497
|
+
```bash
|
|
498
|
+
agentdev gh api rest 'repos/data-tamer/<repo>/issues/<issue-number>/comments' | node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{JSON.parse(d).forEach(c=>console.log('---',c.user.login,c.created_at,'---\n'+c.body+'\n'))})"
|
|
499
|
+
```
|
|
500
|
+
If any new non-bot comment contains instructions to stop, cancel, or change something — DO NOT move to Done. Instead, address the new instructions first.
|
|
501
|
+
|
|
502
|
+
2. **Move ticket to "Done" and VERIFY:**
|
|
444
503
|
```bash
|
|
445
504
|
# Move to Done
|
|
446
505
|
gh project item-edit --id <item-id> --project-id PVT_kwDOCJIWbs4AnuSZ \
|
|
@@ -452,26 +511,48 @@ gh api graphql -f query='query { node(id: "<item-id>") { ... on ProjectV2Item {
|
|
|
452
511
|
```
|
|
453
512
|
Print "✓ Ticket #<number> moved to Done (verified)"
|
|
454
513
|
|
|
455
|
-
|
|
514
|
+
3. **Archive OpenSpec change:**
|
|
456
515
|
```bash
|
|
457
516
|
openspec archive "<change-name>"
|
|
458
517
|
```
|
|
459
518
|
|
|
460
|
-
|
|
519
|
+
4. **Upload final screenshot to GitHub:**
|
|
461
520
|
- Check if screenshot exists at `/tmp/auto-ticket-screenshots/final-<issue-number>.png`
|
|
462
|
-
-
|
|
521
|
+
- Upload to ImgBB via the agentdev server and include in comment:
|
|
463
522
|
```bash
|
|
464
|
-
# Upload screenshot
|
|
523
|
+
# Upload screenshot and get URL
|
|
465
524
|
SCREENSHOT="/tmp/auto-ticket-screenshots/final-<issue-number>.png"
|
|
466
525
|
if [ -f "$SCREENSHOT" ]; then
|
|
467
|
-
#
|
|
468
|
-
|
|
469
|
-
|
|
526
|
+
# Convert image to base64
|
|
527
|
+
BASE64_IMG=$(base64 -w 0 "$SCREENSHOT")
|
|
528
|
+
|
|
529
|
+
# Upload via agentdev server API (works for both local and production)
|
|
530
|
+
AGENTDEV_URL="${AGENTDEV_URL:-http://localhost:3847}"
|
|
531
|
+
IMAGE_URL=$(curl -s -X POST "$AGENTDEV_URL/api/upload-image" \
|
|
532
|
+
-H "Content-Type: application/json" \
|
|
533
|
+
-d "{\"base64\":\"$BASE64_IMG\",\"filename\":\"ticket-$issue-number-final.png\"}" \
|
|
534
|
+
| jq -r '.url')
|
|
535
|
+
|
|
536
|
+
if [ ! -z "$IMAGE_URL" ] && [ "$IMAGE_URL" != "null" ]; then
|
|
537
|
+
# Post comment with embedded screenshot
|
|
538
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "## Ticket Complete ✅
|
|
470
539
|
|
|
471
540
|
### Final Result Screenshot
|
|
472
|
-

|
|
473
542
|
|
|
474
|
-
|
|
543
|
+
### Summary
|
|
544
|
+
All phases passed:
|
|
545
|
+
- ✓ OpenSpec created
|
|
546
|
+
- ✓ Implementation complete
|
|
547
|
+
- ✓ Local tests passed
|
|
548
|
+
- ✓ Production deployed
|
|
549
|
+
- ✓ Production tests passed
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
*Automated by Claude Code Auto-Ticket Workflow*"
|
|
553
|
+
else
|
|
554
|
+
echo "⚠️ Screenshot upload failed, posting comment without image"
|
|
555
|
+
gh issue comment <issue-number> -R data-tamer/<repo> --body "## Ticket Complete ✅
|
|
475
556
|
|
|
476
557
|
### Summary
|
|
477
558
|
All phases passed:
|
|
@@ -481,17 +562,21 @@ All phases passed:
|
|
|
481
562
|
- ✓ Production deployed
|
|
482
563
|
- ✓ Production tests passed
|
|
483
564
|
|
|
565
|
+
*Screenshot saved locally at: \`$SCREENSHOT\`*
|
|
566
|
+
|
|
484
567
|
---
|
|
485
568
|
*Automated by Claude Code Auto-Ticket Workflow*"
|
|
569
|
+
fi
|
|
486
570
|
fi
|
|
487
571
|
```
|
|
488
572
|
|
|
489
|
-
**
|
|
490
|
-
-
|
|
491
|
-
-
|
|
492
|
-
-
|
|
573
|
+
**How it works:**
|
|
574
|
+
- Screenshots are uploaded to ImgBB via the agentdev server's `/api/upload-image` endpoint
|
|
575
|
+
- The endpoint returns a permanent public URL that works in GitHub comments
|
|
576
|
+
- No authentication needed (uses server's ImgBB API key)
|
|
577
|
+
- Works for both local (`http://localhost:3847`) and production (`https://agentdev.datatamer.ai`)
|
|
493
578
|
|
|
494
|
-
|
|
579
|
+
5. **Add completion comment with screenshot description:**
|
|
495
580
|
|
|
496
581
|
If screenshot was taken, use the Read tool to view it and include a description of what it shows in the completion comment. The comment should describe:
|
|
497
582
|
- What page/feature is shown
|
|
@@ -520,7 +605,7 @@ gh issue comment <issue-number> -R data-tamer/<repo> --body "## Ticket Complete
|
|
|
520
605
|
*Automated by Claude Code Auto-Ticket Workflow*"
|
|
521
606
|
```
|
|
522
607
|
|
|
523
|
-
|
|
608
|
+
6. **Close the issue:**
|
|
524
609
|
```bash
|
|
525
610
|
gh issue close <issue-number> -R data-tamer/<repo> --reason completed
|
|
526
611
|
```
|