@fitlab-ai/agent-infra 0.3.2 → 0.4.1
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 +18 -35
- package/README.zh-CN.md +18 -35
- package/lib/defaults.json +5 -12
- package/lib/init.js +9 -25
- package/lib/paths.js +3 -42
- package/lib/update.js +43 -32
- package/package.json +2 -1
- package/templates/.agents/QUICKSTART.md +17 -7
- package/templates/.agents/QUICKSTART.zh-CN.md +17 -7
- package/templates/.agents/README.md +21 -14
- package/templates/.agents/README.zh-CN.md +21 -14
- package/templates/.agents/skills/analyze-task/SKILL.md +7 -10
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +7 -9
- package/templates/.agents/skills/block-task/SKILL.md +9 -13
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +9 -12
- package/templates/.agents/skills/check-task/SKILL.md +4 -8
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +4 -6
- package/templates/.agents/skills/close-codescan/SKILL.md +1 -4
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +1 -3
- package/templates/.agents/skills/close-dependabot/SKILL.md +1 -4
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +1 -3
- package/templates/.agents/skills/commit/SKILL.md +26 -198
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +26 -197
- package/templates/.agents/skills/commit/reference/commit-message.md +60 -0
- package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +60 -0
- package/templates/.agents/skills/commit/reference/copyright-check.md +39 -0
- package/templates/.agents/skills/commit/reference/copyright-check.zh-CN.md +39 -0
- package/templates/.agents/skills/commit/reference/task-status-update.md +88 -0
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +88 -0
- package/templates/.agents/skills/complete-task/SKILL.md +8 -13
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +8 -11
- package/templates/.agents/skills/create-issue/SKILL.md +32 -251
- package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +33 -252
- package/templates/.agents/skills/create-issue/reference/label-and-type.md +77 -0
- package/templates/.agents/skills/create-issue/reference/label-and-type.zh-CN.md +77 -0
- package/templates/.agents/skills/create-issue/reference/template-matching.md +45 -0
- package/templates/.agents/skills/create-issue/reference/template-matching.zh-CN.md +45 -0
- package/templates/.agents/skills/create-pr/SKILL.md +33 -224
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +32 -222
- package/templates/.agents/skills/create-pr/reference/branch-strategy.md +29 -0
- package/templates/.agents/skills/create-pr/reference/branch-strategy.zh-CN.md +29 -0
- package/templates/.agents/skills/create-pr/reference/pr-body-template.md +86 -0
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +86 -0
- package/templates/.agents/skills/create-release-note/SKILL.md +10 -13
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +10 -12
- package/templates/.agents/skills/create-task/SKILL.md +5 -8
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +5 -7
- package/templates/.agents/skills/implement-task/SKILL.md +48 -178
- package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +44 -172
- package/templates/.agents/skills/implement-task/reference/implementation-rules.md +58 -0
- package/templates/.agents/skills/implement-task/reference/implementation-rules.zh-CN.md +58 -0
- package/templates/.agents/skills/implement-task/reference/report-template.md +63 -0
- package/templates/.agents/skills/implement-task/reference/report-template.zh-CN.md +63 -0
- package/templates/.agents/skills/import-codescan/SKILL.md +2 -5
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -4
- package/templates/.agents/skills/import-dependabot/SKILL.md +4 -7
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +4 -6
- package/templates/.agents/skills/import-issue/SKILL.md +6 -8
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +6 -8
- package/templates/.agents/skills/init-labels/SKILL.md +1 -4
- package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +1 -4
- package/templates/.agents/skills/init-milestones/SKILL.md +1 -3
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +1 -3
- package/templates/.agents/skills/plan-task/SKILL.md +7 -11
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +7 -9
- package/templates/.agents/skills/refine-task/SKILL.md +38 -162
- package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +36 -158
- package/templates/.agents/skills/refine-task/reference/fix-workflow.md +76 -0
- package/templates/.agents/skills/refine-task/reference/fix-workflow.zh-CN.md +76 -0
- package/templates/.agents/skills/refine-task/reference/report-template.md +38 -0
- package/templates/.agents/skills/refine-task/reference/report-template.zh-CN.md +38 -0
- package/templates/.agents/skills/refine-title/SKILL.md +1 -4
- package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -3
- package/templates/.agents/skills/release/SKILL.md +58 -19
- package/templates/.agents/skills/release/SKILL.zh-CN.md +58 -18
- package/templates/.agents/skills/review-task/SKILL.md +37 -239
- package/templates/.agents/skills/review-task/SKILL.zh-CN.md +37 -238
- package/templates/.agents/skills/review-task/reference/output-templates.md +72 -0
- package/templates/.agents/skills/review-task/reference/output-templates.zh-CN.md +72 -0
- package/templates/.agents/skills/review-task/reference/report-template.md +63 -0
- package/templates/.agents/skills/review-task/reference/report-template.zh-CN.md +63 -0
- package/templates/.agents/skills/review-task/reference/review-criteria.md +24 -0
- package/templates/.agents/skills/review-task/reference/review-criteria.zh-CN.md +24 -0
- package/templates/.agents/skills/sync-issue/SKILL.md +32 -490
- package/templates/.agents/skills/sync-issue/SKILL.zh-CN.md +33 -490
- package/templates/.agents/skills/sync-issue/reference/comment-publish.md +88 -0
- package/templates/.agents/skills/sync-issue/reference/comment-publish.zh-CN.md +88 -0
- package/templates/.agents/skills/sync-issue/reference/delivery-detection.md +42 -0
- package/templates/.agents/skills/sync-issue/reference/delivery-detection.zh-CN.md +42 -0
- package/templates/.agents/skills/sync-issue/reference/label-sync.md +63 -0
- package/templates/.agents/skills/sync-issue/reference/label-sync.zh-CN.md +63 -0
- package/templates/.agents/skills/sync-issue/reference/milestone-sync.md +37 -0
- package/templates/.agents/skills/sync-issue/reference/milestone-sync.zh-CN.md +37 -0
- package/templates/.agents/skills/sync-pr/SKILL.md +25 -287
- package/templates/.agents/skills/sync-pr/SKILL.zh-CN.md +29 -291
- package/templates/.agents/skills/sync-pr/reference/comment-publish.md +82 -0
- package/templates/.agents/skills/sync-pr/reference/comment-publish.zh-CN.md +82 -0
- package/templates/.agents/skills/sync-pr/reference/delivery-detection.md +54 -0
- package/templates/.agents/skills/sync-pr/reference/delivery-detection.zh-CN.md +54 -0
- package/templates/.agents/skills/test/SKILL.md +1 -3
- package/templates/.agents/skills/test/SKILL.zh-CN.md +1 -3
- package/templates/.agents/skills/test-integration/SKILL.md +1 -4
- package/templates/.agents/skills/test-integration/SKILL.zh-CN.md +1 -3
- package/templates/.agents/skills/update-agent-infra/SKILL.md +7 -11
- package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +7 -9
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +59 -118
- package/templates/.agents/skills/upgrade-dependency/SKILL.md +1 -4
- package/templates/.agents/skills/upgrade-dependency/SKILL.zh-CN.md +1 -3
- package/templates/.agents/templates/handoff.md +1 -1
- package/templates/.agents/templates/handoff.zh-CN.md +1 -1
- package/templates/.agents/workflows/bug-fix.yaml +71 -71
- package/templates/.agents/workflows/bug-fix.zh-CN.yaml +1 -1
- package/templates/.agents/workflows/feature-development.yaml +71 -71
- package/templates/.agents/workflows/feature-development.zh-CN.yaml +1 -1
- package/templates/.agents/workflows/refactoring.yaml +76 -76
- package/templates/.agents/workflows/refactoring.zh-CN.yaml +1 -1
- package/templates/{.agent-workspace → .agents/workspace}/README.md +1 -1
- package/templates/{.agent-workspace → .agents/workspace}/README.zh-CN.md +1 -1
- package/templates/.claude/CLAUDE.md +14 -52
- package/templates/.claude/CLAUDE.zh-CN.md +14 -52
- package/templates/.claude/commands/analyze-task.md +1 -1
- package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
- package/templates/.claude/commands/block-task.md +2 -1
- package/templates/.claude/commands/block-task.zh-CN.md +2 -1
- package/templates/.claude/commands/check-task.md +2 -1
- package/templates/.claude/commands/check-task.zh-CN.md +2 -1
- package/templates/.claude/commands/close-codescan.md +2 -1
- package/templates/.claude/commands/close-codescan.zh-CN.md +2 -1
- package/templates/.claude/commands/close-dependabot.md +2 -1
- package/templates/.claude/commands/close-dependabot.zh-CN.md +2 -1
- package/templates/.claude/commands/commit.md +1 -1
- package/templates/.claude/commands/commit.zh-CN.md +1 -1
- package/templates/.claude/commands/complete-task.md +1 -1
- package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
- package/templates/.claude/commands/create-issue.md +1 -1
- package/templates/.claude/commands/create-issue.zh-CN.md +1 -1
- package/templates/.claude/commands/create-pr.md +1 -1
- package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
- package/templates/.claude/commands/create-release-note.md +2 -1
- package/templates/.claude/commands/create-release-note.zh-CN.md +2 -1
- package/templates/.claude/commands/create-task.md +1 -1
- package/templates/.claude/commands/create-task.zh-CN.md +1 -1
- package/templates/.claude/commands/implement-task.md +1 -1
- package/templates/.claude/commands/implement-task.zh-CN.md +1 -1
- package/templates/.claude/commands/import-codescan.md +1 -0
- package/templates/.claude/commands/import-codescan.zh-CN.md +2 -1
- package/templates/.claude/commands/import-dependabot.md +1 -0
- package/templates/.claude/commands/import-dependabot.zh-CN.md +2 -1
- package/templates/.claude/commands/import-issue.md +1 -1
- package/templates/.claude/commands/import-issue.zh-CN.md +1 -1
- package/templates/.claude/commands/init-labels.md +1 -0
- package/templates/.claude/commands/init-labels.zh-CN.md +2 -1
- package/templates/.claude/commands/init-milestones.md +2 -1
- package/templates/.claude/commands/init-milestones.zh-CN.md +2 -1
- package/templates/.claude/commands/plan-task.md +1 -1
- package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
- package/templates/.claude/commands/refine-task.zh-CN.md +1 -1
- package/templates/.claude/commands/refine-title.md +2 -1
- package/templates/.claude/commands/refine-title.zh-CN.md +2 -1
- package/templates/.claude/commands/release.md +2 -1
- package/templates/.claude/commands/release.zh-CN.md +2 -1
- package/templates/.claude/commands/review-task.md +1 -1
- package/templates/.claude/commands/review-task.zh-CN.md +1 -1
- package/templates/.claude/commands/sync-issue.md +1 -1
- package/templates/.claude/commands/sync-issue.zh-CN.md +1 -1
- package/templates/.claude/commands/sync-pr.md +1 -1
- package/templates/.claude/commands/sync-pr.zh-CN.md +1 -1
- package/templates/.claude/commands/test-integration.md +2 -1
- package/templates/.claude/commands/test-integration.zh-CN.md +2 -1
- package/templates/.claude/commands/test.md +1 -1
- package/templates/.claude/commands/test.zh-CN.md +1 -1
- package/templates/.claude/commands/update-agent-infra.md +2 -1
- package/templates/.claude/commands/update-agent-infra.zh-CN.md +2 -1
- package/templates/.claude/commands/upgrade-dependency.md +2 -1
- package/templates/.claude/commands/upgrade-dependency.zh-CN.md +2 -1
- package/templates/.claude/hooks/check-version-format.sh +44 -0
- package/templates/.claude/settings.json +14 -0
- package/templates/.gemini/commands/_project_/analyze-task.toml +1 -1
- package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/block-task.toml +1 -1
- package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/check-task.toml +1 -1
- package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/close-codescan.toml +1 -1
- package/templates/.gemini/commands/_project_/close-codescan.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/close-dependabot.toml +1 -1
- package/templates/.gemini/commands/_project_/close-dependabot.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/commit.toml +1 -1
- package/templates/.gemini/commands/_project_/commit.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/complete-task.toml +1 -1
- package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/create-issue.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/create-pr.toml +1 -1
- package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/create-release-note.toml +1 -1
- package/templates/.gemini/commands/_project_/create-release-note.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/create-task.toml +1 -1
- package/templates/.gemini/commands/_project_/create-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/implement-task.toml +1 -1
- package/templates/.gemini/commands/_project_/implement-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/import-codescan.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/import-dependabot.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/import-issue.toml +1 -1
- package/templates/.gemini/commands/_project_/import-issue.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/init-labels.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/init-milestones.toml +1 -1
- package/templates/.gemini/commands/_project_/init-milestones.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/plan-task.toml +1 -1
- package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/refine-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/refine-title.toml +1 -1
- package/templates/.gemini/commands/_project_/refine-title.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/release.toml +1 -1
- package/templates/.gemini/commands/_project_/release.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/review-task.toml +1 -1
- package/templates/.gemini/commands/_project_/review-task.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/sync-issue.toml +1 -1
- package/templates/.gemini/commands/_project_/sync-issue.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/sync-pr.toml +1 -1
- package/templates/.gemini/commands/_project_/sync-pr.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/test-integration.toml +1 -1
- package/templates/.gemini/commands/_project_/test-integration.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/test.toml +1 -1
- package/templates/.gemini/commands/_project_/test.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/update-agent-infra.toml +1 -1
- package/templates/.gemini/commands/_project_/update-agent-infra.zh-CN.toml +1 -1
- package/templates/.gemini/commands/_project_/upgrade-dependency.toml +1 -1
- package/templates/.gemini/commands/_project_/upgrade-dependency.zh-CN.toml +1 -1
- package/templates/.github/hooks/check-version-format.sh +29 -0
- package/templates/.github/hooks/pre-commit +8 -0
- package/templates/.opencode/COMMAND_STYLE_GUIDE.md +6 -6
- package/templates/.opencode/COMMAND_STYLE_GUIDE.zh-CN.md +6 -6
- package/templates/.opencode/commands/analyze-task.md +1 -1
- package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/block-task.md +1 -1
- package/templates/.opencode/commands/block-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/check-task.md +1 -1
- package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/close-codescan.md +1 -1
- package/templates/.opencode/commands/close-codescan.zh-CN.md +1 -1
- package/templates/.opencode/commands/close-dependabot.md +1 -1
- package/templates/.opencode/commands/close-dependabot.zh-CN.md +1 -1
- package/templates/.opencode/commands/commit.md +1 -1
- package/templates/.opencode/commands/commit.zh-CN.md +1 -1
- package/templates/.opencode/commands/complete-task.md +1 -1
- package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/create-issue.zh-CN.md +1 -1
- package/templates/.opencode/commands/create-pr.md +1 -1
- package/templates/.opencode/commands/create-pr.zh-CN.md +1 -1
- package/templates/.opencode/commands/create-release-note.md +1 -1
- package/templates/.opencode/commands/create-release-note.zh-CN.md +1 -1
- package/templates/.opencode/commands/create-task.md +1 -1
- package/templates/.opencode/commands/create-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/implement-task.md +1 -1
- package/templates/.opencode/commands/implement-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/import-codescan.zh-CN.md +1 -1
- package/templates/.opencode/commands/import-dependabot.zh-CN.md +1 -1
- package/templates/.opencode/commands/import-issue.md +1 -1
- package/templates/.opencode/commands/import-issue.zh-CN.md +1 -1
- package/templates/.opencode/commands/init-labels.zh-CN.md +1 -1
- package/templates/.opencode/commands/init-milestones.md +1 -1
- package/templates/.opencode/commands/init-milestones.zh-CN.md +1 -1
- package/templates/.opencode/commands/plan-task.md +1 -1
- package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/refine-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/refine-title.md +1 -1
- package/templates/.opencode/commands/refine-title.zh-CN.md +1 -1
- package/templates/.opencode/commands/release.md +1 -1
- package/templates/.opencode/commands/release.zh-CN.md +1 -1
- package/templates/.opencode/commands/review-task.md +1 -1
- package/templates/.opencode/commands/review-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/sync-issue.md +1 -1
- package/templates/.opencode/commands/sync-issue.zh-CN.md +1 -1
- package/templates/.opencode/commands/sync-pr.md +1 -1
- package/templates/.opencode/commands/sync-pr.zh-CN.md +1 -1
- package/templates/.opencode/commands/test-integration.md +1 -1
- package/templates/.opencode/commands/test-integration.zh-CN.md +1 -1
- package/templates/.opencode/commands/test.md +1 -1
- package/templates/.opencode/commands/test.zh-CN.md +1 -1
- package/templates/.opencode/commands/update-agent-infra.md +1 -1
- package/templates/.opencode/commands/update-agent-infra.zh-CN.md +1 -1
- package/templates/.opencode/commands/upgrade-dependency.md +1 -1
- package/templates/.opencode/commands/upgrade-dependency.zh-CN.md +1 -1
- package/templates/AGENTS.md +11 -3
- package/templates/AGENTS.zh-CN.md +11 -3
- package/templates/.editorconfig +0 -15
- package/templates/.github/ISSUE_TEMPLATE/01_bug_report.yml +0 -149
- package/templates/.github/ISSUE_TEMPLATE/02_question.yml +0 -101
- package/templates/.github/ISSUE_TEMPLATE/03_feature_request.yml +0 -131
- package/templates/.github/ISSUE_TEMPLATE/04_documentation.yml +0 -165
- package/templates/.github/ISSUE_TEMPLATE/05_other.yml +0 -147
- package/templates/.github/ISSUE_TEMPLATE/config.yml +0 -11
- package/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -123
- package/templates/.github/dependabot.yml +0 -17
- package/templates/.github/hooks/check-utf8-encoding.sh +0 -25
- package/templates/.github/release.yml +0 -27
- package/templates/.github/workflows/pr-title-check.yml +0 -42
- package/templates/.mailmap +0 -4
- package/templates/CONTRIBUTING.md +0 -126
- package/templates/CONTRIBUTING.zh-CN.md +0 -124
- package/templates/SECURITY.md +0 -131
- package/templates/SECURITY.zh-CN.md +0 -131
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
1
|
+
# Feature Development Workflow
|
|
2
|
+
# Use this workflow when implementing a new feature.
|
|
3
3
|
|
|
4
4
|
name: feature-development
|
|
5
|
-
description:
|
|
5
|
+
description: End-to-end workflow for developing a new feature.
|
|
6
6
|
|
|
7
7
|
steps:
|
|
8
8
|
- name: analysis
|
|
9
|
-
description:
|
|
9
|
+
description: Analyze feature requirements, explore the codebase, and identify impacted areas.
|
|
10
10
|
recommended_agents:
|
|
11
11
|
- claude
|
|
12
12
|
- gemini
|
|
13
13
|
tasks:
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
14
|
+
- Read and understand the feature requirements
|
|
15
|
+
- Explore the codebase to identify relevant files and modules
|
|
16
|
+
- Identify dependencies and potentially impacted areas
|
|
17
|
+
- Record findings in the task file
|
|
18
18
|
inputs:
|
|
19
|
-
-
|
|
20
|
-
-
|
|
19
|
+
- Feature requirements or issue description
|
|
20
|
+
- Project codebase
|
|
21
21
|
artifact_versioning:
|
|
22
22
|
outputs:
|
|
23
23
|
- name: analysis
|
|
24
24
|
pattern: "analysis.md | analysis-r{N}.md"
|
|
25
|
-
rule: "
|
|
25
|
+
rule: "Scan existing analysis artifacts; create analysis.md for the first round, then analysis-r{N}.md for later revisions (N = current highest round + 1)"
|
|
26
26
|
outputs:
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
27
|
+
- Updated task file (analysis section)
|
|
28
|
+
- List of impacted files
|
|
29
|
+
- Identified risks or constraints
|
|
30
30
|
|
|
31
31
|
- name: design
|
|
32
|
-
description:
|
|
32
|
+
description: Create the technical design for the feature implementation.
|
|
33
33
|
recommended_agents:
|
|
34
34
|
- claude
|
|
35
35
|
- gemini
|
|
36
36
|
tasks:
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
37
|
+
- Define interfaces and data structures
|
|
38
|
+
- Outline the implementation approach
|
|
39
|
+
- Identify edge cases and error-handling strategies
|
|
40
|
+
- Record the design in the task file
|
|
41
41
|
inputs:
|
|
42
|
-
-
|
|
43
|
-
-
|
|
42
|
+
- Analysis results from the previous step
|
|
43
|
+
- Project architecture and conventions
|
|
44
44
|
artifact_versioning:
|
|
45
45
|
inputs:
|
|
46
46
|
- name: analysis
|
|
47
47
|
pattern: "analysis.md | analysis-r{N}.md"
|
|
48
|
-
rule: "
|
|
48
|
+
rule: "Read the highest-round analysis artifact as design input"
|
|
49
49
|
outputs:
|
|
50
50
|
- name: plan
|
|
51
51
|
pattern: "plan.md | plan-r{N}.md"
|
|
52
|
-
rule: "
|
|
52
|
+
rule: "Scan existing plan artifacts; create plan.md for the first round, then plan-r{N}.md for later revisions (N = current highest round + 1)"
|
|
53
53
|
outputs:
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
54
|
+
- Updated task file (design section)
|
|
55
|
+
- Interface definitions
|
|
56
|
+
- Implementation plan
|
|
57
57
|
|
|
58
58
|
- name: implementation
|
|
59
|
-
description:
|
|
59
|
+
description: Implement the feature according to the design plan.
|
|
60
60
|
recommended_agents:
|
|
61
61
|
- codex
|
|
62
62
|
- cursor
|
|
63
63
|
tasks:
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
64
|
+
- Create a feature branch
|
|
65
|
+
- Implement the feature code
|
|
66
|
+
- Write unit tests
|
|
67
|
+
- Write integration tests when applicable
|
|
68
|
+
- Ensure the code follows project conventions
|
|
69
69
|
inputs:
|
|
70
|
-
-
|
|
71
|
-
-
|
|
70
|
+
- Technical design from the previous step
|
|
71
|
+
- Project coding standards
|
|
72
72
|
artifact_versioning:
|
|
73
73
|
outputs:
|
|
74
74
|
- name: implementation
|
|
75
75
|
pattern: "implementation.md | implementation-r{N}.md"
|
|
76
|
-
rule: "
|
|
76
|
+
rule: "Scan existing implementation artifacts; create implementation.md for the first round, then implementation-r{N}.md for later re-implementations (N = current highest round + 1)"
|
|
77
77
|
outputs:
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
78
|
+
- Feature branch with the implementation
|
|
79
|
+
- Test files
|
|
80
|
+
- Updated task file (implementation notes)
|
|
81
81
|
|
|
82
82
|
- name: review
|
|
83
|
-
description:
|
|
83
|
+
description: Review correctness, code style, and best practices in the implementation.
|
|
84
84
|
recommended_agents:
|
|
85
85
|
- claude
|
|
86
86
|
tasks:
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
87
|
+
- Review the correctness of the code changes
|
|
88
|
+
- Check adherence to project conventions
|
|
89
|
+
- Verify test coverage and quality
|
|
90
|
+
- Check for security and performance issues
|
|
91
|
+
- Create a review report
|
|
92
92
|
inputs:
|
|
93
|
-
-
|
|
94
|
-
-
|
|
93
|
+
- Implementation branch
|
|
94
|
+
- Project conventions
|
|
95
95
|
artifact_versioning:
|
|
96
96
|
inputs:
|
|
97
97
|
- name: implementation
|
|
98
98
|
pattern: "implementation.md | implementation-r{N}.md"
|
|
99
|
-
rule: "
|
|
99
|
+
rule: "Read the highest-round implementation artifact as review input"
|
|
100
100
|
outputs:
|
|
101
101
|
- name: review
|
|
102
102
|
pattern: "review.md | review-r{N}.md"
|
|
103
|
-
rule: "
|
|
103
|
+
rule: "Scan existing review artifacts; create review.md for the first round, then review-r{N}.md for later rounds (N = current highest round + 1)"
|
|
104
104
|
outputs:
|
|
105
|
-
-
|
|
106
|
-
-
|
|
105
|
+
- Review report
|
|
106
|
+
- List of issues to fix
|
|
107
107
|
|
|
108
108
|
- name: fix
|
|
109
|
-
description:
|
|
109
|
+
description: Address issues found during the review step.
|
|
110
110
|
recommended_agents:
|
|
111
111
|
- codex
|
|
112
112
|
- cursor
|
|
113
113
|
tasks:
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
114
|
+
- Fix all critical and major review findings
|
|
115
|
+
- Address minor issues and suggestions when appropriate
|
|
116
|
+
- Update tests as needed
|
|
117
|
+
- Verify that all tests pass
|
|
118
118
|
inputs:
|
|
119
|
-
-
|
|
120
|
-
-
|
|
119
|
+
- Review report
|
|
120
|
+
- Implementation branch
|
|
121
121
|
artifact_versioning:
|
|
122
122
|
inputs:
|
|
123
123
|
- name: review
|
|
124
124
|
pattern: "review.md | review-r{N}.md"
|
|
125
|
-
rule: "
|
|
125
|
+
rule: "Read the highest-round review artifact and verify that it matches the latest Code Review entry in the task.md Activity Log"
|
|
126
126
|
outputs:
|
|
127
127
|
- name: refinement
|
|
128
128
|
pattern: "refinement.md | refinement-r{N}.md"
|
|
129
|
-
rule: "
|
|
129
|
+
rule: "Scan existing refinement artifacts; create refinement.md for the first round, then refinement-r{N}.md for later rounds (N = current highest round + 1)"
|
|
130
130
|
outputs:
|
|
131
|
-
-
|
|
132
|
-
-
|
|
131
|
+
- Updated branch with fixes
|
|
132
|
+
- Updated task file
|
|
133
133
|
|
|
134
134
|
- name: commit
|
|
135
|
-
description:
|
|
135
|
+
description: Finalize the changes and create a pull request.
|
|
136
136
|
recommended_agents:
|
|
137
137
|
- claude
|
|
138
138
|
- human
|
|
139
139
|
tasks:
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
140
|
+
- Ensure all tests pass
|
|
141
|
+
- Write a clear commit message that follows project conventions
|
|
142
|
+
- Create a pull request with an appropriate description
|
|
143
|
+
- Link the PR to the relevant issue
|
|
144
|
+
- Move the task to completed
|
|
145
145
|
inputs:
|
|
146
|
-
-
|
|
147
|
-
-
|
|
146
|
+
- Final implementation branch
|
|
147
|
+
- Task file
|
|
148
148
|
outputs:
|
|
149
|
-
-
|
|
150
|
-
-
|
|
149
|
+
- Pull request
|
|
150
|
+
- Completed task file (stored in .agents/workspace/completed/)
|
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
1
|
+
# Refactoring Workflow
|
|
2
|
+
# Use this workflow for code refactoring tasks.
|
|
3
3
|
|
|
4
4
|
name: refactoring
|
|
5
|
-
description:
|
|
5
|
+
description: Safe and structured workflow for code refactoring.
|
|
6
6
|
|
|
7
7
|
steps:
|
|
8
8
|
- name: analysis
|
|
9
|
-
description:
|
|
9
|
+
description: Analyze the current code and determine the refactoring scope.
|
|
10
10
|
recommended_agents:
|
|
11
11
|
- claude
|
|
12
12
|
- gemini
|
|
13
13
|
tasks:
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
14
|
+
- Identify the code to refactor and why it needs refactoring
|
|
15
|
+
- Map all dependencies and consumers of the impacted code
|
|
16
|
+
- Assess refactoring risk and complexity
|
|
17
|
+
- Identify existing test coverage for impacted areas
|
|
18
|
+
- Record findings in the task file
|
|
19
19
|
inputs:
|
|
20
|
-
-
|
|
21
|
-
-
|
|
20
|
+
- Refactoring request or issue description
|
|
21
|
+
- Project codebase
|
|
22
22
|
artifact_versioning:
|
|
23
23
|
outputs:
|
|
24
24
|
- name: analysis
|
|
25
25
|
pattern: "analysis.md | analysis-r{N}.md"
|
|
26
|
-
rule: "
|
|
26
|
+
rule: "Scan existing analysis artifacts; create analysis.md for the first round, then analysis-r{N}.md for later revisions (N = current highest round + 1)"
|
|
27
27
|
outputs:
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
28
|
+
- Scope analysis with dependency mapping
|
|
29
|
+
- Risk assessment
|
|
30
|
+
- Updated task file (analysis section)
|
|
31
31
|
|
|
32
32
|
- name: design
|
|
33
|
-
description:
|
|
33
|
+
description: Plan the refactoring approach to minimize risk.
|
|
34
34
|
recommended_agents:
|
|
35
35
|
- claude
|
|
36
36
|
tasks:
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
37
|
+
- Define the target architecture or code structure
|
|
38
|
+
- Plan incremental refactoring steps to avoid a single large change
|
|
39
|
+
- Identify intermediate states that must remain functional
|
|
40
|
+
- Plan any additional tests needed before refactoring
|
|
41
|
+
- Record the refactoring plan in the task file
|
|
42
42
|
inputs:
|
|
43
|
-
-
|
|
44
|
-
-
|
|
43
|
+
- Scope analysis from the previous step
|
|
44
|
+
- Project architecture
|
|
45
45
|
artifact_versioning:
|
|
46
46
|
inputs:
|
|
47
47
|
- name: analysis
|
|
48
48
|
pattern: "analysis.md | analysis-r{N}.md"
|
|
49
|
-
rule: "
|
|
49
|
+
rule: "Read the highest-round analysis artifact as design input"
|
|
50
50
|
outputs:
|
|
51
51
|
- name: plan
|
|
52
52
|
pattern: "plan.md | plan-r{N}.md"
|
|
53
|
-
rule: "
|
|
53
|
+
rule: "Scan existing plan artifacts; create plan.md for the first round, then plan-r{N}.md for later revisions (N = current highest round + 1)"
|
|
54
54
|
outputs:
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
55
|
+
- Refactoring plan with incremental steps
|
|
56
|
+
- List of prerequisite tests
|
|
57
|
+
- Updated task file (design section)
|
|
58
58
|
|
|
59
59
|
- name: implementation
|
|
60
|
-
description:
|
|
60
|
+
description: Execute the refactoring according to the plan.
|
|
61
61
|
recommended_agents:
|
|
62
62
|
- codex
|
|
63
63
|
- cursor
|
|
64
64
|
tasks:
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
65
|
+
- Create a refactoring branch
|
|
66
|
+
- Add prerequisite tests if they do not already exist
|
|
67
|
+
- Execute the refactoring incrementally
|
|
68
|
+
- Verify tests pass after each step
|
|
69
|
+
- Update impacted documentation or comments
|
|
70
|
+
- Ensure the code follows project conventions
|
|
71
71
|
inputs:
|
|
72
|
-
-
|
|
73
|
-
-
|
|
72
|
+
- Refactoring plan from the previous step
|
|
73
|
+
- Project coding standards
|
|
74
74
|
artifact_versioning:
|
|
75
75
|
outputs:
|
|
76
76
|
- name: implementation
|
|
77
77
|
pattern: "implementation.md | implementation-r{N}.md"
|
|
78
|
-
rule: "
|
|
78
|
+
rule: "Scan existing implementation artifacts; create implementation.md for the first round, then implementation-r{N}.md for later re-implementations (N = current highest round + 1)"
|
|
79
79
|
outputs:
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
80
|
+
- Refactoring branch with the changes
|
|
81
|
+
- Updated or new test files
|
|
82
|
+
- Updated task file (implementation notes)
|
|
83
83
|
|
|
84
84
|
- name: review
|
|
85
|
-
description:
|
|
85
|
+
description: Verify that the refactoring preserves behavior and improves code quality.
|
|
86
86
|
recommended_agents:
|
|
87
87
|
- claude
|
|
88
88
|
tasks:
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
89
|
+
- Verify functional equivalence unless behavior changes are intentional
|
|
90
|
+
- Check that all tests pass
|
|
91
|
+
- Confirm that code quality has improved
|
|
92
|
+
- Check for missed dependencies or consumers
|
|
93
|
+
- Assess performance impact when applicable
|
|
94
|
+
- Create a review report
|
|
95
95
|
inputs:
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
96
|
+
- Refactoring branch
|
|
97
|
+
- Original code for comparison
|
|
98
|
+
- Test results
|
|
99
99
|
artifact_versioning:
|
|
100
100
|
inputs:
|
|
101
101
|
- name: implementation
|
|
102
102
|
pattern: "implementation.md | implementation-r{N}.md"
|
|
103
|
-
rule: "
|
|
103
|
+
rule: "Read the highest-round implementation artifact as review input"
|
|
104
104
|
outputs:
|
|
105
105
|
- name: review
|
|
106
106
|
pattern: "review.md | review-r{N}.md"
|
|
107
|
-
rule: "
|
|
107
|
+
rule: "Scan existing review artifacts; create review.md for the first round, then review-r{N}.md for later rounds (N = current highest round + 1)"
|
|
108
108
|
outputs:
|
|
109
|
-
-
|
|
110
|
-
-
|
|
109
|
+
- Review report
|
|
110
|
+
- List of issues if any
|
|
111
111
|
|
|
112
112
|
- name: fix
|
|
113
|
-
description:
|
|
113
|
+
description: Address issues found during review.
|
|
114
114
|
recommended_agents:
|
|
115
115
|
- codex
|
|
116
116
|
- cursor
|
|
117
117
|
tasks:
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
118
|
+
- Fix issues identified in the review
|
|
119
|
+
- Update tests as needed
|
|
120
|
+
- Verify that all tests pass
|
|
121
|
+
- Ensure there are no regressions
|
|
122
122
|
inputs:
|
|
123
|
-
-
|
|
124
|
-
-
|
|
123
|
+
- Review report
|
|
124
|
+
- Refactoring branch
|
|
125
125
|
artifact_versioning:
|
|
126
126
|
inputs:
|
|
127
127
|
- name: review
|
|
128
128
|
pattern: "review.md | review-r{N}.md"
|
|
129
|
-
rule: "
|
|
129
|
+
rule: "Read the highest-round review artifact and verify that it matches the latest Code Review entry in the task.md Activity Log"
|
|
130
130
|
outputs:
|
|
131
131
|
- name: refinement
|
|
132
132
|
pattern: "refinement.md | refinement-r{N}.md"
|
|
133
|
-
rule: "
|
|
133
|
+
rule: "Scan existing refinement artifacts; create refinement.md for the first round, then refinement-r{N}.md for later rounds (N = current highest round + 1)"
|
|
134
134
|
outputs:
|
|
135
|
-
-
|
|
136
|
-
-
|
|
135
|
+
- Updated branch with fixes
|
|
136
|
+
- Updated task file
|
|
137
137
|
|
|
138
138
|
- name: commit
|
|
139
|
-
description:
|
|
139
|
+
description: Finalize the refactoring and create a pull request.
|
|
140
140
|
recommended_agents:
|
|
141
141
|
- claude
|
|
142
142
|
- human
|
|
143
143
|
tasks:
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
144
|
+
- Ensure all tests pass
|
|
145
|
+
- Write a clear commit message that explains the refactoring
|
|
146
|
+
- Create a pull request with a detailed change summary
|
|
147
|
+
- Link the PR to the relevant issue
|
|
148
|
+
- Move the task to completed
|
|
149
149
|
inputs:
|
|
150
|
-
-
|
|
151
|
-
-
|
|
150
|
+
- Final refactoring branch
|
|
151
|
+
- Task file
|
|
152
152
|
outputs:
|
|
153
|
-
-
|
|
154
|
-
-
|
|
153
|
+
- Pull request
|
|
154
|
+
- Completed task file (stored in .agents/workspace/completed/)
|
|
@@ -5,7 +5,7 @@ This directory is the runtime workspace for multi-AI collaboration. All contents
|
|
|
5
5
|
## Directory Structure
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
.
|
|
8
|
+
.agents/workspace/
|
|
9
9
|
active/ # Currently active tasks and handoff documents
|
|
10
10
|
blocked/ # Tasks that are blocked and waiting for resolution
|
|
11
11
|
completed/ # Completed tasks (kept for reference)
|
|
@@ -88,56 +88,10 @@ Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
88
88
|
|
|
89
89
|
## Slash Commands
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
/commit [message] # Commit code
|
|
94
|
-
/create-pr [branch] # Create PR
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Task Management
|
|
98
|
-
```bash
|
|
99
|
-
/create-task <description> # Create task from description
|
|
100
|
-
/import-issue <number> # Import GitHub Issue as task
|
|
101
|
-
/analyze-task <task-id> # Analyze task requirements
|
|
102
|
-
/plan-task <task-id> # Design technical plan
|
|
103
|
-
/implement-task <task-id> # Implement task
|
|
104
|
-
/review-task <task-id> # Code review
|
|
105
|
-
/complete-task <task-id> # Complete task
|
|
106
|
-
/check-task <task-id> # Check status
|
|
107
|
-
/block-task <task-id> # Block task
|
|
108
|
-
/refine-task <task-id> # Handle review feedback
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### PR and Sync
|
|
112
|
-
```bash
|
|
113
|
-
/sync-issue <number> # Sync progress to Issue
|
|
114
|
-
/sync-pr <number> # Sync progress to PR
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### Testing and Release
|
|
118
|
-
```bash
|
|
119
|
-
/test # Run tests
|
|
120
|
-
/test-integration # Run integration tests
|
|
121
|
-
/release <version> # Version release
|
|
122
|
-
/create-release-note # Generate release notes
|
|
123
|
-
```
|
|
91
|
+
Available commands are auto-discovered from `.claude/commands/`. Type `/` in the prompt to see the full list with descriptions.
|
|
124
92
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
/import-dependabot <number> # Import Dependabot alert
|
|
128
|
-
/close-dependabot # Close Dependabot alert
|
|
129
|
-
/import-codescan <number> # Import Code Scanning alert
|
|
130
|
-
/close-codescan # Close Code Scanning alert
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Tools
|
|
134
|
-
```bash
|
|
135
|
-
/init-milestones # Initialize GitHub Milestones
|
|
136
|
-
/init-labels # Initialize GitHub Labels
|
|
137
|
-
/refine-title # Reformat Issue/PR title
|
|
138
|
-
/upgrade-dependency # Upgrade dependency
|
|
139
|
-
/update-agent-infra # Update AI collaboration config
|
|
140
|
-
```
|
|
93
|
+
For task workflow, the typical sequence is:
|
|
94
|
+
`/create-task` -> `/analyze-task` -> `/plan-task` -> `/implement-task` -> `/review-task` -> `/complete-task`
|
|
141
95
|
|
|
142
96
|
## Language Conventions
|
|
143
97
|
|
|
@@ -153,20 +107,28 @@ Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
153
107
|
This project supports Claude Code, Codex, Gemini CLI, OpenCode.
|
|
154
108
|
|
|
155
109
|
- `.agents/` - Shared collaboration config
|
|
156
|
-
- `.
|
|
110
|
+
- `.agents/workspace/` - Task workspace (git-ignored)
|
|
157
111
|
|
|
158
112
|
**Collaboration guide**: `.agents/README.md`
|
|
159
113
|
|
|
160
114
|
## Skill Authoring Conventions
|
|
161
115
|
|
|
162
|
-
When writing or updating `.agents/skills/*/SKILL.md` files, keep step numbering consistent:
|
|
116
|
+
When writing or updating `.agents/skills/*/SKILL.md` files and their templates, keep step numbering consistent:
|
|
163
117
|
|
|
164
118
|
1. Use consecutive integers for top-level steps: `1.`, `2.`, `3.`.
|
|
165
119
|
2. Use nested numbering only for child actions that belong to a parent step: `1.1`, `1.2`, `2.1`.
|
|
166
|
-
3. Use `a`, `b`, and `c` markers for
|
|
120
|
+
3. Use `a`, `b`, and `c` markers for subordinate options, conditional branches, or parallel possibilities within the same step; use them only for in-step expansion, not for naming standalone decision paths or output templates.
|
|
167
121
|
4. Do not use intermediate numbers such as `1.5` or `2.5`; if a new standalone step is needed, renumber the following top-level steps.
|
|
168
122
|
5. When renumbering, update every in-document step reference so the instructions remain accurate.
|
|
169
123
|
6. Extract long bash scripts into a sibling `scripts/` directory; the SKILL.md should contain only a single-line invocation (e.g., `bash .agents/skills/<skill>/scripts/<script>.sh`) and a brief summary of the script's responsibilities.
|
|
124
|
+
7. In SKILL.md files and their `reference/` templates, when a standalone conditional flow, decision path, or output template needs a label, use "Scenario" naming (for example, use "Scenario A").
|
|
125
|
+
|
|
126
|
+
### SKILL.md Size Control
|
|
127
|
+
|
|
128
|
+
- Keep the SKILL.md body within about 500 tokens (roughly 80 lines / 2KB).
|
|
129
|
+
- Move content beyond that threshold into a sibling `reference/` directory.
|
|
130
|
+
- Use explicit navigation in the skeleton, such as: `Read reference/xxx.md before executing this step.`
|
|
131
|
+
- Keep scripts in `scripts/` and execute them instead of inlining long bash blocks.
|
|
170
132
|
|
|
171
133
|
<!-- Canonical source: .agents/README.md - keep in sync -->
|
|
172
134
|
|