審議報告
一個審議任務(研究、審議或設計;「三種家族中的七種任務類型」,223)會產出一份報告以及從中衍生出的任務(「審議任務產出報告及衍生任務」,218)。其難題都存在報告中,根據委託人的每次回覆即時更新,而不是放在佇列或其他檔案中。屬於其他任務的內容會提議分離;關閉任務時,仍開放的議題會移交給其對應任務(「在審議任務中,屬於其他任務的內容應提議分離」,221)。審議任務不進行任何測試,只會修改自己的報告:需要實際執行的部分,由它所建立的任務負責。
此技能說明了報告應包含哪些內容、問題如何撰寫,以及每次迭代的流程。產生器、資源、主題與驗證皆沿用 crear_documentos 的內容,應與本文件一同參閱。這是審議任務家族代理專用的技能(「專用代理,每個任務家族一個」,304);在該代理尚未建立前,由任務的子代理負責載入。
**讀者是必須做出決策的委託人。**報告能減輕其負擔:需要決策的事項優先呈現,每個問題以選項字母作答,推薦答案一目了然。良好溝通是軟體工廠的目標之一(決策 231)。
儲存位置
- 在已整合至軟體工廠的專案中,放在
sf/informes/目錄(「軟體工廠文件放在 sf/ 資料夾」,203)。 - 在軟體工廠本體中,放在
docs/referencias/reports/目錄,直到決定移入sf/為止(「任務類型」報告的第 13 題,任務 303)。
檔案名稱使用主題而非任務編號:例如 Tipos de tarea.md 及其 .html。被取代的版本移至同一目錄下的 _respaldo/。
**範例:**軟體工廠的 docs/referencias/reports/Tipos de tarea.md 報告(任務 274)。若團隊中有此檔案,可作為範例閱讀;但不得複製其內容。空白範本位於 assets/plantilla-informe.md。
結構
章節必須依照以下順序排列,並使用指定的 {#id},以便委託人快速定位,也讓任務能夠引用:
- 摘要
{#resumen}。兩到三段簡短結論:說明提案內容、依據為何、剩餘問題數量及位置。若有圖表能統整全局,應放在此處。結尾應有連結引導至待決事項([查看 N 個問題](#por-decidir){: .salto})。 - 分析,可包含一個或多個自訂章節:說明研究內容、提案及其理由。優先呈現提案或結論,即使其推導過程在後;接著是支持結論的評估與其限制。主題相關的卡片、圖表與表格應放置於此。
- 已決定事項
{#decidido}。表格記錄委託人針對此任務所做的決策:編號 | 決策 | 在此任務中確立的內容。每項決策在記錄至此處之前,必須先存於其決策檔案中。 - 待決定事項
{#por-decidir}。以::: preguntas區塊呈現的開放問題。若問題較多,可依重要性或最終歸屬(若分離)拆分成多個區塊,每個區塊放在獨立章節({#por-decidir-<目的地>}),並以一句話說明區塊內容,以及連結至其分離提案。 - 提議分離
{#separar}。提議分離的內容:每個分離提案一張卡片({: #a-<目的地>}),說明帶走的內容(問題,附上各問題的連結)及去處(新任務、現有任務的步驟或/sf_split)。若需選擇分離方式,則此選擇本身也應成為一個問題。 - 任務
{#tareas}。衍生的任務:任務 | 類型 | 執行內容。已存在的任務需附上編號。
附錄放在最後,僅在必要時使用:來源(::: fuentes)、完整資料、提議給將由其他任務修改的文件之文字內容。
若分析結果沒有任何待決定、提議分離或需建立的任務,則移除這些章節;其餘章節順序不變。
標頭: 包含 antetitulo(「專案 · <分析、設計或研究>報告 · <月份 年份>」)、lema、subtitulo(說明報告回覆的問題)、version、estado(「提案 · 任務 N」、「已決 · 任務 N」…)、portada: oscura、destino: proyecto、herramientas、menu: secciones(供委託人在章節間跳轉)、tipo(「分析報告」、「設計報告」、「研究報告」)及 pie(包含任務編號、報告起始來源及決策者)。
問題
每個問題是一張由 ::: preguntas 定義的卡片,採用 crear_documentos 中的「選項式問題」資源:
::: preguntas 2 plegables
### 1 · 如何確保「僅操作自己的文件」{recomendada=A} {: #p1}
目前沒有任何機制監控:任何步驟都可能進入任務範圍。
選項 A
: 任務透過指令宣告自己的文件,若分支觸及其他檔案則 `cerrar` 拒絕執行。
選項 B
: 僅在編排中撰寫規則。
推薦
: **A.** 可透過指令實現,無需依賴主程式的記憶。
:::
- 每個問題對應一個決策,標題需明確命名,並依重要性以數字編號(1 為最重要)。編號與錨點
{: #pN}在問題被決定或分離後皆不變更:任務步驟會藉此引用(「決定……(問題 5)(報告「任務類型」,274)」)。 - 一兩句背景說明,僅在選擇時需要才加入:說明現狀或為何需要決策。
- 兩個或三個選項,分別標示為
選項 A、選項 B……,每個選項以一到兩句說明其影響。「維持現狀」在確實為一個選項時才列入。 - 推薦附帶一句理由,並在標題中加入
recomendada=A以突顯。每個開放問題都必須有推薦;產生器若發現遺漏會發出警告。 - 狀態,根據每次回覆更新:
estado=abierta(預設):等待回覆;estado=decidida elegida=B:加上Decisión欄位說明選擇內容、細節及已記錄的決策編號;所選選項會被標記,其他選項顯示為灰色;estado=separada destino=tarea_303:已移交至其他任務(底線_在標記中會顯示為空格)。仍保留在報告中,以供目標任務引用。
- 依賴其他問題的問題,應在背景說明中提及,並附上連結。
當問題被決定或分離時,其卡片仍保留在原有區塊中,並更新為新狀態,同時決策也會被加入「已決定事項」表格。摘要會說明還有多少問題仍處於開放狀態。
每次迭代
委託人每次回覆,或分析進展導致報告變更,即為一次迭代:
-
備份即將被取代的版本:
python -I -X utf8 <skills>/crear_documentos/scripts/respaldar.py <報告檔案>.md <原因>(「取代文件前,先備份至 _respaldo/」,217)。 -
撰寫變更:更新已回覆問題的狀態、「已決定事項」表格、分離提案與任務列表,以及摘要。提升標頭中的版本號(例如 2.5 → 2.6;第一個數字在報告結構變更時增加),並更新
estado。 -
重新產生 HTML 並納入同一變更中(「每次 .md 變更均重新產生其 HTML」,220):
python -I -X utf8 <skills>/informe_deliberativa/scripts/informe_to_html.py <報告檔案>.md -
推送至
develop分支,不建立新分支,因為這屬於新文件(「新文件每次迭代均推送至 develop,並在瀏覽器中提供檢視」,216),使用屆時存在的指令(「每次迭代將新文件推送至 develop,並在瀏覽器中開啟」,297)。 -
提供在瀏覽器中開啟 HTML 的選項,並顯示新版本號。
驗證
採用 crear_documentos 中的驗證方式(「驗證」),並額外檢查:
- 每個開放問題至少要有兩個選項與一個推薦;所有已決問題必須有
elegida,已分離問題必須有destino; - 摘要中的計數(開放問題、分離提案、任務)必須與各章節實際數量一致;
- 所有指向問題(
#pN)或分離提案(#a-…)的連結必須有效; - 「已決定事項」表格中的決策必須是已經記錄過的決策。