@laitszkin/apollo-toolkit 3.12.1 → 3.13.0
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/CHANGELOG.md +14 -0
- package/analyse-app-logs/scripts/__pycache__/filter_logs_by_time.cpython-312.pyc +0 -0
- package/analyse-app-logs/scripts/__pycache__/log_cli_utils.cpython-312.pyc +0 -0
- package/analyse-app-logs/scripts/__pycache__/search_logs.cpython-312.pyc +0 -0
- package/archive-specs/SKILL.md +0 -6
- package/commit-and-push/SKILL.md +3 -9
- package/docs-to-voice/scripts/__pycache__/docs_to_voice.cpython-312.pyc +0 -0
- package/generate-spec/SKILL.md +27 -9
- package/generate-spec/references/definition.md +12 -0
- package/generate-spec/scripts/__pycache__/create-specscpython-312.pyc +0 -0
- package/init-project-html/SKILL.md +18 -22
- package/init-project-html/references/definition.md +12 -0
- package/katex/scripts/__pycache__/render_katex.cpython-312.pyc +0 -0
- package/maintain-project-constraints/SKILL.md +11 -19
- package/merge-changes-from-local-branches/SKILL.md +11 -24
- package/open-github-issue/scripts/__pycache__/open_github_issue.cpython-312.pyc +0 -0
- package/package.json +1 -1
- package/read-github-issue/scripts/__pycache__/find_issues.cpython-312.pyc +0 -0
- package/read-github-issue/scripts/__pycache__/read_issue.cpython-312.pyc +0 -0
- package/resolve-review-comments/scripts/__pycache__/review_threads.cpython-312.pyc +0 -0
- package/solve-issues-found-during-review/SKILL.md +1 -1
- package/systematic-debug/SKILL.md +11 -38
- package/test-case-strategy/SKILL.md +10 -37
- package/text-to-short-video/scripts/__pycache__/enforce_video_aspect_ratio.cpython-312.pyc +0 -0
- package/update-project-html/SKILL.md +19 -24
- package/update-project-html/references/definition.md +12 -0
- package/version-release/SKILL.md +16 -37
- package/iterative-code-performance/LICENSE +0 -21
- package/iterative-code-performance/README.md +0 -34
- package/iterative-code-performance/SKILL.md +0 -116
- package/iterative-code-performance/agents/openai.yaml +0 -4
- package/iterative-code-performance/references/algorithmic-complexity.md +0 -58
- package/iterative-code-performance/references/allocation-and-hot-loops.md +0 -53
- package/iterative-code-performance/references/caching-and-memoization.md +0 -64
- package/iterative-code-performance/references/concurrency-and-pipelines.md +0 -61
- package/iterative-code-performance/references/coupled-hot-path-strategy.md +0 -78
- package/iterative-code-performance/references/io-batching-and-queries.md +0 -55
- package/iterative-code-performance/references/iteration-gates.md +0 -133
- package/iterative-code-performance/references/job-selection.md +0 -92
- package/iterative-code-performance/references/measurement-and-benchmarking.md +0 -78
- package/iterative-code-performance/references/module-coverage.md +0 -133
- package/iterative-code-performance/references/repository-scan.md +0 -69
- package/iterative-code-quality/LICENSE +0 -21
- package/iterative-code-quality/README.md +0 -45
- package/iterative-code-quality/SKILL.md +0 -112
- package/iterative-code-quality/agents/openai.yaml +0 -4
- package/iterative-code-quality/references/coupled-core-file-strategy.md +0 -73
- package/iterative-code-quality/references/iteration-gates.md +0 -127
- package/iterative-code-quality/references/job-selection.md +0 -78
- package/iterative-code-quality/references/logging-alignment.md +0 -67
- package/iterative-code-quality/references/module-boundaries.md +0 -83
- package/iterative-code-quality/references/module-coverage.md +0 -126
- package/iterative-code-quality/references/naming-and-simplification.md +0 -73
- package/iterative-code-quality/references/repository-scan.md +0 -65
- package/iterative-code-quality/references/testing-strategy.md +0 -95
- package/merge-conflict-resolver/SKILL.md +0 -46
- package/merge-conflict-resolver/agents/openai.yaml +0 -5
- package/spec-to-project-html/SKILL.md +0 -42
- package/spec-to-project-html/agents/openai.yaml +0 -11
- package/spec-to-project-html/references/TEMPLATE_SPEC.md +0 -113
- package/submission-readiness-check/SKILL.md +0 -39
- package/submission-readiness-check/agents/openai.yaml +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this repository are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Further tighten SKILL.md files (`archive-specs`, `commit-and-push`, `generate-spec`, `init-project-html`, `maintain-project-constraints`, `merge-changes-from-local-branches`, `solve-issues-found-during-review`, `systematic-debug`, `test-case-strategy`, `update-project-html`, `version-release`) by removing inline examples, standardizing section headings, and simplifying descriptions.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `generate-spec/references/definition.md`, `init-project-html/references/definition.md`, `update-project-html/references/definition.md` with shared terminology for feature modules and sub-modules.
|
|
14
|
+
|
|
15
|
+
### Removed
|
|
16
|
+
|
|
17
|
+
- Remove `iterative-code-performance`, `iterative-code-quality`, `merge-conflict-resolver`, `spec-to-project-html`, and `submission-readiness-check` skills that are no longer part of the curated catalog.
|
|
18
|
+
|
|
5
19
|
## [v3.12.1] - 2026-05-14
|
|
6
20
|
|
|
7
21
|
### Changed
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/archive-specs/SKILL.md
CHANGED
|
@@ -23,12 +23,6 @@ description: 將已完成的spec歸檔到 `docs/archive/` 下。當你需要將s
|
|
|
23
23
|
|
|
24
24
|
使用 `align-project-documents`, `maintain-project-constraints` 技能,按照這兩個技能之中的指引,更新項目文檔。並將完成的spec全部移動到 `docs/archive/`。
|
|
25
25
|
|
|
26
|
-
## 使用範例
|
|
27
|
-
|
|
28
|
-
- "這批 spec 已經實作完成,幫我整理成正式文件並歸檔" -> "先同步 `docs/` 與 `AGENTS.md` / `CLAUDE.md`,再把已完成的 spec 移到 archive"
|
|
29
|
-
- "只有批次中的兩個子 spec 做完,另外一個還在進行" -> "只歸檔完成的子目錄,保留仍在使用的 `coordination.md`"
|
|
30
|
-
- "spec 寫了未來計畫,但 repo 還沒實作" -> "不把該內容當成正式文件,只在需要時標成 `TBD` 或保留在 active planning"
|
|
31
|
-
|
|
32
26
|
## 參考資料索引
|
|
33
27
|
|
|
34
28
|
- `references/templates/readme.md`:README.md 模板
|
package/commit-and-push/SKILL.md
CHANGED
|
@@ -23,20 +23,14 @@ description: 提供提交指引以及作為提交前的必要品控閘門。當
|
|
|
23
23
|
|
|
24
24
|
### 3. 同步項目文檔
|
|
25
25
|
|
|
26
|
-
使用 `
|
|
26
|
+
使用 `align-project-documents`, `maintain-project-constraints` 這兩個技能,並遵照當中的指引,同步更新項目文檔,確保項目文檔時刻與repo保持一致。
|
|
27
27
|
|
|
28
28
|
### 4. 提交及推送變更
|
|
29
29
|
|
|
30
30
|
依使用者的 staging 邊界建立 commit,提交訊息遵循 `references/commit-messages.md`。
|
|
31
|
-
只有在使用者明確要求更新remote時才 push。
|
|
31
|
+
只有在使用者明確要求更新 remote 時才 push。
|
|
32
32
|
|
|
33
|
-
##
|
|
34
|
-
|
|
35
|
-
- 「只把已 staged 的 `foo.ts` 提交」-> 只能提交已暫存內容,不能順手把未 staged 的 `bar.ts` 一起帶進來
|
|
36
|
-
- 「幫我 push 這個 branch」-> 先完成 review 與 readiness gate,再 push,最後用 hash 證明remote已同步
|
|
37
|
-
- 「順便幫我發版」-> 不使用本技能,改走 `version-release`
|
|
38
|
-
|
|
39
|
-
## 參考資料索引
|
|
33
|
+
## 參考資料
|
|
40
34
|
|
|
41
35
|
- `references/commit-messages.md`:提交訊息格式
|
|
42
36
|
- `references/branch-naming.md`:分支命名慣例
|
|
Binary file
|
package/generate-spec/SKILL.md
CHANGED
|
@@ -4,18 +4,23 @@ description: 當你需要將用戶模糊的複雜需求拆解成有嚴格實作
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## 目標
|
|
7
|
+
|
|
7
8
|
將用戶需求轉化為明確、有清晰完成條件的spec。
|
|
8
9
|
|
|
9
10
|
## 驗收條件
|
|
11
|
+
|
|
10
12
|
- 已經產出了嚴格遵循模板格式的spec。
|
|
11
13
|
- 為spec當中的需求制定了明確的驗收條件及測試策略
|
|
12
14
|
|
|
13
15
|
## 工作流程
|
|
14
|
-
|
|
16
|
+
|
|
17
|
+
### 1. 理解用戶需求並閱讀repo
|
|
18
|
+
|
|
15
19
|
分析用戶需求,並在 repo 之中搜索、列出可能相關的內容。完成搜索之後,深入閱讀相關代碼,識別變更範圍。
|
|
16
20
|
如果外部環境存在 subagents 功能,建議通過調度 subagents 來完成深入閱讀 repo 的任務。
|
|
17
21
|
|
|
18
|
-
2. 拆分用戶需求及設計業務架構
|
|
22
|
+
### 2. 拆分用戶需求及設計業務架構
|
|
23
|
+
|
|
19
24
|
將用戶需求轉化、拆分為明確、存在邊界的工程需求。結合現有代碼,設計業務架構。在設計的過程中,你需要考慮包括但不限於以下設計事項:
|
|
20
25
|
- 錯誤處理
|
|
21
26
|
- 測試策略
|
|
@@ -23,22 +28,35 @@ description: 當你需要將用戶模糊的複雜需求拆解成有嚴格實作
|
|
|
23
28
|
- 資料流
|
|
24
29
|
在這個階段,如果用戶有任何不清晰的需求,且該需求會影響你的設計方案,你需要紀錄並在稍後填入spec,等待用戶的回答。
|
|
25
30
|
|
|
26
|
-
3. 將整個設計方案拆分成可執行任務
|
|
31
|
+
### 3. 將整個設計方案拆分成可執行任務
|
|
32
|
+
|
|
27
33
|
將上一步之中你構思的完整設計方案拆分為精確到函式或檔案級別的任務。你必須確保每一個任務都是可以直接執行,且沒有歧義的。以此確保執行設計方案的開發者不會偏離設計方案。
|
|
28
34
|
|
|
29
|
-
4. 制定驗收條件
|
|
30
|
-
|
|
35
|
+
### 4. 制定驗收條件
|
|
36
|
+
|
|
37
|
+
使用 `test-case-strategy` 這個技能,為任務制定基於測試的驗收條件,確保每一個任務在完成之後都能夠被驗證。
|
|
31
38
|
同時,為需求制定驗收條件,確保用戶需求能夠被測試清晰地驗收、檢驗成果。
|
|
32
39
|
|
|
33
|
-
5. 使用 `apltk` cli工具協助完成spec
|
|
34
|
-
|
|
40
|
+
### 5. 使用 `apltk` cli 工具協助完成 spec
|
|
41
|
+
|
|
42
|
+
使用 cli 工具,產生 spec 的模板。將你的完整計劃填入到模板之中。
|
|
35
43
|
如果該 spec 設計超過三個模塊,則需要創建 batch spec。
|
|
36
44
|
|
|
45
|
+
### 6. 使用 `apltk` cli 工具協助完成 spec architecture diff
|
|
46
|
+
|
|
47
|
+
通過 cli 工具生成完整的 architecture diff 讓用戶審閱本次 spec 的架構設計。
|
|
48
|
+
|
|
49
|
+
架構圖需要清楚描述:
|
|
50
|
+
- 功能模塊之間的關係變動、設計、交互。
|
|
51
|
+
- 子模塊之間的關係變動、設計、交互。
|
|
52
|
+
|
|
37
53
|
## 範例
|
|
54
|
+
|
|
38
55
|
- "製作一個網頁德州撲克小遊戲" -> "拆分成多個模塊:遊戲本體邏輯、前端頁面渲染、前端頁面交互邏輯;制定單元測試、整合測試等策略,並製作一份單一的spec指導實作工作。"
|
|
39
56
|
- "提升現有系統的性能" -> "識別目前 repo 之中拖累性能的代碼。製作 batch spec 文檔,將 repo 的全量優化拆分為以三個模塊為一組的優化。對於必須改動業務邏輯才可以做到的性能提升,填寫 clarification questions,並等待用戶回答之後更新 spec。"
|
|
40
57
|
|
|
41
58
|
## 參考資料
|
|
59
|
+
|
|
42
60
|
- `scripts/create-specs` - `apltk create-specs` 背後使用的模板產生器。
|
|
43
61
|
- `references/templates/spec.md` - `spec.md` 的綁定模板。
|
|
44
62
|
- `references/templates/tasks.md` - `tasks.md` 的綁定模板。
|
|
@@ -48,6 +66,6 @@ description: 當你需要將用戶模糊的複雜需求拆解成有嚴格實作
|
|
|
48
66
|
- `references/templates/coordination.md` - batch root 的 coordination 模板。
|
|
49
67
|
- `references/templates/preparation.md` - batch root 的前置工作模板。
|
|
50
68
|
- `references/TEMPLATE_SPEC.md` - `apltk` cli工具相關格式指引。
|
|
51
|
-
- `test-case-strategy/SKILL.md` - 測試策略選擇技能。
|
|
52
69
|
- `apltk create-specs --help` - spec生成相關cli工具的指引命令
|
|
53
|
-
- `apltk architecture --help` - 架構圖生成相關cli工具的指引命令
|
|
70
|
+
- `apltk architecture --help` - 架構圖生成相關cli工具的指引命令
|
|
71
|
+
- `references/definition.md` - 架構圖之中功能模塊及子模塊的具體定義
|
|
Binary file
|
|
@@ -1,40 +1,36 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: init-project-html
|
|
3
|
-
description:
|
|
4
|
-
使用 `apltk architecture` 初始化專案 HTML 架構圖譜,生成基礎 atlas YAML 與渲染後的 HTML 頁面。所有宣告基於倉庫證據;每個功能模組由一個可寫子 agent 負責,主 agent 必須等待全部子 agent 完成後,才能補跨功能連接並執行 render 與 validate。
|
|
3
|
+
description: 當你需要為項目初始化架構圖時,使用此技能。
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
## 技能目標
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
在 `apltk` cli 的幫助下製作項目架構圖,幫助用戶理解項目的軟件架構
|
|
10
9
|
|
|
11
10
|
## 驗收條件
|
|
12
11
|
|
|
13
|
-
-
|
|
14
|
-
- 所有宣告可追溯到真實程式碼、設定、SQL 或外部邊界;無法確認的部分用 `TBD` 或在 `meta.summary` 記錄遺漏原因。
|
|
15
|
-
- 宏觀圖完整表達功能與子模組關係;所有跨邊界互動使用 `call`、`return`、`data-row`、`failure` 邊表達。
|
|
16
|
-
- 每個非平凡子模組具備足夠內部結構:已宣告 `function`、`variable`、有序 `dataflow`、必要時的 `error`,且引用可通過校驗。
|
|
17
|
-
- 採用「每個功能一個可寫子 agent」分工;主 agent 等所有子 agent 完成後才補跨功能邊,且 `apltk architecture validate` 通過。
|
|
12
|
+
- 架構圖清楚描述了功能模塊之間的關係及子模塊之間的關係
|
|
18
13
|
|
|
19
14
|
## 工作流程
|
|
20
15
|
|
|
21
|
-
1.
|
|
22
|
-
2. 做整倉淺層盤點,列出功能模組的 slug、使用者視角職責、入口點與主要邊界資源。
|
|
23
|
-
3. 為每個功能派發一個可寫子 agent,負責宣告該功能的全部子模組、函式、變數、資料流、本地錯誤與功能內邊。子 agent 返回子模組摘要及需要主 agent 補上的跨功能邊界資訊。
|
|
24
|
-
4. 主 agent 不得重讀已委派功能的原始碼,也不得重複宣告子 agent 已處理的功能內元件。
|
|
25
|
-
5. 全部子 agent 完成後,主 agent 統一補齊跨功能 edge、必要時補共享 meta 或 actor,然後執行 `apltk architecture render` 與 `apltk architecture validate`。
|
|
26
|
-
6. 抽查渲染結果,確認宏觀圖和至少一個代表性子模組頁滿足驗收條件,彙報功能數、子模組數、邊數量、未覆蓋路徑與原因。
|
|
16
|
+
### 1. 閱讀並理解代碼庫
|
|
27
17
|
|
|
28
|
-
|
|
18
|
+
按照功能模塊的定義,全面檢索並將代碼庫拆分為單個或多個功能模塊。接著,開始對功能模塊下的子模塊進行識別及深度閱讀。
|
|
19
|
+
如果外部環境允許使用 subagents ,建議為每一個功能模塊分配一個 subagents 進行深度閱讀,並要求 subagents 完整列出:
|
|
20
|
+
- 該功能模塊與其他功能模塊之間是否存在交互;如有,如何交互。
|
|
21
|
+
- 該功能模塊內部存在哪些子模塊,這些子模塊之間如何交互並實現功能模塊的功能。
|
|
22
|
+
- 該功能模塊及下屬子模塊的資料流、錯誤處理。
|
|
29
23
|
|
|
30
|
-
|
|
31
|
-
- 「把系統的資料流、呼叫關係和回滾路徑視覺化」→ 使用 `call` / `return` / `data-row` / `failure` 邊表達跨邊界關係,為每個關鍵子模組補齊內部 `dataflow`。
|
|
24
|
+
### 2. 使用 `apltk` cli 工具協助生成架構圖
|
|
32
25
|
|
|
33
|
-
|
|
26
|
+
將前一步獲取到的代碼庫只是通過 cli 工具轉化為清晰的架構圖。
|
|
27
|
+
完成之後,驗證架構圖格式正確、可渲染。
|
|
28
|
+
|
|
29
|
+
## 參考資料
|
|
34
30
|
|
|
35
31
|
- `references/TEMPLATE_SPEC.md`:atlas 欄位、列舉和 CLI 寫入形狀速查表。
|
|
36
|
-
- `
|
|
37
|
-
- `
|
|
32
|
+
- `references/definition.md`: 功能模塊和子模塊的詳細定義。
|
|
33
|
+
- `references/architecture-page.template.html`: 模板html。
|
|
34
|
+
- `references/architecture.css`: 風格模板。
|
|
38
35
|
- `sample-demo/`:完整示例輸出,用於理解基礎 atlas 的最終形態。
|
|
39
|
-
- `
|
|
40
|
-
- `update-project-html/SKILL.md`:面向已存在基礎 atlas 的增量刷新版本。
|
|
36
|
+
- `apltk architecture --help` - cli 工具的指引指令。
|
|
Binary file
|
|
@@ -1,35 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maintain-project-constraints
|
|
3
|
-
description:
|
|
4
|
-
依據倉庫現況刷新根目錄 `AGENTS.md` / `CLAUDE.md`,只保留 Common Development Commands、Project Business Goals、Project Documentation Index 三個可追溯區塊。
|
|
3
|
+
description: 當你需要更新 `CLAUDE.md` 或 `AGENTS.md` 這兩份項目規範文檔的時候,調用這個技能。
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
## 技能目標
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
基於當前 repo 的最新文檔和及代碼,維護項目規範文檔。
|
|
10
9
|
|
|
11
10
|
## 驗收條件
|
|
12
11
|
|
|
13
|
-
-
|
|
14
|
-
- `Common Development Commands` 中每條命令可追溯到 `package.json`、`Makefile`、`bin/`、`scripts/` 或 CI 設定等真實入口。
|
|
15
|
-
- `Project Business Goals` 只描述專案層級目的、服務對象與交付結果,不展開為功能清單。
|
|
16
|
-
- `Project Documentation Index` 覆蓋現存 `docs/features/`、`docs/architecture/`、`docs/principles/` 與重要根目錄文件,每項對應真實路徑。
|
|
17
|
-
- 過時路徑、虛構命令與多餘區塊已被移除。
|
|
18
|
-
- 若 `AGENTS.md` 與 `CLAUDE.md` 同時存在且未聲明故意分歧,兩者三個區塊內容一致。
|
|
12
|
+
- `CLAUDE.md`, `AGENTS.md` 已經被更新到最新狀態
|
|
19
13
|
|
|
20
14
|
## 工作流程
|
|
21
15
|
|
|
22
|
-
1.
|
|
23
|
-
2. 根據證據生成三個必需區塊,確保每條命令、商業目標與文件索引可被直接追溯。
|
|
24
|
-
3. 按專案慣例更新或補齊 `AGENTS.md` / `CLAUDE.md`,正文限制在三個規定區塊內。
|
|
25
|
-
4. 完成前逐項校驗命令來源、文件路徑與雙文件一致性,清除所有陳舊或多餘內容。
|
|
16
|
+
### 1. 閱讀 repo
|
|
26
17
|
|
|
27
|
-
|
|
18
|
+
深入閱讀當前項目文檔及實作代碼,並建立對於項目的全面認知。
|
|
19
|
+
如果外部環境允許使用 subagents,建議通過調度 subagents 完成對 repo 代碼的深入閱讀。
|
|
28
20
|
|
|
29
|
-
|
|
30
|
-
- 「這個專案的 `CLAUDE.md` 已經過時,請補一份對應的 `AGENTS.md`」→ 依據現有命令與文件結構建立缺失文件,讓兩份約束文件在預期一致時保持同構。
|
|
31
|
-
- 「請清理根目錄約束文件裡的舊命令與失效路徑」→ 驗證每條命令與索引路徑是否仍成立,只保留能被倉庫證據支持的內容。
|
|
21
|
+
### 2. 更新項目規範文檔
|
|
32
22
|
|
|
33
|
-
|
|
23
|
+
按照模板當中給出的格式,更新或創建 `CLAUDE.md`, `AGENTS.md`。
|
|
34
24
|
|
|
35
|
-
|
|
25
|
+
## 參考資料
|
|
26
|
+
|
|
27
|
+
- `references/constraint-file-reference.md`:三區塊契約、撰寫規則、核對清單與輸出模板。
|
|
@@ -1,40 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: merge-changes-from-local-branches
|
|
3
|
-
description:
|
|
4
|
-
將使用者指定的本地分支合併回當前分支,依序完成衝突處理、驗證、安全清理與最終提交準備;除非本次對話明確要求,否則不推送遠端。
|
|
3
|
+
description: 當你需要將 spec 相關的本地實作分支合併回當前所在分支時,調用這個技能。
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
## 技能目標
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
將 spec 相關的本地實作分支合併回當前所在分支。
|
|
10
9
|
|
|
11
10
|
## 驗收條件
|
|
12
11
|
|
|
13
|
-
-
|
|
14
|
-
- 合併範圍只包含使用者明確指定,或可由 `coordination.md` / spec 無歧義映射出的分支;若映射不清楚則停止並回報。
|
|
15
|
-
- 當 batch 規劃存在 `Merge order` / landing order 時,實際整合順序與規劃一致;順序衝突或不明確時不猜測執行。
|
|
16
|
-
- 所有衝突以保留正確行為為原則解決,並在刪除來源分支或交給 `commit-and-push` 前完成驗證。
|
|
17
|
-
- 只清理已成功合併且已驗證的來源分支或 worktree;不強制刪除尚未真正合入的來源。
|
|
18
|
-
- 最終交付是原始當前分支上的整合結果與簡潔摘要;只有使用者於本次對話明確要求時才推送遠端。本技能不單獨執行 `archive-specs`。
|
|
12
|
+
- 分支的變更被合併,且所有潛在衝突代碼被解決。
|
|
19
13
|
|
|
20
14
|
## 工作流程
|
|
21
15
|
|
|
22
|
-
1.
|
|
23
|
-
2. 確認工作樹適合執行合併:若存在干擾整合的未提交變更,停止並回報,不自行 stash 或切換分支。
|
|
24
|
-
3. 依既定順序逐一合併 in-scope 分支。對已合入或無新增內容的分支,跳過並記錄原因。發生衝突時閱讀雙方內容編輯出正確結果;無法在不猜測意圖的前提下解決時停止並回報。必要時使用 `merge-conflict-resolver`。
|
|
25
|
-
4. 先對衝突區域或高風險改動執行針對性驗證,再對整體整合結果執行倉庫慣用的標準驗證。驗證失敗先在當前分支修正。
|
|
26
|
-
5. 僅清理已完成合併且通過驗證的來源分支與對應 worktree;安全刪除被拒絕時保留來源並回報,不使用強制刪除。
|
|
27
|
-
6. 交由 `commit-and-push` 完成必要審查、submission-readiness gate 與本地提交。若 `commit-and-push` 不可用則停止並回報,不走裸 `git commit`。
|
|
28
|
-
7. 總結已合併與跳過的分支、順序依據、衝突處理原則、驗證結果,以及流程最終停在本地 `HEAD` 還是包含遠端推送。
|
|
16
|
+
### 1. 建立規格文檔基線認知
|
|
29
17
|
|
|
30
|
-
|
|
18
|
+
閱讀目前用戶指定的 spec,並查看目前分支狀態,找到與 spec 相關的分支。
|
|
31
19
|
|
|
32
|
-
|
|
33
|
-
- 「根據 batch 的 `coordination.md` 把各 worktree 分支合回來,但先不要 push」→ 從 batch 規劃確認無歧義分支映射與 landing order,依序合併、驗證、清理,只做到本地提交。
|
|
34
|
-
- 「把那幾個應該相關的分支一起合一下」→ 若無法從使用者輸入或規劃文件明確判定分支集合與順序,停止並回報需要補充資訊。
|
|
20
|
+
### 2. 合併分支及處理衝突
|
|
35
21
|
|
|
36
|
-
|
|
22
|
+
按照 `coordination.md` 的建議順序,對分支進行合併。
|
|
23
|
+
在解決分支衝突時,必須確保 spec 要求的功能沒有被破壞。
|
|
37
24
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
25
|
+
### 3. 提交變更
|
|
26
|
+
|
|
27
|
+
使用 `commit-and-push` 這個技能,將變更提交到當前分支上,不需要 push 到 remote。
|
|
Binary file
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,55 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: systematic-debug
|
|
3
|
-
description:
|
|
4
|
-
用於系統化排查程式問題。先釐清預期與實際行為,再對所有合理原因做可重現驗證,
|
|
5
|
-
找出真正根因並以最小修復完成驗證;凡是出現 observed-vs-expected mismatch 都應優先使用。
|
|
3
|
+
description: 當你需要系統性排查用戶指出的非預期行為時,調用這個技能。
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
# 系統化除錯
|
|
9
|
-
|
|
10
|
-
## Dependencies
|
|
11
|
-
|
|
12
|
-
- Required: 無
|
|
13
|
-
- Conditional: 視情況可搭配 `test-case-strategy`、`analyse-app-logs`
|
|
14
|
-
- Optional: 無
|
|
15
|
-
- Fallback: 無
|
|
16
|
-
|
|
17
|
-
## Standards
|
|
18
|
-
|
|
19
|
-
- Evidence: 先收集預期與實際行為、程式碼路徑、測試輸出與單一可信 runtime artifact,再判斷原因
|
|
20
|
-
- Execution: 為每個合理假設建立可重現證據,定位最後一個成功階段,再區分工具鏈、測試契約、測試隔離與產品邏輯問題
|
|
21
|
-
- Quality: 修復只針對真實根因;不能重現的假設必須明確排除;不得混用不同執行批次的證據
|
|
22
|
-
- Output: 產出根因候選、重現方式、最終分類、最小修復、驗證結果,以及在 runtime 問題中使用的 canonical evidence
|
|
23
|
-
|
|
24
6
|
## 技能目標
|
|
25
7
|
|
|
26
|
-
|
|
8
|
+
用流程化的方式重現用戶發現的非預期行為,並通過回歸測試避免該問題再次出現。
|
|
27
9
|
|
|
28
10
|
## 驗收條件
|
|
29
11
|
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
- 已區分問題屬於工具鏈 / 平台、測試契約過期、測試干擾、流程編排,還是真正的產品邏輯缺陷
|
|
33
|
-
- 最終修復是最小且聚焦的,並由失敗後轉成功的測試或 bounded rerun 證明有效
|
|
12
|
+
- 非預期行為被修復。
|
|
13
|
+
- 相關回歸測試被建立。
|
|
34
14
|
|
|
35
15
|
## 工作流程
|
|
36
16
|
|
|
37
|
-
1.
|
|
38
|
-
2. 把流程拆成具體階段,例如 setup、startup、readiness、steady-state、persistence、shutdown,找出最後一個已確定成功的階段
|
|
39
|
-
3. 為每個合理根因建立重現方式;能用測試重現就優先用測試,涉及真實執行流程時則用相同模式的 bounded rerun,而不是中途切換到不同 fidelity 的環境
|
|
40
|
-
4. 若失敗只在平行執行、共享 shell-out、共享暫存路徑或舊報告路徑下出現,先調查測試隔離、共享狀態與 artifact routing 問題
|
|
41
|
-
5. 用重現證據確認真正根因,並明確排除非原因;若測試失敗其實來自 stale assertion 或 fixture drift,先修正測試契約,不要反向削弱產品行為
|
|
42
|
-
6. 實作最小修復並反覆驗證,直到所有重現案例、相關測試或 bounded rerun 都通過
|
|
43
|
-
7. 向使用者回報根因清單、最終分類、修復摘要、驗證結果,以及任何仍受限於執行環境或資料品質的部分
|
|
17
|
+
### 1. 分析問題
|
|
44
18
|
|
|
45
|
-
|
|
19
|
+
按照用戶給出的資訊,結合相關代碼實作片段閱讀,排查可能導致問題的原因。
|
|
46
20
|
|
|
47
|
-
|
|
48
|
-
- 「測試單獨跑會過,但整個 suite 會 flaky」-> 優先排查共享狀態、鎖、暫存目錄與環境污染,而不是先改產品邏輯
|
|
49
|
-
- 「bounded run 幾乎沒有事件發生」-> 先沿著 lifecycle funnel 判斷停在哪個階段,再確認是 profile 過度破壞、編排錯誤,還是實際業務邏輯問題
|
|
21
|
+
### 2. 滲透測試
|
|
50
22
|
|
|
51
|
-
|
|
23
|
+
整理所有可能導致問題的原因,撰寫測試案例嘗試重現該問題。
|
|
24
|
+
如果你發現所有你構思的可能性均無法重現該非預期行為,你需要重新構思,直至該非預期行為被測試有效重現。
|
|
52
25
|
|
|
53
|
-
|
|
54
|
-
- `analyse-app-logs`:問題主要來自應用日誌時使用
|
|
26
|
+
### 3. 修復代碼
|
|
55
27
|
|
|
28
|
+
對代碼進行修復,直至重現測試全數通過。
|
|
@@ -1,56 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-case-strategy
|
|
3
|
-
description:
|
|
4
|
-
為實作工作選擇最小且足夠的測試組合。當 spec、功能開發、功能增強、重構或 bug 修復
|
|
5
|
-
需要明確決定單元、回歸、property、integration、E2E、對抗性測試或 drift check 時使用。
|
|
3
|
+
description: 當你需要設計測試策略時,調用這個技能。
|
|
6
4
|
---
|
|
7
5
|
|
|
8
|
-
# 測試案例策略
|
|
9
|
-
|
|
10
|
-
## Dependencies
|
|
11
|
-
|
|
12
|
-
- Required: 無
|
|
13
|
-
- Conditional: 無
|
|
14
|
-
- Optional: 無
|
|
15
|
-
- Fallback: 無
|
|
16
|
-
|
|
17
|
-
## Standards
|
|
18
|
-
|
|
19
|
-
- Evidence: 只根據需求、風險、受影響模組、依賴形態與現有覆蓋情況選擇測試,不為了湊數加測試
|
|
20
|
-
- Execution: 先盤點風險與 oracle,再選最小可證明風險的測試層級,必要時才升級到更重的測試
|
|
21
|
-
- Quality: 每個測試都要有可重現、可驗證的明確 oracle,而不是從新寫出的實作反推
|
|
22
|
-
- Output: 產出可直接執行的測試決策,包含測試 ID、目標、層級、oracle、fixture/mock 策略、驗證命令與 `N/A` 理由
|
|
23
|
-
|
|
24
6
|
## 技能目標
|
|
25
7
|
|
|
26
|
-
|
|
8
|
+
基於當前需求,規劃完整的測試策略。
|
|
27
9
|
|
|
28
10
|
## 驗收條件
|
|
29
11
|
|
|
30
|
-
-
|
|
31
|
-
- 每個測試決策都選擇了最小但足以證明風險的測試層級,而不是預設往大測試堆
|
|
32
|
-
- 每個測試都有明確 oracle、fixture 或 mock 策略,以及可執行的驗證方式
|
|
33
|
-
- 若某種測試層級不適用,已留下具體 `N/A` 理由而非含糊跳過
|
|
12
|
+
- 所有需求及實作任務存在關鍵性驗證測試
|
|
34
13
|
|
|
35
14
|
## 工作流程
|
|
36
15
|
|
|
37
|
-
1.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
4. 在實作前先定義 oracle,來源只能是 `spec.md`、`design.md`、`contract.md`、官方文件或既有正確行為,不能從新實作反推
|
|
41
|
-
5. 對每個非平凡原子任務補上 unit drift check;若做不到,必須記錄最小替代檢查與具體原因
|
|
42
|
-
6. 用統一格式記錄測試決策,讓後續技能可以直接執行與驗證
|
|
16
|
+
### 1. 理解用戶需求並閱讀相關代碼
|
|
17
|
+
|
|
18
|
+
理解用戶需求。同時,閱讀相關代碼實作,了解可用測試方式。
|
|
43
19
|
|
|
44
|
-
|
|
20
|
+
### 2. 設計測試策略
|
|
45
21
|
|
|
46
|
-
|
|
47
|
-
- 「新增排序與去重邏輯」-> 使用 property-based tests 驗證單調性、資料保留與重播不變量
|
|
48
|
-
- 「改動 repository、service 與 API handler 的協作」-> 使用 integration tests 驗證跨模組資料流與錯誤處理
|
|
49
|
-
- 「高價值結帳流程可能被權限與狀態機影響」-> 僅在 unit / integration 不足以證明風險時才加最小 E2E
|
|
22
|
+
閱讀相關參考資料,了解在不同場景下常見的測試策略,並由此設計用戶需求及實作任務的驗證測試。
|
|
50
23
|
|
|
51
|
-
##
|
|
24
|
+
## 參考資料
|
|
52
25
|
|
|
53
26
|
- `references/unit-tests.md`:單元測試與 drift check 設計
|
|
54
27
|
- `references/property-based-tests.md`:property tests 的選擇與 oracle 設計
|
|
55
28
|
- `references/integration-tests.md`:整合測試與外部狀態場景設計
|
|
56
|
-
- `references/e2e-tests.md`:E2E 決策與替代規則
|
|
29
|
+
- `references/e2e-tests.md`:E2E 決策與替代規則
|
|
Binary file
|
|
@@ -1,40 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: update-project-html
|
|
3
|
-
description:
|
|
4
|
-
使用 `apltk architecture` 按真實程式碼 diff 刷新基礎專案 HTML 架構圖譜。先確定 diff 範圍並過濾出真正影響執行時行為的變更,再按受影響功能分派可寫子 agent 處理功能內更新;主 agent 必須等待全部子 agent 完成後,才能補跨功能邊並執行 `render` 與 `validate`。該技能只更新基礎 atlas,不使用 `--spec`。
|
|
3
|
+
description: 當你發現項目架構圖過時,與實際代碼實作脫節,需要更新時,調用這個技能。
|
|
5
4
|
---
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## 技能目標
|
|
6
|
+
## 目標
|
|
10
7
|
|
|
11
8
|
根據目前分支、工作區或指定提交範圍內的真實程式碼變更,增量刷新 `resources/project-architecture/` 下的基礎 atlas 與渲染 HTML,使圖譜持續和實際程式碼保持一致。
|
|
12
9
|
|
|
13
10
|
## 驗收條件
|
|
14
11
|
|
|
15
|
-
-
|
|
16
|
-
- 在讀取原始碼前就明確本次 diff 範圍,並在報告中保留所執行的原始命令;過濾掉純文件、靜態資源、鎖檔、生成物和純格式化變更,同時記錄被跳過的類別與原因。
|
|
17
|
-
- 選定範圍內每個真正影響行為的 hunk,都要麼體現在功能內元件更新或跨功能邊變化上,要麼在交付報告中明確標註「對圖譜無影響」及原因。
|
|
18
|
-
- 按「每個受影響功能一個可寫子 agent」執行;主 agent 必須等全部子 agent 完成後,才允許修改跨功能 `edge`、共享 `meta` 或補充跨功能上下文。
|
|
19
|
-
- 更新後的圖譜繼續滿足 `init-project-html` 的語義要求,且 `apltk architecture validate` 通過。
|
|
12
|
+
- 所有架構圖已經貼合最新的代碼實作狀態。
|
|
20
13
|
|
|
21
14
|
## 工作流程
|
|
22
15
|
|
|
23
|
-
1.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
16
|
+
### 1. 查看現有架構圖
|
|
17
|
+
|
|
18
|
+
閱讀現有架構圖,整理當前功能模塊之間的關係、子模塊之間的關係等重要資訊。
|
|
19
|
+
|
|
20
|
+
### 2. 對照代碼庫及當前架構圖
|
|
21
|
+
|
|
22
|
+
閱讀當前 repo,驗證當前架構圖是否存在錯誤、遺漏。
|
|
23
|
+
如果外部環境允許使用 subagents,建議通過調度 subagents 完成代碼與架構圖的對照任務。
|
|
29
24
|
|
|
30
|
-
|
|
25
|
+
### 3. 通過 `apltk` cli 工具更新當前架構圖
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
-
|
|
27
|
+
使用 `apltk` cli工具,協助完成整個架構圖的更新,確保架構圖完全描述了:
|
|
28
|
+
- 功能模塊之間的關係
|
|
29
|
+
- 子模塊之間的關係
|
|
30
|
+
- 項目資料庫、錯誤處理
|
|
34
31
|
|
|
35
|
-
##
|
|
32
|
+
## 參考資料
|
|
36
33
|
|
|
37
|
-
- `
|
|
38
|
-
- `
|
|
39
|
-
- `README.md`:本技能的簡要用途說明。
|
|
40
|
-
- `apltk architecture --help`:命令、參數和子命令的唯一真源。
|
|
34
|
+
- `references/definition.md` - 功能模塊與子模塊的定義
|
|
35
|
+
- `apltk architecture --help` - cli 工具的指引
|