Skip to content

Commit 4d0f049

Browse files
committed
Release 1.8.12
1 parent f0eedb2 commit 4d0f049

28 files changed

Lines changed: 424 additions & 40 deletions

assets/for-ai/ar/execution-protocol.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ tags: [ai, protocol, ospec]
5353
- بوابات القرار وخيارات brainstorm ملك للمستخدم: **لا تختر الخيار الموصى به تلقائياً ولا تحلّ بوابة بنفسك**——اعرض كل بوابة عبر سلّم القدرات (واجهة سؤال أصلية ← واجهة خطة/موافقة ← نص محادثة عادي) وانتظر اختيار المستخدم الفعلي؛ البوابات الإلزامية تحجب التنفيذ والإرسال حتى يجيب المستخدم، و`recommended` مجرد تلميح يُعرض على المستخدم
5454
- اكتب كل وثيقة change وbrainstorm تنشئها بلغة وثائق المشروع (`documentLanguage` في `.skillrc` / إرشادات `for-ai/` المُدارة)؛ لا تخلط العربية والإنجليزية داخل change واحد
5555
- استخدم `ospec execute dispatch [changes/active/<change>] [--task task-id] [--limit N]` لإنشاء batch آمن للتوازي من worker packets و`artifacts/agents/execution-session.json`؛ يتضمن كل packet project session brief snapshot وworker profile يوضح capability tier وrecommended target وtarget tool mapping وrationale وrequired behavior. استخدم `ospec execute complete <task-id> ...` لتسجيل نتائج worker. استخدم `--task` لمهمة واحدة صريحة و`--limit` لتحديد حجم dispatch batch. تزامن هذه الأوامر أيضا `artifacts/agents/worker-status.md`، وتحدّث OSpec artifacts فقط ولا تشغّل workers خارجيين؛ عندما تكون النتيجة `NEEDS_CONTEXT` أو `BLOCKED` يكتب `complete` ملفات blocker escalation تحت `artifacts/agents/blockers/`
56+
- لا تضع القبول الخارجي أو اليدوي في المسار الحرج لمهام تنفيذ غير مرتبطة. إذا كان التنفيذ الدائم مسجلاً وكانت المهمة `BLOCKED` فقط لغياب القبول الخارجي، وبعد تفويض المستخدم الصريح لتأجيله إلى البوابة النهائية، شغّل `ospec execute defer-blocker <task-id> [change-path] --reason "..."`. تبقى المهمة محظورة وغير محددة، ويستمر فقط التنفيذ الآمن من ناحية التبعيات؛ وتظل final review وverify وfinalize وarchive محظورة حتى توفر الدليل الحقيقي
5657
- توفير الـ tokens (لا يغيّر أي خطوة): مرّر `--brief` على `ospec execute …` لقراءة ملخّص مختصر بدل التقرير الكامل، وقُد كل خطوة من `ospec execute status --brief` بدل إعادة قراءة `task-graph.json` أو `worker-status.md` أو `launch-plan.md` الكاملة في كل دورة — تُكتب الـ artifacts كاملةً على القرص، فافتحها فقط عند الحاجة للتفاصيل
5758
- بعد dispatch، استخدم `ospec execute launch [changes/active/<change>] [--task task-id] [--target codex|gpt|claude|gemini|opencode|cursor|copilot] [--dry-run] [--json]` لكتابة launch plan؛ يقبل `runtimeAdapter` فقط model-native subagent capability حالية ومرتبطة بالـ target. ينشئ single-task dispatch هذه الخطة تلقائيا
5859
- نفّذ `runtimeAdapter.selected.nativeSubagent` وشغّل safe batch فقط بالتوازي. عند غياب capability أو انتهاء صلاحيتها يجب block من دون agent CLI أو fallback إلى current controller

