← 活動記録一覧

FACTUAL ACTIVITY RECORD · 実際の作業をもとにした活動記録

Pencil作業を安全なライフサイクルへ整える

document照合、公式Export、保存、ownershipに応じた終了とruntime resetを一つの契約にする

対象期間:

目的

Pencil Desktopでのデザイン作業には、対象documentの取り違え、physical exportの証拠不足、未保存変更の破棄、GUI runtimeの終了漏れを防ぐ一貫した状態契約が必要だった。

authoring surfaceを固定し、開始前の確認から保存、export、終了までを再現できる順序に揃え、失敗や承認待ちでも安全に停止できるworkflowを目指した。

実装

.agents/skills/pencil-design-workflow/SKILL.mdで、preflightlaunch/connectidentity-checkworkexportverify/saveteardownを順に進むbounded lifecycleを定義した。各stateの前提を満たさない限り後続へ進まず、待機中も別surfaceから同じartifactを並行操作しない。

authoringはPencil Desktop + MCPへ固定した。active documentのphysical .pen pathがcanonical pathと一致するまでread、write、exportを行わず、DesktopやMCPが利用できない場合もIDE extension、CLI、headless処理へ切り替えずwaitingまたはblockerを返す。

physical exportは、identity確認済みの同じdocumentを保ったまま、Computer UseでPencil Desktopの公式Export UIを操作する手順にした。format、scale、出力pathを固定し、出力fileの存在、寸法、frameとの対応、visual acceptanceを確認する。MCP screenshotやbase64 resultはlayout確認には使えてもphysical evidenceの代わりにしない。

  • Computer Use開始後、最初のapp state取得より前にlist_apps()でPencilの起動状態を記録する。
  • 起動ownershipをuser-ownedtask-ownedunknownへ分け、未保存変更の所有者が不明なら終了しない。
  • task-ownedで保存済みの場合だけComputer Useを維持したまま通常終了し、終了後はappを再起動し得るstate取得を使わずlist_apps()で停止を確認する。
  • 最後にmcp__node_repl__js_reset({})を1回だけ実行し、その後Computer Useを再利用しない。toolがない、または失敗した場合はcleanup完了とせずblockerを返す。

Desktop UI exportの再試行は、fresh stateから根拠のある原因を一つ直した1回だけに制限した。同じerror、identity未確認、別surfaceへの切り替えを繰り返さず、保存状態とartifact不変性を確認して停止する。.pen本文へのshell、generic file tool、scriptによる直接accessも禁止した。

agent定義、CEO向けprompt、運用文書、handoff例、review checklistも同じcontractへ同期した。確認中に、古いsurface説明、teardownのownership順序、direct access禁止、runtime resetの具体的手順が不足していることが見つかり、reset toolが使えない場合までfail-closedになるよう修正した。

.agents/skills/pencil-design-workflow/SKILL.md — bounded lifecycle(抜粋)実差分の抜粋
1. `preflight`: repository、branch、対象file、Task acceptance、Pencil Desktop / MCP availabilityを確認する
2. `launch/connect`: Pencil Desktopを起動しMCPへ接続する
3. `identity-check`: active documentと対象physical `.pen`が一致することを確認する
4. `work`: Task scope内のread / authoring / layout確認を行う
5. `export`: Taskで要求された時だけDesktop公式Export UIをComputer Useで操作して書き出す
6. `verify/save`: physical outputと保存済み`.pen`を検証する
7. `teardown`: Computer Use runtimeを維持したままtask-owned Pencil Desktopを先に終了確認し、その後GUI automation runtimeをcleanup / resetする
Pencil作業の状態遷移と停止境界

図を描画しています…

確認したこと

確認結果

Pencil Desktop + MCPへのsurface固定、document identity、公式Export UI、明示Save、安全なteardownが一つの状態契約として反映された。

project設定とagent定義のTOML parseに成功し、agent inventory 9、thread上限12、delegation depth 1が維持された。

reset contractとfail-closed分岐の横断検索、古いsurfaceと曖昧なcleanup参照のnegative search、secret scan、差分検査が成功した。

cutoff時点でworkflowと運用文書は対象へ反映されていた。個別productのdesign変更や、全failure pathを実際のPencil sessionで通す検証はこのActivityの範囲に含めていない。

完了とした根拠

開始から終了までのstate、physical export、保存、ownership、retry、runtime resetの契約が設定・Skill・運用文書へ揃い、構文・検索・差分検査に成功して対象へ反映されたことをもって完了とした。