@fitlab-ai/agent-infra 0.5.3 → 0.5.5

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.
Files changed (69) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +1 -1
  3. package/lib/defaults.json +1 -0
  4. package/package.json +1 -1
  5. package/templates/.agents/rules/issue-pr-commands.github.en.md +35 -10
  6. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +35 -10
  7. package/templates/.agents/rules/issue-sync.github.en.md +118 -28
  8. package/templates/.agents/rules/issue-sync.github.zh-CN.md +112 -22
  9. package/templates/.agents/rules/milestone-inference.github.en.md +13 -6
  10. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +13 -6
  11. package/templates/.agents/rules/pr-sync.github.en.md +3 -1
  12. package/templates/.agents/rules/pr-sync.github.zh-CN.md +3 -1
  13. package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +1118 -0
  14. package/templates/.agents/scripts/validate-artifact.js +51 -802
  15. package/templates/.agents/skills/analyze-task/SKILL.en.md +2 -2
  16. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +2 -2
  17. package/templates/.agents/skills/analyze-task/config/verify.json +1 -1
  18. package/templates/.agents/skills/block-task/SKILL.en.md +2 -2
  19. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +2 -2
  20. package/templates/.agents/skills/block-task/config/verify.json +1 -1
  21. package/templates/.agents/skills/cancel-task/SKILL.en.md +6 -6
  22. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +6 -6
  23. package/templates/.agents/skills/cancel-task/config/verify.json +1 -1
  24. package/templates/.agents/skills/commit/SKILL.en.md +14 -2
  25. package/templates/.agents/skills/commit/SKILL.zh-CN.md +14 -2
  26. package/templates/.agents/skills/commit/config/verify.json +2 -1
  27. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +23 -0
  28. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +23 -0
  29. package/templates/.agents/skills/complete-task/SKILL.en.md +2 -2
  30. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +2 -2
  31. package/templates/.agents/skills/complete-task/config/verify.json +1 -1
  32. package/templates/.agents/skills/create-issue/SKILL.en.md +3 -1
  33. package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +3 -1
  34. package/templates/.agents/skills/create-issue/config/verify.json +1 -1
  35. package/templates/.agents/skills/create-issue/reference/label-and-type.en.md +6 -1
  36. package/templates/.agents/skills/create-issue/reference/label-and-type.zh-CN.md +6 -1
  37. package/templates/.agents/skills/create-pr/SKILL.en.md +4 -4
  38. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +4 -4
  39. package/templates/.agents/skills/create-pr/config/verify.json +3 -1
  40. package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +9 -6
  41. package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +9 -6
  42. package/templates/.agents/skills/create-release-note/SKILL.en.md +27 -2
  43. package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +27 -2
  44. package/templates/.agents/skills/create-task/config/verify.json +1 -1
  45. package/templates/.agents/skills/implement-task/SKILL.en.md +4 -4
  46. package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +4 -4
  47. package/templates/.agents/skills/implement-task/config/verify.json +1 -2
  48. package/templates/.agents/skills/import-codescan/config/verify.json +1 -1
  49. package/templates/.agents/skills/import-dependabot/config/verify.json +1 -1
  50. package/templates/.agents/skills/import-issue/SKILL.en.md +1 -1
  51. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +1 -1
  52. package/templates/.agents/skills/import-issue/config/verify.json +1 -1
  53. package/templates/.agents/skills/plan-task/SKILL.en.md +2 -2
  54. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +2 -2
  55. package/templates/.agents/skills/plan-task/config/verify.json +1 -1
  56. package/templates/.agents/skills/refine-task/SKILL.en.md +2 -4
  57. package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +2 -4
  58. package/templates/.agents/skills/refine-task/config/verify.json +1 -2
  59. package/templates/.agents/skills/refine-title/SKILL.en.md +5 -1
  60. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +5 -1
  61. package/templates/.agents/skills/restore-task/config/verify.json +1 -1
  62. package/templates/.agents/skills/review-task/SKILL.en.md +2 -2
  63. package/templates/.agents/skills/review-task/SKILL.zh-CN.md +2 -2
  64. package/templates/.agents/skills/review-task/config/verify.json +1 -1
  65. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +2 -1
  66. package/templates/.github/scripts/sync-labels-to-set.sh +110 -0
  67. package/templates/.github/workflows/metadata-sync.yml +118 -0
  68. package/templates/.github/workflows/pr-label.yml +66 -0
  69. package/templates/.github/workflows/status-label.yml +20 -30