assets/for-ai/en-US/execution-protocol.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ tags: [ai, protocol, ospec]
5555
- Decision gates and brainstorm options belong to the user: never auto-select the recommended option or resolve a gate yourself — present every gate with the capability ladder (a native question UI, else a plan/approval UI, else plain chat text) and wait for the user's actual choice; required gates block implementation and dispatch until the user answers, and `recommended` is only a hint to show the user
5656
- Write every change document and brainstorm you author in the project's document language (`.skillrc` `documentLanguage` / managed `for-ai/` guidance); do not mix Chinese and English within a change
5757
- Use `ospec execute dispatch [changes/active/<change>] [--task task-id] [--limit N]` to create a parallel-safe batch of worker packets and `artifacts/agents/execution-session.json`; each packet includes the project session brief snapshot and a worker profile with capability tier, recommended target, target tool mapping, rationale, and required behavior. Use `ospec execute complete <task-id> ...` to record worker results. Use `--task` for one explicit task and `--limit` to cap dispatch batch size. These commands also sync `artifacts/agents/worker-status.md`, update OSpec artifacts only, and do not launch external workers; required pending user decisions block dispatch; `complete` writes blocker escalation artifacts under `artifacts/agents/blockers/` when the result is `NEEDS_CONTEXT` or `BLOCKED`
58+
- Keep external/manual acceptance out of the critical path for unrelated implementation tasks. If a durable implementation is already recorded as `BLOCKED` only because external acceptance is unavailable, and the user explicitly authorizes deferring that acceptance, run `ospec execute defer-blocker <task-id> [change-path] --reason "..."`. This leaves the task blocked and unchecked while dependency-safe implementation continues; final review, verification, finalization, and archive remain blocked until the real evidence exists
5859
- Use `ospec execute launch [changes/active/<change>] [--task task-id] [--target codex|gpt|claude|gemini|opencode|cursor|copilot] [--dry-run] [--json]` after dispatch to write the launch plan. Its `runtimeAdapter` accepts only a current, target-bound model-native subagent capability. A single-task dispatch generates this plan automatically
5960
- Execute `runtimeAdapter.selected.nativeSubagent`; parallelize only the safe batch. Missing or expired native capability blocks dispatch with no agent CLI or controller-context fallback
6061
- `IDE-CONTROLLER-AUTO-DISPATCH`: L1 is report-only. For L2/L3, the IDE AI owns tick -> execute all `actions[]` through each action's `runtimeAdapter.selected.nativeSubagent` -> persist heartbeat/result evidence -> immediate tick. An empty `actions[]` with `pending` is observation only and must never be relaunched

assets/for-ai/ja-JP/execution-protocol.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ tags: [ai, protocol, ospec]
5353
- 決定ゲートと brainstorm の選択肢はユーザーのもの:**推奨オプションを自動選択したり、自分でゲートを resolve したりしない**——能力ラダー(ネイティブ質問 UI → plan/承認 UI → 素のチャットテキスト)で各ゲートをユーザーに提示し、ユーザーの実際の選択を待つ。required ゲートはユーザーが答えるまで実装とディスパッチをブロックし、`recommended` はユーザーに見せるヒントにすぎない
5454
- あなたが作成するすべての change ドキュメントと brainstorm は、プロジェクトのドキュメント言語(`.skillrc``documentLanguage` / 管理対象の `for-ai/` ガイダンス)で書く。1 つの change 内で中国語と英語を混在させない
5555
- `ospec execute dispatch [changes/active/<change>] [--task task-id] [--limit N]` で parallel-safe な worker packet batch と `artifacts/agents/execution-session.json` を作成する。各 packet には project session brief snapshot と、capability tier、recommended target、target tool mapping、rationale、required behavior を示す worker profile が含まれる。`ospec execute complete <task-id> ...` で worker 結果を記録する。`--task` は明示的な単一 task、`--limit` は dispatch batch size の上限に使う。これらのコマンドは `artifacts/agents/worker-status.md` も同期し、OSpec artifacts のみを更新し、外部 worker は起動しない。結果が `NEEDS_CONTEXT` または `BLOCKED` の場合、`complete``artifacts/agents/blockers/` に blocker escalation を書く
56+
- 外部/手動 acceptance を無関係な実装 task の critical path に置かない。durable implementation があり、外部 acceptance だけが未取得で `BLOCKED` の場合、ユーザーが final gate への延期を明示的に承認した後で `ospec execute defer-blocker <task-id> [change-path] --reason "..."` を実行する。task は blocked・未チェックのまま dependency-safe な実装だけを続行し、実証が揃うまで final review、verify、finalize、archive は引き続きブロックする
5657
- dispatch 後は `ospec execute launch [changes/active/<change>] [--task task-id] [--target codex|gpt|claude|gemini|opencode|cursor|copilot] [--dry-run] [--json]` で launch plan を書く。`runtimeAdapter` は current かつ target-bound な model-native subagent capability のみを受け入れる。single-task dispatch はこの plan を自動生成する
5758
- `runtimeAdapter.selected.nativeSubagent` を実行し、安全な batch だけを並列 dispatch する。capability がない、または期限切れの場合は block し、agent CLI や current controller に fallback しない
5859
- `IDE-CONTROLLER-AUTO-DISPATCH`: L1 は report-only。L2/L3 では IDE AI が tick -> 各 action の `runtimeAdapter.selected.nativeSubagent` で全 `actions[]` を実行 -> heartbeat/result evidence -> 即時 tick を担当する。`actions[]` が空で `pending` がある場合は観察のみで再 dispatch しない

