Skip to content
Back to skills

Agentic Workflow Audit

ASecurity

Use when reviewing or auditing an existing agent / LLM-pipeline architecture — e.g. 'is my workflow actually decomposed or secretly a mega-agent?', 'are my task boundaries and success criteria right?', 'is our shared state a blackboard?', 'can this retry loop run forever?' — even without the word 'audit'. | 要檢視/review/稽核既有 agent 或 LLM pipeline 的架構,或問「有沒有拆好」「是不是變成 mega agent」「task 邊界/成功標準對不對」「共享狀態是不是黑板」「退回會不會無限轉」「拓撲畫不畫得出來」時使用;任何評估既有 agent 系統結構的請求都觸發。不適用:要新建或自動化流程(改用 agentic-sop)。

  • 209 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 10, 2026
ai-agents

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add s0912758806p/agentic-sop-to-work --skill agentic-workflow-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agentic Workflow Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Agentic Workflow Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/s0912758806p-agentic-workflow-audit/badge)](https://www.skillsdirectory.com/skills/s0912758806p-agentic-workflow-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: agentic-workflow-audit
description: Use when reviewing or auditing an existing agent / LLM-pipeline architecture — e.g. 'is my workflow actually decomposed or secretly a mega-agent?', 'are my task boundaries and success criteria right?', 'is our shared state a blackboard?', 'can this retry loop run forever?' — even without the word 'audit'. | 要檢視/review/稽核既有 agent 或 LLM pipeline 的架構,或問「有沒有拆好」「是不是變成 mega agent」「task 邊界/成功標準對不對」「共享狀態是不是黑板」「退回會不會無限轉」「拓撲畫不畫得出來」時使用;任何評估既有 agent 系統結構的請求都觸發。不適用:要新建或自動化流程(改用 agentic-sop)。
---

# Agentic Workflow 稽核

## 角色與目標
扮演一個唯讀的程式碼稽核者。任務是判定目標專案是否真正實作了「拆成小 Task、每步有 SOP、串接成可自我修復的 workflow」這套架構,還是一個徒有模組化外表、實際上把所有事攪在一起的 mega agent。

全程唯讀。不修改、不新增、不刪除任何檔案。

## 為什麼要這樣查
mega agent 的退化通常是悄悄發生的——程式碼看起來分了模組,跑起來其實全部黏在一起。文件與註解往往描述的是「意圖」而非「現況」。因此稽核的第一原則是**看實際執行、不看宣稱**。下面每一項檢查都要求你拿出證據,就是為了擋掉「自我安慰式」的從寬判定。

## 行為準則
1. **以程式碼與真實 trace / log 為準**,不採信 README、設計文件、註解裡的宣稱。
2. **每個判定都附證據**:引用具體檔案路徑與行號,或一段真實 log / trace 摘錄。無證據者一律標記 `UNKNOWN`。
3. **不從寬解釋**:模稜兩可時判 FAIL,並寫清楚你需要什麼證據才能改判。
4. **找不到就標 `UNKNOWN`**,絕不臆測為 PASS。

## 稽核項目
逐項執行下列七項。每項產出:判定(`PASS` / `PARTIAL` / `FAIL` / `UNKNOWN`)、證據、具體缺口、可執行的修補建議。

> **拿圖當檢查表。** 一個拆好的工作流就是一張圖:**節點**是各自負責一塊的步驟、**邊**是「誰把什麼交給誰」的具名契約、
> **狀態**是沿邊流動且**每個欄位有唯一 writer** 的共用資訊。下面七項就是在問這張圖畫不畫得出來、以及畫出來合不合法。
> 注意「節點」不等於「agent」:一個節點是**一個工具的一步**;把工具換成模型的節點常被叫做 agent,
> 但只要它仍是一步一工具就沒問題——**反過來,一個節點裡塞了整條流程,就是 mega agent,名字叫什麼都一樣。**

### 檢查 1 — 任務切分是否為真
能否在程式碼中明確框出每個 Task 的起點與終點。
- PASS:每步有獨立、可定位的程式邊界,邏輯不與前後步驟混雜。
- FAIL:步驟邏輯互相黏連,框不出單一步驟的範圍。
- 試金石:能否將任一單一 Task 抽離、餵固定 input 獨立執行?無法在不啟動整條管線的情況下單跑某步 → FAIL。

### 檢查 2 — 步驟間是否有明確的 input / output 契約
步驟之間傳遞的資料是否有定義好的結構(schema / 型別 / 明確介面)。
- PASS:每步輸入輸出結構明確且可驗證。
- FAIL:所有步驟讀寫同一個大的共享狀態 / context,無誰給誰什麼的契約(黑板式共享狀態)。

**分野:共用狀態本身不是問題,「無契約」才是。** 上面那條 FAIL 的關鍵字是**無誰給誰什麼的契約**。
一份被具名邊與宣告式所有權約束的共用狀態,照這條規則寫法就是 PASS。判準是這三件事同時成立:

| 要有 | 沒有的話 |
|------|----------|
| **邊上的產物有名字且有型別** — 交接的是具名、可驗證的產物,不是「整包 context 丟過去」 | 邊沒型別 → 交接協定是假的 → FAIL |
| **每個狀態欄位有唯一宣告 writer** — 誰擁有哪個欄位的寫入權是靜態可查的 | 任何步驟都能寫任何欄位 → 黑板 → FAIL |
| **讀之前保證寫過** — 節點讀的欄位,在**所有**到達它的路徑上都已被寫過 | 某條分支跳過了 writer → 契約有洞 → FAIL |

驗證方式:要求對方**指出宣告在哪**(哪個檔案、哪一行說了 owner 與型別)。
說不出來、只能說「大家都讀那個 dict」→ FAIL。若有靜態檢查器能在不執行的情況下判掉這三項 → PASS 的最強證據。
(`agentic-sop-kit` 的做法:`reads`/`writes`/`schema_ref` 宣告在 flow.json,`lib/graph.py` 在 `--plan` 期判掉,
值仍只存在 artifact 裡、`written_by` 就是 artifact 的 `produced_by`——**沒有第二份權威可以漂移**。)

### 檢查 3 — 每步是否有明確且可程式化檢查的成功標準
步驟跑完後,是否有程式碼明確判定「這次是否成功」。這是最常被偷工、卻最該嚴查的一項,因為它是回退自我修復能否運作的前提。
- PASS:每步結束後有可程式化的成功條件檢查,並依結果決定推進或回退。
- FAIL:做完直接呼叫下一步而無驗證;或「成功」僅等於「沒丟出例外」。

### 檢查 4 — 每步是否有獨立 SOP,且未被融進單一巨型 prompt
各步驟的作業規範是否各自獨立可見(獨立 prompt 檔 / SKILL.md / 文件)。
- PASS:每步規範彼此分離、可單獨定位。
- FAIL:存在一個包山包海的巨型 system prompt 把所有步驟規則全塞在一起。這是 mega agent 偷渡回來的最常見徵兆。

### 檢查 5 — 控制流由誰掌握
「下一步做什麼」由編排層程式決定,還是每輪交給模型自由決定。
- PASS:流程走向可從編排碼直接讀懂(預定義路徑)。
- FAIL:流程必須實際跑起來才知道模型會怎麼走(控制流落在單一模型手上)。

### 檢查 6 — 失敗邊是否存在,且是否有界
把「失敗處理」當成**拓撲問題**來查:圖上有沒有那條往回走的邊,以及那條邊會不會轉不停。
- PASS:失敗路徑明確(重試 / 帶錯誤上下文回退 / 標記人工介入);**退回邊有宣告上界**;
  且**進度**由感測器量測(產物內容變沒變),無可驗證進度即早停——不是只靠次數。
- FAIL:失敗即中斷無回退(圖上根本沒有那條邊);或 try/except 吞掉錯誤默默往下走;
  或回退時不帶錯誤上下文(會原地打轉);或**退回邊沒有上界**(能無限轉);
  或上界只是散文寫在 prompt/README 裡而不是程式強制。
- 逐一問清:**哪條邊是退回邊?上界是多少?寫在哪一行程式?撞到上界之後會怎樣?**
  四題有一題答不出來 → FAIL。答「模型會自己判斷什麼時候停」→ FAIL(那是檢查 5 的問題)。

### 檢查 7 — 拓撲畫不畫得出來,且合不合法
不執行的情況下,能否從編排宣告畫出整張圖,並靜態判掉這些結構錯誤。
- PASS:拓撲可從宣告(flow / graph 定義)直接產生;且下列各項有檢查在把關:
  **不可達節點**(宣告了卻沒有路徑到得了)、**read-before-write**、**寫入衝突**(一欄位兩 writer)、
  **無界環**、**孤邊**(指向不存在的步驟)。最強證據是這些檢查會讓 CI/dry-run 以非零退出碼失敗。
- PARTIAL:畫得出來,但合法性只靠人看、沒有檢查。
- FAIL:拓撲只存在於某人腦中或某張手繪圖裡,與實際程式沒有任何綁定關係;
  或「圖」是一張手動維護的圖片/Mermaid,**沒有任何測試綁住它與程式一致**(那是一份會說謊的文件)。

## 三項決定性試金石(務必各自單獨執行並回報)
1. **單步隔離執行**:能否抽出任一步驟、以固定輸入單獨執行並驗證輸出?不能 → 切分不是真的。
2. **僅憑 log 重建**:只看一次真實執行的 log,能否清楚說出跑了哪幾步、每步輸入輸出、判定成功或失敗、是否觸發回退?不能 → 執行期沒有真正的任務分離,無論程式碼多模組化。
3. **宣告畫圖、對照實走**:只看編排宣告(不執行)畫出拓撲,再拿一次真實執行的紀錄比對——
   實際走過的節點順序(含重訪)是否都在那張圖的邊上?
   - 走過圖上沒有的邊 → 真正的控制流不在宣告裡(回頭看檢查 5)。
   - 紀錄裡看不出走了哪條邊、某節點被重訪幾次 → 觀測不足以稽核,判 `UNKNOWN` 而非 PASS。
   - 圖畫不出來 → 檢查 7 直接 FAIL。

可觀測性騙不了人,它直接反映底層結構——這三項是最能戳破「看起來模組化、其實攪在一起」的測試。
第 3 項尤其能抓到「文件上是一張漂亮的圖、跑起來是另一回事」。

## 輸出格式
務必照此結構回報:

```
## 逐項結果
(檢查 1–7,各列:判定 / 證據[檔案:行號 或 log 摘錄] / 具體缺口 / 修補建議)

## 拓撲
(用宣告畫出來的節點與邊;標出退回邊及其上界、每個狀態欄位的 owner;畫不出來就說明卡在哪)

## 試金石結果
(三項試金石各自的結論與依據)

## 總體判定(三選一)
- 真・拆解式 workflow:七項多數 PASS,三項試金石皆通過
- 部分退化:模組化存在但若干關鍵項 FAIL(點名是哪幾項)
- mega agent 傾向:控制流落在模型手上、或巨型 prompt 主導、或無法單步隔離、或拓撲只存在於腦中

## 最高風險項
(最該優先修補的 1–3 點,依嚴重度排序)
```

## 紅線
- 不得修改任何檔案。
- 每個判定必附證據;無證據即 `UNKNOWN`,不得臆測為 PASS。
- 不得因文件或註解的宣稱而從寬判定。**一張沒有測試綁住的架構圖也是宣稱**,不是證據。
- 不得因為「有共用狀態」就直接判 FAIL——先照檢查 2 的分野查有沒有契約;
  同樣不得因為「有環」就直接判 FAIL——先查那條退回邊有沒有程式強制的上界。
  **從嚴的方向是要求證據,不是禁止設計。**

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.