@@ -0,0 +1,66 @@
1
+ name: PR Label & Assignee
2
+
3
+ on:
4
+ pull_request_target:
5
+ types: [opened, synchronize]
6
+
7
+ permissions:
8
+ contents: read
9
+ issues: write
10
+ pull-requests: write
11
+
12
+ concurrency:
13
+ group: pr-label-${{ github.event.pull_request.number }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ label-and-assign:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Checkout base branch
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Sync in-labels
24
+ env:
25
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26
+ PR_NUMBER: ${{ github.event.pull_request.number }}
27
+ run: |
28
+ changed_files=$(gh api "repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER/files" \
29
+ --paginate --jq '[.[].filename]')
30
+
31
+ should_labels=$(jq -rn \
32
+ --argjson files "$changed_files" \
33
+ --argjson mapping "$(jq '.labels.in // {}' .agents/.airc.json)" \
34
+ '$mapping
35
+ | to_entries
36
+ | map(select(.value | any(. as $prefix | $files | any(startswith($prefix)))))
37
+ | map("in: " + .key)
38
+ | .[]?')
39
+
40
+ set -- \
41
+ --repo "$GITHUB_REPOSITORY" \
42
+ --pr "$PR_NUMBER" \
43
+ --prefix "in: "
44
+
45
+ while IFS= read -r label; do
46
+ [ -z "$label" ] && continue
47
+ set -- "$@" --target "$label"
48
+ done <<EOF
49
+ $should_labels
50
+ EOF
51
+
52
+ .github/scripts/sync-labels-to-set.sh "$@"
53
+
54
+ - name: Assign PR creator if unassigned
55
+ env:
56
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57
+ PR_NUMBER: ${{ github.event.pull_request.number }}
58
+ CREATOR: ${{ github.event.pull_request.user.login }}
59
+ ASSIGNEES_JSON: ${{ toJSON(github.event.pull_request.assignees) }}
60
+ run: |
61
+ count=$(printf '%s' "$ASSIGNEES_JSON" | jq 'length')
62
+ if [ "$count" -eq 0 ]; then
63
+ gh pr edit "$PR_NUMBER" \
64
+ --repo "$GITHUB_REPOSITORY" \
65
+ --add-assignee "$CREATOR" 2>/dev/null || true
66
+ fi
@@ -14,6 +14,16 @@ jobs:
14
14
  manage-status-labels:
15
15
  runs-on: ubuntu-latest
16
16
  steps:
17
+ - name: Checkout shared scripts
18
+ if: >-
19
+ (github.event_name == 'issues' && github.event.action == 'closed' && github.event.issue.state_reason == 'completed') ||
20
+ (github.event_name == 'issues' && github.event.action == 'reopened') ||
21
+ (github.event_name == 'pull_request_target' && github.event.action == 'closed' && github.event.pull_request.merged == true)
22
+ uses: actions/checkout@v4
23
+ with:
24
+ sparse-checkout: .github/scripts
25
+ sparse-checkout-cone-mode: false
26
+
17
27
  - name: Remove status labels on issue close
18
28
  if: >-
19
29
  github.event_name == 'issues' &&
@@ -23,16 +33,10 @@ jobs:
23
33
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24
34
  ISSUE_NUMBER: ${{ github.event.issue.number }}
25
35
  run: |
26
- gh issue view "$ISSUE_NUMBER" \
36
+ .github/scripts/sync-labels-to-set.sh \
27
37
  --repo "$GITHUB_REPOSITORY" \
28
- --json labels --jq '.labels[].name | select(startswith("status:"))' \
29
- 2>/dev/null \
30
- | while IFS= read -r label; do
31
- [ -z "$label" ] && continue
32
- gh issue edit "$ISSUE_NUMBER" \
33
- --repo "$GITHUB_REPOSITORY" \
34
- --remove-label "$label"
35
- done || true
38
+ --issue "$ISSUE_NUMBER" \
39
+ --prefix "status:"
36
40
 
37
41
  - name: Add triage label on issue reopen
38
42
  if: github.event_name == 'issues' && github.event.action == 'reopened'
@@ -40,19 +44,11 @@ jobs:
40
44
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41
45
  ISSUE_NUMBER: ${{ github.event.issue.number }}
42
46
  run: |
43
- gh issue view "$ISSUE_NUMBER" \
44
- --repo "$GITHUB_REPOSITORY" \
45
- --json labels --jq '.labels[].name | select(startswith("status:"))' \
46
- 2>/dev/null \
47
- | while IFS= read -r label; do
48
- [ -z "$label" ] && continue
49
- gh issue edit "$ISSUE_NUMBER" \
50
- --repo "$GITHUB_REPOSITORY" \
51
- --remove-label "$label"
52
- done || true
53
- gh issue edit "$ISSUE_NUMBER" \
47
+ .github/scripts/sync-labels-to-set.sh \
54
48
  --repo "$GITHUB_REPOSITORY" \
55
- --add-label "status: waiting-for-triage"
49
+ --issue "$ISSUE_NUMBER" \
50
+ --prefix "status:" \
51
+ --target "status: waiting-for-triage"
56
52
 
57
53
  - name: Clean status labels on PR merge
58
54
  if: >-
@@ -71,15 +67,9 @@ jobs:
71
67
  --repo "$GITHUB_REPOSITORY" \
72
68
  --json state --jq '.state')
73
69
  if [ "$state" = "CLOSED" ]; then
74
- gh issue view "$issue_number" \
70
+ .github/scripts/sync-labels-to-set.sh \
75
71
  --repo "$GITHUB_REPOSITORY" \
76
- --json labels --jq '.labels[].name | select(startswith("status:"))' \
77
- 2>/dev/null \
78
- | while IFS= read -r label; do
79
- [ -z "$label" ] && continue
80
- gh issue edit "$issue_number" \
81
- --repo "$GITHUB_REPOSITORY" \
82
- --remove-label "$label"
83
- done || true
72
+ --issue "$issue_number" \
73
+ --prefix "status:"
84
74
  fi
85
75
  done