assets/for-ai/zh-CN/execution-protocol.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ tags: [ai, protocol, ospec]
5555
- 决策门和 brainstorm 选项属于用户:**绝不要自动选"推荐项"、也不要自己 resolve 决策门**——用能力阶梯(原生问答 UI → Plan/审批 UI → 纯聊天文字)把每个门呈现给用户,等用户真正回答;required 门在用户回答前会阻塞实现与派发,`recommended` 只是给用户看的提示
5656
- 你产出的每个 change 文档和 brainstorm 都要用项目的文档语言(`.skillrc``documentLanguage` / 托管 `for-ai/` 指引)书写;同一个 change 内不要中英文混用
5757
-`ospec execute dispatch [changes/active/<change>] [--task task-id] [--limit N]` 生成并行安全的 worker 任务包批次和 `artifacts/agents/execution-session.json`;每个 packet 都包含 project session brief snapshot 和 worker profile,说明 capability tier、recommended target、target tool mapping、rationale 和 required behavior。用 `ospec execute complete <task-id> ...` 记录 worker 结果。用 `--task` 指定单个任务,用 `--limit` 限制派发批次大小。这些命令也会同步 `artifacts/agents/worker-status.md`,只更新 OSpec artifacts,不启动外部 worker;required pending user decision 会阻止 dispatch;当结果是 `NEEDS_CONTEXT``BLOCKED` 时,`complete` 会在 `artifacts/agents/blockers/` 下写入 blocker escalation
58+
- 不要把外部/人工验收放在无关开发任务的关键路径上。如果已有 durable implementation 仅因外部验收不可用而记录为 `BLOCKED`,且用户明确授权把该验收延期到最终门,运行 `ospec execute defer-blocker <task-id> [change-path] --reason "..."`。该 task 仍保持阻塞和未勾选,只允许依赖安全的实现继续;真实证据到达前,final review、verify、finalize 和 archive 仍然阻断
5859
- 省 token(不改变任何步骤):`ospec execute …` 命令带 `--brief` 读精简摘要而非完整报告;用 `ospec execute status --brief` 驱动每一步,不要每轮都重读完整的 `task-graph.json``worker-status.md``launch-plan.md`——产物仍完整写盘,只在需要细节时才打开
5960
- dispatch 后用 `ospec execute launch [changes/active/<change>] [--task task-id] [--target codex|gpt|claude|gemini|opencode|cursor|copilot] [--dry-run] [--json]` 写入启动计划;`runtimeAdapter` 只接受当前、target 匹配的模型原生 subagent capability;单任务 dispatch 会自动生成该计划
6061
- 执行 `runtimeAdapter.selected.nativeSubagent`,只并行派发安全 batch。capability 缺失或过期时阻断,不得启动 agent CLI 或退回 controller context

assets/global-skills/codex/ospec-goal/SKILL.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Use this skill for complex work that needs the full OSpec workflow. A goal is in
2424
- **Guards are enforced before new work.** Pause/STOP, iteration/deadline/token/time budgets, no-progress limits, comprehension-review checkpoints, required decisions, approved document reviews, ready workspace evidence, and L3 allowlists can stop or pause the loop.
2525
- **Document review is convergent.** Specialist design/plan review uses two rounds and 30 minutes as default convergence thresholds. In continuous mode, a new structured finding-ID set may continue automatically; a repeated or cycling set stops. Cache/pending reuse, heartbeat, lease recovery, and deterministic preflight do not consume rounds. Never use `--force` to bypass a guard. Strict mode retains the exact user-authorized extra-round window. Read the prior findings sidecar and resolution evidence before the full document when revising. Every structured finding must have a non-empty unique ID.
2626
- **Review repair is convergent and regression-aware.** A downstream task that shares target files inherits transitive upstream regression obligations. The default two-round values are convergence thresholds. Changed structured finding IDs continue automatically. A stable ID may also continue only when both its structured finding fingerprint and its authorized repair-scope code snapshot changed; wording-only or code-only churn, exact repeats, and cycles stop. A blocked final review requires blocker resolution and must not enter grouped repair. Never raise a limit to bypass unchanged evidence.
27+
- **External acceptance may be deferred, never waived.** Keep device, credential, manual, and third-party acceptance out of unrelated implementation critical paths. When durable implementation exists and the user explicitly authorizes moving only external acceptance to the final gate, use `ospec execute defer-blocker`; the task stays `BLOCKED` and unchecked, while dependency-safe implementation may continue. Final review, verification, finalization, and archive remain hard-blocked until the real evidence exists.
2728
- **Allowlist updates are replacement or explicit CAS.** Repeated `loop configure --allow-*` calls replace the complete selected list and print a diff; they never append. For L3 derive/check/apply the exact task-graph permissions, review the diff, and pass `--approve-expansion` only for an intended expansion.
2829
- **Stop condition is three-stage:** run the project's real tests, record evidence with `ospec execute verify --status`, then confirm with `ospec verify`.
2930

@@ -78,7 +79,7 @@ For legacy root-layout projects, use the same paths without the `.ospec/` prefix
7879
4. If the matching active goal already exists, continue it instead of duplicating it.
7980
5. Draft or update `design.md` from the requirement, `proposal.md`, and project context before editing `implementation-plan.md`, deriving `artifacts/agents/task-graph.json`, editing `tasks.md`, or editing code.
8081
6. Draft or update `implementation-plan.md` from `design.md`; identify target files, expected results, verification commands, dependencies, parallelizable work, and conflicts.
81-
7. Derive `artifacts/agents/task-graph.json` from `implementation-plan.md`; give every task a `documentation_updates` array (`[]` when none), include every declared docs path in the same task's `target_files`, and require meaningful-change evidence from dispatch to completion; derive `tasks.md` from the task graph. Mark every dependency/file-safe task `parallelizable: true`; every generated `parallelizable: false` task must include `serial_reason`, and `maxParallel=1` must include `maxParallelReason`. Split tasks with more than six `target_files`; when one atomic verification boundary genuinely requires that breadth, record a concrete `scope_reason`. For L3 use `ospec loop allowlist derive/check/apply --from-task-graph` so exact paths and commands fail before expensive document reviewers run; never assume repeated configure calls append. Finalize also generates one indexed `docs/project/changes/<archive-path>.md` for this goal; its preflight refuses to overwrite a human-owned file at that path, and the generated summary does not replace required architecture, API, module, or operational documentation.
82+
7. Derive `artifacts/agents/task-graph.json` from `implementation-plan.md`; give every task a `documentation_updates` array (`[]` when none), include every declared docs path in the same task's `target_files`, and require meaningful-change evidence from dispatch to completion; derive `tasks.md` from the task graph. Mark every dependency/file-safe task `parallelizable: true`; every generated `parallelizable: false` task must include `serial_reason`, and `maxParallel=1` must include `maxParallelReason`. Split tasks with more than six `target_files`; when one atomic verification boundary genuinely requires that breadth, record a concrete `scope_reason`. Split implementation/automatic checks from external device, credential, third-party, or manual acceptance so an unavailable external gate cannot block unrelated implementation; downstream work may depend on the implementation slice, while the external acceptance remains a final hard gate. For L3 use `ospec loop allowlist derive/check/apply --from-task-graph` so exact paths and commands fail before expensive document reviewers run; never assume repeated configure calls append. Finalize also generates one indexed `docs/project/changes/<archive-path>.md` for this goal; its preflight refuses to overwrite a human-owned file at that path, and the generated summary does not replace required architecture, API, module, or operational documentation.
8283
8. Run `ospec execute doc-review [changes/active/<goal>] --stage design`. When it reports `Reused approval: yes`, do not launch another reviewer. Otherwise execute one fresh independent design reviewer through `dispatch.runtimeAdapter`, immediately claim its real executor id, wait for Markdown plus structured findings, then complete that executor. Approval must validate before plan review.
8384
9. Run `ospec execute doc-review [changes/active/<goal>] --stage plan`. Reuse a valid approval; otherwise execute one fresh independent plan reviewer through `dispatch.runtimeAdapter`, claim its real executor id, wait for findings, then complete it before worker dispatch. The controlling AI must not self-approve either review.
8485
10. Use `ospec execute decision` for direction, architecture, API, UI, risk, or scope choices that need explicit user selection, and always include `--answered-by user` when persisting the user's answer. Persist every named browser/E2E/manual verification requirement before implementation.
@@ -131,6 +132,7 @@ ospec execute dispatch [changes/active/<goal>] [--task task-id] [--limit N]
131132
ospec execute launch [changes/active/<goal>] [--task task-id] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]
132133
ospec execute complete <task-id> [changes/active/<goal>] --status DONE --summary "..."
133134
ospec execute complete <task-id> [changes/active/<goal>] --status DONE --usage-file usage.json
135+
ospec execute defer-blocker <task-id> [changes/active/<goal>] --reason "User authorized external acceptance at final review"
134136
ospec loop tick [changes/active/<goal>] # controller-owned task/final review with real executor provenance
135137
ospec execute review [changes/active/<goal>] --task task-id # non-controller workflow only
136138
ospec execute review [changes/active/<goal>] # non-controller final review only

0 commit comments

Comments
 (0)