🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@clawplays/ospec-cli

Package Overview
Dependencies
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@clawplays/ospec-cli - npm Package Compare versions

Comparing version
1.9.0
to
1.9.1
+3
-3
assets/for-ai/ar/ai-guide.md

@@ -29,7 +29,7 @@ ---

- استخدم الفهرس لتحديد موقع المعرفة قبل قراءة الملفات الهدف
- عند الدخول إلى مشروع OSpec موجود، شغّل `ospec session [path]` لكتابة `.ospec/session-brief.json` و`.ospec/session-brief.md` مع active change وqueued change وqueue run وcache fingerprint والأمر الآمن التالي؛ هذا project entry brief لا يستبدل `ospec execute bootstrap` للـ active change
- عند الدخول إلى مشروع OSpec موجود، شغّل `ospec session [path]` لكتابة `.ospec/session-brief.json` و`.ospec/session-brief.md` مع profile ‏`change` أو `goal` للعمل النشط وqueued change وqueue run وcache fingerprint والأوامر التالية الموافقة للـ profile؛ يقرأ Change الكلاسيكي ملفاته الخمسة مباشرة ويستخدم Goal فقط `ospec execute bootstrap`
- تعامل مع خطوات built-in quality policy المفعّلة مثل `tdd_cycle` و`root_cause_debug` و`verification_evidence` كـ `optional_steps` خاضعة لـ archive gate؛ غطّها في `tasks.md` و`verification.md` وملفات evidence المطابقة قبل closeout
- استخدم `ospec change` / `ospec-change` عندما يختار المستخدم Change، ويبقى `ospec new` alias. أبقها على تدفق 1.0 السريع بغض النظر عن التعقيد أو flags أو عدد الملفات أو المخاطر أو حجم الدفعة: `proposal.md` و`tasks.md` والتنفيذ و`verification.md` و`review.md` و`state.json`
- استخدم `ospec goal` / `ospec-goal` فقط عندما يختار المستخدم Goal صراحة
- طبقة التحكم `ospec execute …` (bootstrap وpreflight وdispatch وlaunch وreview وworktree وfinish وcollect وretry وsync) وكل artifacts الخاصة بـ goal تنتمي إلى `workflow_profile_id: goal`. وبالنسبة لـ `workflow_profile_id: change`، التزم بالتدفق السريع الكلاسيكي — لا تقرأ ولا تشغّل طبقة execute أو artifacts الخاصة بـ goal؛ حرّر `proposal.md` و`tasks.md`، ونفّذ، وسجّل `verification.md` و`review.md`، ثم أغلق بـ `ospec verify` و`ospec finalize` — ما لم يطلب المستخدم صراحةً تنفيذ agent/worker على هذا الـ change
- طبقة التحكم `ospec execute …` (bootstrap وpreflight وdispatch وlaunch وreview وworktree وfinish وcollect وretry وsync) وكل artifacts الخاصة بـ goal تنتمي إلى `workflow_profile_id: goal`. وبالنسبة لـ `workflow_profile_id: change`، التزم بالتدفق السريع الكلاسيكي — لا تقرأ ولا تشغّل طبقة controller أو artifacts الخاصة بـ goal؛ حرّر `proposal.md` و`tasks.md`، ونفّذ، وسجّل `verification.md` و`review.md`، ثم أغلق بـ `ospec verify` على المستوى الأعلى و`ospec finalize`. يبقى أمر `ospec execute decision` المشترك متاحاً لاختيارات المستخدم الدائمة
- عند تنفيذ goal بمساعدة AI، لا تطلب من المستخدم كتابة `design.md` أو `implementation-plan.md` يدوياً؛ أنشئهما أو حدّثهما من المتطلب و`proposal.md` وسياق المشروع قبل اشتقاق `artifacts/agents/task-graph.json` أو تعديل `tasks.md` أو الكود

@@ -41,3 +41,3 @@ - عند تنفيذ classic change، لا تنشئ goal-only files ما لم يطلب المستخدم ترقية العمل صراحة إلى goal

- في goal يجب أن يُشتق `implementation-plan.md` من `design.md`، وأن يُشتق `artifacts/agents/task-graph.json` من `implementation-plan.md`، وأن تُشتق `tasks.md` من task graph، وتُوائم المهام الموجودة بعد تحديث الوثائق السابقة. في classic change تُشتق `tasks.md` مباشرة من `proposal.md` ونطاق التنفيذ
- عند بدء أو استئناف active change واحد، استخدم `ospec execute bootstrap [changes/active/<change>]` لكتابة `artifacts/agents/bootstrap.json` و`artifacts/agents/bootstrap.md` مع project session brief snapshot، ثم اتبع الإجراء الآمن التالي المسجل فيه؛ عند وجود active dispatch، يوصي bootstrap بأمر `ospec execute launch ... --task ...` المطابق
- عند بدء أو استئناف active Goal واحد، استخدم `ospec execute bootstrap [changes/active/<goal>]` لكتابة `artifacts/agents/bootstrap.json` و`artifacts/agents/bootstrap.md` مع project session brief snapshot، ثم اتبع الإجراء الآمن التالي المسجل فيه؛ عند وجود active dispatch، يوصي bootstrap بأمر `ospec execute launch ... --task ...` المطابق. يستخدم Change الكلاسيكي `ospec progress` و`ospec verify` على المستوى الأعلى و`ospec finalize`
- عند نقل change بين agents أو tools أو worktrees أو shells أو operators بشريين، استخدم `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` لكتابة `artifacts/agents/handoff.json` و`artifacts/agents/handoff.md`؛ يسجل هذا الأمر project session brief snapshot وtool mapping وقواعد السلامة فقط ولا يشغّل workers أو يعدّل source files

@@ -44,0 +44,0 @@ - قبل اشتقاق task graph، شغّل `ospec execute preflight [changes/active/<change>] --stage design` ثم `--stage plan`. ينفذ الأمران deterministic inline readiness preflight ويسجلان approval artifacts قابلة للتدقيق بدون تشغيل reviewer child. اشتق أو حدّث `task-graph.json` فقط بعد نجاح المرحلتين. اجمع red test العادي وproduction implementation ودليل green/refactor في atomic task واحدة إلا إذا كان test harness مخرجا مستقلا قابلا لإعادة الاستخدام

@@ -31,3 +31,3 @@ ---

- استخدم `ospec goal` / `ospec-goal` فقط عندما يختار المستخدم Goal صراحة
- طبقة التحكم `ospec execute …` (bootstrap وpreflight وdispatch وlaunch وreview وworktree وfinish وcollect وretry وsync) وكل artifacts الخاصة بـ goal تنتمي إلى `workflow_profile_id: goal`. وبالنسبة لـ `workflow_profile_id: change`، التزم بالتدفق السريع الكلاسيكي — لا تقرأ ولا تشغّل طبقة execute أو artifacts الخاصة بـ goal؛ حرّر `proposal.md` و`tasks.md`، ونفّذ، وسجّل `verification.md` و`review.md`، ثم أغلق بـ `ospec verify` و`ospec finalize` — ما لم يطلب المستخدم صراحةً تنفيذ agent/worker على هذا الـ change
- طبقة التحكم `ospec execute …` (bootstrap وpreflight وdispatch وlaunch وreview وworktree وfinish وcollect وretry وsync) وكل artifacts الخاصة بـ goal تنتمي إلى `workflow_profile_id: goal`. وبالنسبة لـ `workflow_profile_id: change`، التزم بالتدفق السريع الكلاسيكي — لا تقرأ ولا تشغّل طبقة controller أو artifacts الخاصة بـ goal؛ حرّر `proposal.md` و`tasks.md`، ونفّذ، وسجّل `verification.md` و`review.md`، ثم أغلق بـ `ospec verify` على المستوى الأعلى و`ospec finalize`. يبقى أمر `ospec execute decision` المشترك متاحاً لاختيارات المستخدم الدائمة
- أثناء تنفيذ goal بمساعدة AI، أنشئ `design.md` أو حدّثه بعد `proposal.md` وقبل تعديل `implementation-plan.md` أو `tasks.md` أو الكود. في classic change لا تنشئ goal-only files ما لم يطلب المستخدم الترقية إلى goal صراحة

@@ -45,3 +45,3 @@ - `Announce-Before-Act`: لا تُشغّل سير العمل بصمت. أعلن OSpec skill والمرحلة، والأمر والـ artifact، وmodel-native subagent adapter المختار، وعدد workers، وcurrent session capability، وأي بوابة تحجب التقدم

- تجدد كل controller poll ناجحة ومحدودة lease القصيرة لـ child حي ومطالب به من دون تمديد absolute deadline. ويمكن لـ poll تصل خلال نافذة wait محدودة قدرها 60 ثانية بعد حد lease القصيرة أن تجدد نفس item المطالب به؛ تبقى النتائج المتأخرة المباشرة مرفوضة، وتنتهي items المفقودة فعلا، ولا يتحرك absolute deadline. يجب تنفيذ prerequisite review المفقودة قبل إعادة محاولة dependent work القابل للإعادة. لا يقبل cross-task finding paths إضافية إلا إذا كانت مملوكة لمهام مكتملة ومعلنة في task graph؛ جمّد scope الكامل وأعد review للمالكين المتغيرين. ما دام أي cross-task owner مسجل غير معتمد، تسبق review أو repair الخاصة به أي implementation جديد أو retryable worker، مع بقاء reviewers الآخرين غير المتعارضين متوازيين. قبل full Docker Compose rebuild من دون أسماء خدمات، اقرأ release guidance للمشروع واستخدم أسماء خدمات صريحة عند وجود خدمات غير مرتبطة.
- عند بدء أو استئناف active change واحد، استخدم `ospec execute bootstrap [changes/active/<change>]` لكتابة `artifacts/agents/bootstrap.json` و`artifacts/agents/bootstrap.md` مع project session brief snapshot، ثم اتبع الإجراء الآمن التالي المسجل فيه
- عند بدء أو استئناف active Goal واحد، استخدم `ospec execute bootstrap [changes/active/<goal>]` لكتابة `artifacts/agents/bootstrap.json` و`artifacts/agents/bootstrap.md` مع project session brief snapshot، ثم اتبع الإجراء الآمن التالي المسجل فيه. يستخدم Change الكلاسيكي `ospec progress` و`ospec verify` على المستوى الأعلى و`ospec finalize`
- عند نقل change بين agents أو tools أو worktrees أو shells أو operators بشريين، استخدم `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` لكتابة `artifacts/agents/handoff.json` و`artifacts/agents/handoff.md`؛ يسجل هذا الأمر project session brief snapshot وtool mapping وقواعد السلامة فقط ولا يشغّل workers أو يعدّل source files

@@ -48,0 +48,0 @@ - قبل اشتقاق task graph، شغّل `ospec execute preflight [changes/active/<change>] --stage design` ثم `--stage plan` لإنشاء deterministic inline preflight packets وapproval artifacts تتضمن project session brief snapshot. اشتق أو حدّث task graph بعد نجاح المرحلتين فقط. لا تشغّل الأوامر reviewer child أو shell command ولا تزامن worker status ولا تعدّل source files، واجمع red test العادي وproduction implementation ودليل green/refactor في atomic task واحدة

@@ -29,3 +29,3 @@ ---

- Use the index to locate knowledge before reading target files
- When entering an existing OSpec project, run `ospec session [path]` to write `.ospec/session-brief.json` and `.ospec/session-brief.md` with active change, queued change, queue-run, cache fingerprint, and safe next command context; this project entry brief does not replace active-change `ospec execute bootstrap`. Use `ospec session hook [path]` only to write optional harness startup hook artifacts, including `.ospec/hooks/using-ospec.md` for session-start injection, harness target metadata, active-change bootstrap guidance, and decision/plugin gate sources
- When entering an existing OSpec project, run `ospec session [path]` to write `.ospec/session-brief.json` and `.ospec/session-brief.md` with the active work's `change` or `goal` profile, queued change, queue-run, cache fingerprint, and profile-aware next commands. A classic Change reads its five core files directly; only a Goal uses `ospec execute bootstrap`. Use `ospec session hook [path]` only to write optional harness startup hook artifacts with the same profile-aware routing and decision/plugin gate sources
- Use `ospec brainstorm [path] --topic "..."` only for optional pre-change exploration artifacts; use `ospec plan [path] --change changes/active/<change>` only for optional plan drafts, and pass `--apply` only when updating `implementation-plan.md` deliberately

@@ -35,3 +35,3 @@ - Treat activated built-in quality policy steps such as `tdd_cycle`, `root_cause_debug`, and `verification_evidence` as archive-gated `optional_steps`; cover them in `tasks.md`, `verification.md`, and matching evidence artifacts before closeout

- Use `ospec goal` / `ospec-goal` only when the user explicitly selects a Goal.
- The `ospec execute …` controller layer (bootstrap, preflight, dispatch, launch, review, worktree, finish, collect, retry, sync) and every goal-only artifact belong to `workflow_profile_id: goal`. For `workflow_profile_id: change`, keep the classic fast flow — do not read or run the execute layer or goal artifacts; edit `proposal.md` and `tasks.md`, implement, record `verification.md` and `review.md`, then close out with `ospec verify` and `ospec finalize` — unless the user explicitly asks for agent/worker execution on this change.
- The `ospec execute …` controller layer (bootstrap, preflight, dispatch, launch, review, worktree, finish, collect, retry, sync) and every goal-only artifact belong to `workflow_profile_id: goal`. For `workflow_profile_id: change`, keep the classic fast flow — do not read or run the controller layer or goal artifacts; edit `proposal.md` and `tasks.md`, implement, record `verification.md` and `review.md`, then close out with top-level `ospec verify` and `ospec finalize`. The shared `ospec execute decision` command remains available for durable user choices.
- In goal execution, do not ask the user to hand-write `design.md` or `implementation-plan.md`; draft or update them from the requirement, `proposal.md`, and project context before deriving `artifacts/agents/task-graph.json`, editing `tasks.md`, or editing code.

@@ -43,3 +43,3 @@ - In classic change execution, do not create goal-only files unless the user explicitly upgrades the work to a goal.

- In goal execution, keep `implementation-plan.md` derived from `design.md`, keep `artifacts/agents/task-graph.json` derived from `implementation-plan.md`, keep `tasks.md` derived from the task graph, and reconcile existing tasks after upstream docs are updated. In classic change execution, keep `tasks.md` derived directly from `proposal.md` and the current implementation scope.
- When starting or resuming one active change, use `ospec execute bootstrap [changes/active/<change>]` to write `artifacts/agents/bootstrap.json` and `artifacts/agents/bootstrap.md` with the project session brief snapshot, then follow its next safe action; when an active dispatch is waiting, bootstrap recommends the matching `ospec execute launch ... --task ...` command
- When starting or resuming one active Goal, use `ospec execute bootstrap [changes/active/<goal>]` to write `artifacts/agents/bootstrap.json` and `artifacts/agents/bootstrap.md` with the project session brief snapshot, then follow its next safe action; when an active dispatch is waiting, bootstrap recommends the matching `ospec execute launch ... --task ...` command. A classic Change uses `ospec progress`, top-level `ospec verify`, and `ospec finalize` instead
- Use `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` when moving a change between agents, tools, worktrees, shells, or human operators; it writes `artifacts/agents/handoff.json` and `artifacts/agents/handoff.md` with the project session brief snapshot, target tool mapping, and safety rules without launching workers or editing source files

@@ -46,0 +46,0 @@ - Before deriving the task graph, run `ospec execute preflight [changes/active/<change>] --stage design`, then `--stage plan`. Both commands perform deterministic inline readiness preflight and record auditable approval artifacts without launching reviewer children. Derive or refresh `task-graph.json` only after both preflights pass. Keep red tests, production implementation, and green/refactor evidence in one atomic task unless the test harness is independently reusable.

@@ -27,3 +27,3 @@ ---

- Do not skip required files for the active workflow profile and jump straight into completion.
- When entering an existing OSpec project, use `ospec session [path]` to write `.ospec/session-brief.json` and `.ospec/session-brief.md`; it records active changes, queued changes, queue-run state, cache fingerprint, and safe next commands without launching workers, running tests, inspecting git, archiving, or editing source files. Use `ospec session hook [path]` only to write opt-in harness startup hook artifacts under `.ospec/hooks/`, including `using-ospec.md` with session-start injection steps, harness targets, active-change bootstrap guidance, and decision/plugin gate sources
- When entering an existing OSpec project, use `ospec session [path]` to write `.ospec/session-brief.json` and `.ospec/session-brief.md`; it records the active work's `change` or `goal` profile, queued changes, queue-run state, cache fingerprint, and profile-aware next commands without launching workers, running tests, inspecting git, archiving, or editing source files. Use `ospec session hook [path]` only to write opt-in harness startup hook artifacts with the same profile-aware routing and decision/plugin gate sources
- Use `ospec brainstorm [path] --topic "..."` only for optional pre-change exploration artifacts under `.ospec/brainstorms/`; `--visual` adds a local static HTML companion and the command does not create a change

@@ -34,3 +34,3 @@ - Use `ospec plan [path] --change changes/active/<change>` for optional plan drafts under `.ospec/plans/`; pass `--apply` only when deliberately updating that change's `implementation-plan.md`

- Use `ospec goal` / `ospec-goal` only when the user explicitly selects a Goal.
- The `ospec execute …` controller layer (bootstrap, preflight, dispatch, launch, review, worktree, finish, collect, retry, sync) and every goal-only artifact belong to `workflow_profile_id: goal`. For `workflow_profile_id: change`, keep the classic fast flow — do not read or run the execute layer or goal artifacts; edit `proposal.md` and `tasks.md`, implement, record `verification.md` and `review.md`, then close out with `ospec verify` and `ospec finalize` — unless the user explicitly asks for agent/worker execution on this change.
- The `ospec execute …` controller layer (bootstrap, preflight, dispatch, launch, review, worktree, finish, collect, retry, sync) and every goal-only artifact belong to `workflow_profile_id: goal`. For `workflow_profile_id: change`, keep the classic fast flow — do not read or run the controller layer or goal artifacts; edit `proposal.md` and `tasks.md`, implement, record `verification.md` and `review.md`, then close out with top-level `ospec verify` and `ospec finalize`. The shared `ospec execute decision` command remains available for durable user choices.
- During AI-assisted goal execution, draft or update `design.md` after `proposal.md` and before editing `implementation-plan.md`, `tasks.md`, or code. Do not create goal-only files during a classic change unless the user explicitly upgrades it to a goal.

@@ -48,3 +48,3 @@ - `Announce-Before-Act`: never run the workflow silently. Announce the OSpec skill and stage, command and artifact, selected model-native subagent adapter, worker count, current session capability, and any blocking gate

- A successful bounded controller poll renews the short lease for an already-claimed live child without extending its absolute deadline. A poll arriving within one bounded 60-second wait after the short-lease boundary may renew that same claimed item; direct late results remain rejected, genuinely abandoned items still expire, and the absolute deadline never moves. Retryable dependent work must schedule missing prerequisite reviews before worker retry. Cross-task finding scope is valid only when every additional path belongs to a declared completed task; freeze the complete scope and re-review changed owners. While any recorded cross-task owner lacks approval, its review or repair precedes new implementation and retryable worker work, while other conflict-safe reviewers may remain parallel. Before any unscoped full Docker Compose rebuild, inspect project release guidance and prefer explicit service names when unrelated services exist.
- When starting or resuming one active change, use `ospec execute bootstrap [changes/active/<change>]` to write `artifacts/agents/bootstrap.json` and `artifacts/agents/bootstrap.md` with the project session brief snapshot, then follow its next safe action
- When starting or resuming one active Goal, use `ospec execute bootstrap [changes/active/<goal>]` to write `artifacts/agents/bootstrap.json` and `artifacts/agents/bootstrap.md` with the project session brief snapshot, then follow its next safe action. A classic Change uses `ospec progress`, top-level `ospec verify`, and `ospec finalize` instead
- Use `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` when moving a change between agents, tools, worktrees, shells, or human operators; it writes `artifacts/agents/handoff.json` and `artifacts/agents/handoff.md` with the project session brief snapshot, target tool mapping, and safety rules without launching workers or editing source files

@@ -51,0 +51,0 @@ - Before deriving the task graph, run `ospec execute preflight [changes/active/<change>] --stage design`, then `--stage plan`, to create deterministic inline preflight packets and approval artifacts. Both commands record artifacts only and never launch reviewer children, run shell commands, sync worker status, or edit source files. Derive or refresh the task graph only after both preflights pass; keep ordinary red tests with their production implementation and green/refactor evidence in one atomic task.

@@ -29,7 +29,7 @@ ---

- 目的の文書を読む前に、まず index を使って知識の所在を確認する
- 既存の OSpec project に入るときは `ospec session [path]` で `.ospec/session-brief.json` と `.ospec/session-brief.md` を書き、active change、queued change、queue run、cache fingerprint、次の安全な command context を記録する。この project entry brief は active-change の `ospec execute bootstrap` を置き換えない
- 既存の OSpec project に入るときは `ospec session [path]` で `.ospec/session-brief.json` と `.ospec/session-brief.md` を書き、active work の `change` / `goal` profile、queued change、queue run、cache fingerprint、profile-aware な次の command を記録する。classic Change は 5 つの core file を直接読み、Goal だけが `ospec execute bootstrap` を使う
- `tdd_cycle`、`root_cause_debug`、`verification_evidence` など有効化された built-in quality policy steps は、archive-gated `optional_steps` として扱う。closeout 前に `tasks.md`、`verification.md`、対応する evidence artifacts で coverage を記録する
- ユーザーが Change を選択した場合は `ospec change` / `ospec-change` を使い、`ospec new` は alias として残す。複雑さ、flags、ファイル数、risk、batch size に関係なく 1.0 の高速フロー(`proposal.md`、`tasks.md`、実装、`verification.md`、`review.md`、`state.json`)に留める
- ユーザーが Goal を明示的に選択した場合だけ `ospec goal` / `ospec-goal` を使う
- `ospec execute …` コントローラ層(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)と goal 専用 artifacts はすべて `workflow_profile_id: goal` に属する。`workflow_profile_id: change` では、クラシックな高速フローを維持し、execute 層や goal artifacts を読まず・実行せず、`proposal.md` と `tasks.md` を編集し、実装し、`verification.md` と `review.md` を記録してから `ospec verify` と `ospec finalize` で閉じる——ユーザーがこの change での agent/worker 実行を明示的に求めない限り
- `ospec execute …` コントローラ層(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)と goal 専用 artifacts はすべて `workflow_profile_id: goal` に属する。`workflow_profile_id: change` では、classic fast flow を維持し、controller 層や goal artifacts を読まず・実行せず、`proposal.md` と `tasks.md` を編集し、実装し、`verification.md` と `review.md` を記録してから top-level `ospec verify` と `ospec finalize` で閉じる。durable なユーザー選択には共有の `ospec execute decision` だけを使える
- AI 支援で goal を進める場合、ユーザーに `design.md` や `implementation-plan.md` の手書きを求めない。要件、`proposal.md`、プロジェクト文脈からそれらを作成または更新してから `artifacts/agents/task-graph.json` を導出し、`tasks.md` やコードを編集する

@@ -41,3 +41,3 @@ - classic change では、ユーザーが明示的に goal へ昇格させない限り goal-only files を作成しない

- goal では `implementation-plan.md` は `design.md` から導き、`artifacts/agents/task-graph.json` は `implementation-plan.md` から導き、`tasks.md` は task graph から導く。既存 tasks は上流文書の更新後に整合させる。classic change では `tasks.md` を `proposal.md` と実装範囲から直接導く
- one active change を開始または再開するときは、`ospec execute bootstrap [changes/active/<change>]` で project session brief snapshot を含む `artifacts/agents/bootstrap.json` と `artifacts/agents/bootstrap.md` を書き、そこにある次の安全な action に従う。active dispatch がある場合、bootstrap は対応する `ospec execute launch ... --task ...` command を推奨する
- one active Goal を開始または再開するときは、`ospec execute bootstrap [changes/active/<goal>]` で project session brief snapshot を含む `artifacts/agents/bootstrap.json` と `artifacts/agents/bootstrap.md` を書き、そこにある次の安全な action に従う。active dispatch がある場合、bootstrap は対応する `ospec execute launch ... --task ...` command を推奨する。classic Change は `ospec progress`、top-level `ospec verify`、`ospec finalize` を使う
- change を agent、tool、worktree、shell、human operator の間で引き渡すときは、`ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` で `artifacts/agents/handoff.json` と `artifacts/agents/handoff.md` を書く。このコマンドは project session brief snapshot、target tool mapping、safety rules のみを記録し、worker 起動や source file 編集は行わない

@@ -44,0 +44,0 @@ - task graph を導出する前に、`ospec execute preflight [changes/active/<change>] --stage design`、続いて `--stage plan` を実行する。どちらも deterministic inline readiness preflight と監査可能な approval artifact の記録だけを行い、reviewer child は起動しない。両方が通過した後に `task-graph.json` を導出または更新する。通常の red test、production implementation、green/refactor evidence は、test harness 自体が独立して再利用可能な成果物でない限り、1 つの atomic task にまとめる

@@ -31,3 +31,3 @@ ---

- ユーザーが Goal を明示的に選択した場合だけ `ospec goal` / `ospec-goal` を使う
- `ospec execute …` コントローラ層(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)と goal 専用 artifacts はすべて `workflow_profile_id: goal` に属する。`workflow_profile_id: change` では、クラシックな高速フローを維持し、execute 層や goal artifacts を読まず・実行せず、`proposal.md` と `tasks.md` を編集し、実装し、`verification.md` と `review.md` を記録してから `ospec verify` と `ospec finalize` で閉じる——ユーザーがこの change での agent/worker 実行を明示的に求めない限り
- `ospec execute …` コントローラ層(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)と goal 専用 artifacts はすべて `workflow_profile_id: goal` に属する。`workflow_profile_id: change` では、classic fast flow を維持し、controller 層や goal artifacts を読まず・実行せず、`proposal.md` と `tasks.md` を編集し、実装し、`verification.md` と `review.md` を記録してから top-level `ospec verify` と `ospec finalize` で閉じる。durable なユーザー選択には共有の `ospec execute decision` だけを使える
- AI 支援で goal を進める場合は、`proposal.md` の後、`implementation-plan.md`、`tasks.md`、コードを編集する前に `design.md` を作成または更新する。classic change では、ユーザーが明示的に goal へ昇格させない限り goal-only files を作成しない

@@ -45,3 +45,3 @@ - `Announce-Before-Act`: ワークフローを黙って実行しない。OSpec skill・段階、コマンドと生成物、選択された model-native subagent adapter、worker 数、current session capability、blocking gate を伝える

- 成功した bounded controller poll は、claim 済みの live child の短期 lease を更新するが、absolute deadline は延長しない。短期 lease 境界から bounded な 60 秒 wait 以内に到着した poll は同じ claim 済み item を更新できるが、期限切れ result の直接送信は拒否し、実際に失われた item は expire し、absolute deadline は動かさない。retryable な dependent work は worker retry より先に不足する prerequisite review を実行する。cross-task finding の追加 path は task graph の完了済み owner に属する場合だけ許可し、完全な scope を snapshot 化して変更された owner を再 review する。記録済み cross-task owner が未承認の間、その review または repair を新しい implementation と retryable worker より優先し、競合しない他の reviewer は並列実行できる。service 未指定の full Docker Compose rebuild の前には project release guidance を確認し、無関係な service があれば明示的な service 名を使用する。
- one active change を開始または再開するときは、`ospec execute bootstrap [changes/active/<change>]` で project session brief snapshot を含む `artifacts/agents/bootstrap.json` と `artifacts/agents/bootstrap.md` を書き、そこにある次の安全な action に従う
- one active Goal を開始または再開するときは、`ospec execute bootstrap [changes/active/<goal>]` で project session brief snapshot を含む `artifacts/agents/bootstrap.json` と `artifacts/agents/bootstrap.md` を書き、そこにある次の安全な action に従う。classic Change は `ospec progress`、top-level `ospec verify`、`ospec finalize` を使う
- change を agent、tool、worktree、shell、human operator の間で引き渡すときは、`ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` で `artifacts/agents/handoff.json` と `artifacts/agents/handoff.md` を書く。このコマンドは project session brief snapshot、target tool mapping、safety rules のみを記録し、worker 起動や source file 編集は行わない

@@ -48,0 +48,0 @@ - task graph 導出前に `ospec execute preflight [changes/active/<change>] --stage design`、続いて `--stage plan` を実行し、project session brief snapshot を含む deterministic inline preflight packet と approval artifact を作成する。両方の preflight 通過後に task graph を導出または更新する。コマンドは reviewer child、shell command、worker status 同期、source file 編集を実行しない。通常の red test、production implementation、green/refactor evidence は 1 つの atomic task にまとめる

@@ -29,3 +29,3 @@ ---

- 先按索引定位,再读目标知识文件
- 进入已有 OSpec 项目时,先运行 `ospec session [path]` 写入 `.ospec/session-brief.json` 和 `.ospec/session-brief.md`,记录 active change、queued change、queue run、cache fingerprint 和安全下一步命令;该项目入口简报不替代 active change 的 `ospec execute bootstrap`。只有需要接入 harness 启动流程时,才用 `ospec session hook [path]` 写入可选 hook artifacts,包括用于 session-start 注入的 `.ospec/hooks/using-ospec.md`、harness target 元数据、active-change bootstrap 指引,以及 decision/plugin gate 来源
- 进入已有 OSpec 项目时,先运行 `ospec session [path]` 写入 `.ospec/session-brief.json` 和 `.ospec/session-brief.md`,记录 active work 的 `change` 或 `goal` profile、queued change、queue run、cache fingerprint 和按 profile 生成的安全下一步命令。经典 Change 直接读取五个核心文件,只有 Goal 使用 `ospec execute bootstrap`。只有需要接入 harness 启动流程时,才用 `ospec session hook [path]` 写入采用相同 profile 路由和 decision/plugin gate 来源的可选 hook artifacts
- 只有需要 change 前探索记录时,才用 `ospec brainstorm [path] --topic "..."`;只有需要计划草稿时,才用 `ospec plan [path] --change changes/active/<change>`,且只有确认要更新 `implementation-plan.md` 时才传 `--apply`

@@ -35,3 +35,3 @@ - 将已激活的内建质量策略步骤(如 `tdd_cycle`、`root_cause_debug`、`verification_evidence`)视为受归档门禁约束的 `optional_steps`;收尾前必须在 `tasks.md`、`verification.md` 和对应 evidence artifacts 中覆盖

- 只有用户明确选择 Goal 时才使用 `ospec goal` / `ospec-goal`
- `ospec execute …` 控制层(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)和所有 goal-only artifacts 都属于 `workflow_profile_id: goal`。对 `workflow_profile_id: change`,保持经典快速流程——不要读取或运行 execute 层或 goal artifacts;编辑 `proposal.md` 和 `tasks.md`、实现、记录 `verification.md` 和 `review.md`,再用 `ospec verify` 和 `ospec finalize` 收尾——除非用户明确要求对这个 change 做 agent/worker 执行
- `ospec execute …` 控制层(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)和所有 goal-only artifacts 都属于 `workflow_profile_id: goal`。对 `workflow_profile_id: change`,保持经典快速流程——不要读取或运行 controller 层或 goal artifacts;编辑 `proposal.md` 和 `tasks.md`、实现、记录 `verification.md` 和 `review.md`,再用顶层 `ospec verify` 和 `ospec finalize` 收尾。只有共用的 `ospec execute decision` 可用于记录持久用户选择
- AI 辅助执行 goal 时,不要求用户手写 `design.md` 或 `implementation-plan.md`;必须先基于需求、`proposal.md` 和项目上下文起草或更新它们,再推导 `artifacts/agents/task-graph.json`、编辑 `tasks.md` 或代码

@@ -43,3 +43,3 @@ - 执行经典 change 时,不要创建 goal-only 文件,除非用户明确把该工作升级为 goal

- 执行 goal 时,`implementation-plan.md` 必须从 `design.md` 推导,`artifacts/agents/task-graph.json` 必须从 `implementation-plan.md` 推导,`tasks.md` 必须从 task graph 推导;若任务已存在,先更新上游文档,再回头对齐任务。执行经典 change 时,`tasks.md` 直接从 `proposal.md` 和实现范围推导
- 开始或恢复单个 active change 时,用 `ospec execute bootstrap [changes/active/<change>]` 写入带 project session brief snapshot 的 `artifacts/agents/bootstrap.json` 和 `artifacts/agents/bootstrap.md`,然后按其中的下一步安全动作继续;已有 active dispatch 时,bootstrap 会推荐对应的 `ospec execute launch ... --task ...` 命令
- 开始或恢复单个 active Goal 时,用 `ospec execute bootstrap [changes/active/<goal>]` 写入带 project session brief snapshot 的 `artifacts/agents/bootstrap.json` 和 `artifacts/agents/bootstrap.md`,然后按其中的下一步安全动作继续;已有 active dispatch 时,bootstrap 会推荐对应的 `ospec execute launch ... --task ...` 命令。经典 Change 改用 `ospec progress`、顶层 `ospec verify` 和 `ospec finalize`
- change 需要在 agent、工具、worktree、shell 或人工操作者之间交接时,用 `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` 写入 `artifacts/agents/handoff.json` 和 `artifacts/agents/handoff.md`;它只记录 project session brief snapshot、目标工具映射和安全规则,不会启动 worker 或编辑源码

@@ -46,0 +46,0 @@ - 派生 task graph 前,依次运行 `ospec execute preflight [changes/active/<change>] --stage design` 和 `--stage plan`。两步都只执行确定性的 inline 就绪预检并记录可审计 approval artifacts,不启动 reviewer child;两步通过后才能派生或刷新 `task-graph.json`。普通 red test、对应生产实现和 green/refactor 证据必须放在同一个原子 task,除非测试基础设施本身是可独立复用的交付物

@@ -27,3 +27,3 @@ ---

- 不得跳过当前 workflow profile 要求的文件和门禁直接声称完成
- 进入已有 OSpec 项目时,用 `ospec session [path]` 写入 `.ospec/session-brief.json` 和 `.ospec/session-brief.md`;它只记录 active changes、queued changes、queue-run 状态、cache fingerprint 和安全下一步命令,不启动 worker、不运行测试、不检查 git、不归档、不编辑源码。只有需要接入 harness session-start 时,才用 `ospec session hook [path]` 写入 `.ospec/hooks/` 下的可选 hook artifacts,其中 `using-ospec.md` 会记录 session-start 注入步骤、harness targets、active-change bootstrap 指引,以及 decision/plugin gate 来源
- 进入已有 OSpec 项目时,用 `ospec session [path]` 写入 `.ospec/session-brief.json` 和 `.ospec/session-brief.md`;它只记录 active work 的 `change` 或 `goal` profile、queued changes、queue-run 状态、cache fingerprint 和按 profile 生成的安全下一步命令,不启动 worker、不运行测试、不检查 git、不归档、不编辑源码。只有需要接入 harness session-start 时,才用 `ospec session hook [path]` 写入采用相同 profile 路由和 decision/plugin gate 来源的可选 hook artifacts
- 只有需要 change 前探索记录时,才用 `ospec brainstorm [path] --topic "..."` 写入 `.ospec/brainstorms/`;`--visual` 会额外生成本地静态 HTML companion,且该命令不会创建 change

@@ -34,3 +34,3 @@ - 用 `ospec plan [path] --change changes/active/<change>` 生成 `.ospec/plans/` 下的可选 plan draft;只有明确要更新该 change 的 `implementation-plan.md` 时才传 `--apply`

- 只有用户明确选择 Goal 时才使用 `ospec goal` / `ospec-goal`
- `ospec execute …` 控制层(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)和所有 goal-only artifacts 都属于 `workflow_profile_id: goal`。对 `workflow_profile_id: change`,保持经典快速流程——不要读取或运行 execute 层或 goal artifacts;编辑 `proposal.md` 和 `tasks.md`、实现、记录 `verification.md` 和 `review.md`,再用 `ospec verify` 和 `ospec finalize` 收尾——除非用户明确要求对这个 change 做 agent/worker 执行
- `ospec execute …` 控制层(bootstrap、preflight、dispatch、launch、review、worktree、finish、collect、retry、sync)和所有 goal-only artifacts 都属于 `workflow_profile_id: goal`。对 `workflow_profile_id: change`,保持经典快速流程——不要读取或运行 controller 层或 goal artifacts;编辑 `proposal.md` 和 `tasks.md`、实现、记录 `verification.md` 和 `review.md`,再用顶层 `ospec verify` 和 `ospec finalize` 收尾。只有共用的 `ospec execute decision` 可用于记录持久用户选择
- AI 辅助执行 goal 时,必须在完成 `proposal.md` 后、编辑 `implementation-plan.md`、`tasks.md` 或代码前,先起草或更新 `design.md`。执行经典 change 时,不要创建 goal-only 文件,除非用户明确升级为 goal

@@ -48,3 +48,3 @@ - `Announce-Before-Act`:绝不静默执行流程。宣告 OSpec skill 与阶段、命令与产物、所选 model-native subagent adapter、worker 数量、当前 session capability,以及阻塞门禁和解锁条件

- 每次成功的有界 controller poll 都会为已认领且仍存活的 child 续短租约,但绝不延长绝对期限。若 poll 只比短租约边界晚一个有界的 60 秒等待窗口,同一个已认领 item 仍可续租;直接提交过期 result 仍会拒绝,真正失联的 item 仍会过期,absolute deadline 永不移动。retryable 下游任务必须先完成缺失的 prerequisite review,再重试 worker。跨任务 finding 只有在额外路径全部属于 task graph 中已完成 owner 时才能自动路由;必须冻结完整 scope,并重新复审发生变化的 owner。只要任何已记录的 cross-task owner 尚未批准,它的 review 或 repair 必须先于新的 implementation 和 retryable worker,同时其它无冲突 reviewer 仍可并行。执行未指定服务的全量 Docker Compose rebuild 前,必须先读取项目发布说明;存在无关服务时改用显式服务名。
- 开始或恢复单个 active change 时,用 `ospec execute bootstrap [changes/active/<change>]` 写入带 project session brief snapshot 的 `artifacts/agents/bootstrap.json` 和 `artifacts/agents/bootstrap.md`,然后按其中的下一步安全动作继续
- 开始或恢复单个 active Goal 时,用 `ospec execute bootstrap [changes/active/<goal>]` 写入带 project session brief snapshot 的 `artifacts/agents/bootstrap.json` 和 `artifacts/agents/bootstrap.md`,然后按其中的下一步安全动作继续。经典 Change 改用 `ospec progress`、顶层 `ospec verify` 和 `ospec finalize`
- change 需要在 agent、工具、worktree、shell 或人工操作者之间交接时,用 `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` 写入 `artifacts/agents/handoff.json` 和 `artifacts/agents/handoff.md`;它只记录 project session brief snapshot、目标工具映射和安全规则,不会启动 worker 或编辑源码

@@ -51,0 +51,0 @@ - 派生 task graph 前,依次运行 `ospec execute preflight [changes/active/<change>] --stage design` 和 `--stage plan`,生成带 project session brief snapshot 的确定性 inline preflight packet,并创建 `artifacts/reviews/design-review.md` 和 `artifacts/reviews/implementation-plan-review.md`。两步都通过后再派生或刷新 task graph;命令只记录 artifacts,不会启动 reviewer、运行 shell 命令、同步 worker status 或编辑源码。普通 red test、对应生产实现和 green/refactor 证据应合并为一个原子 task

@@ -55,3 +55,3 @@ ---

- عند الدخول إلى مشروع موجود، استخدم `ospec session [path]` لكتابة `.ospec/session-brief.json` و`.ospec/session-brief.md`؛ يسجل active change وqueued change وqueue-run وcache fingerprint وسياق الأمر الآمن التالي فقط
- عند بدء أو استئناف active change واحد، استخدم `ospec execute bootstrap [changes/active/<change>]` لكتابة `bootstrap.json` و`bootstrap.md` مع project session brief snapshot، ثم اتبع الإجراء الآمن التالي المسجل فيه
- عند بدء أو استئناف active Goal واحد، استخدم `ospec execute bootstrap [changes/active/<goal>]` لكتابة `bootstrap.json` و`bootstrap.md` مع project session brief snapshot، ثم اتبع الإجراء الآمن التالي المسجل فيه. يستخدم Change الكلاسيكي `ospec progress` و`ospec verify` على المستوى الأعلى و`ospec finalize`
- عند نقل change بين agents أو tools أو worktrees أو shells أو operators بشريين، استخدم `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` لكتابة `handoff.json` و`handoff.md`؛ يسجل هذا الأمر project session brief snapshot وtool mapping وقواعد السلامة فقط

@@ -58,0 +58,0 @@ - قبل اشتقاق task graph، شغّل `ospec execute preflight [changes/active/<change>] --stage design` ثم `--stage plan` لإنشاء deterministic inline preflight packets وapproval artifacts. اشتق أو حدّث task graph بعد نجاح المرحلتين فقط، ولا تشغّل أي مرحلة reviewer child. اجمع red test العادي وproduction implementation ودليل green/refactor في atomic task واحدة

@@ -55,3 +55,3 @@ ---

- When entering an existing project, use `ospec session [path]` to write `.ospec/session-brief.json` and `.ospec/session-brief.md`; it records active change, queued change, queue-run, cache fingerprint, and safe next command context only
- When starting or resuming one active change, use `ospec execute bootstrap [changes/active/<change>]` to write `bootstrap.json` and `bootstrap.md` with the project session brief snapshot, then follow its next safe action
- When starting or resuming one active Goal, use `ospec execute bootstrap [changes/active/<goal>]` to write `bootstrap.json` and `bootstrap.md` with the project session brief snapshot, then follow its next safe action. A classic Change uses `ospec progress`, top-level `ospec verify`, and `ospec finalize` instead
- When a change moves between agents, tools, worktrees, shells, or human operators, use `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` to write `handoff.json` and `handoff.md`; this records the project session brief snapshot, target tool mapping, and safety rules only

@@ -58,0 +58,0 @@ - Before deriving the task graph, run `ospec execute preflight [changes/active/<change>] --stage design`, then `--stage plan`, to create deterministic inline preflight packets and approval artifacts. Derive or refresh the task graph only after both pass; neither stage launches a reviewer child. Keep ordinary red tests with their production implementation and green/refactor evidence in one atomic task

@@ -55,3 +55,3 @@ ---

- 既存 project に入るときは `ospec session [path]` で `.ospec/session-brief.json` と `.ospec/session-brief.md` を書く。active change、queued change、queue-run、cache fingerprint、次の安全な command context のみを記録する
- one active change を開始または再開するときは、`ospec execute bootstrap [changes/active/<change>]` で project session brief snapshot を含む `bootstrap.json` と `bootstrap.md` を書き、そこにある次の安全な action に従う
- one active Goal を開始または再開するときは、`ospec execute bootstrap [changes/active/<goal>]` で project session brief snapshot を含む `bootstrap.json` と `bootstrap.md` を書き、そこにある次の安全な action に従う。classic Change は `ospec progress`、top-level `ospec verify`、`ospec finalize` を使う
- change を agent、tool、worktree、shell、human operator の間で引き渡すときは、`ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` で `handoff.json` と `handoff.md` を書く。このコマンドは project session brief snapshot、target tool mapping、safety rules のみを記録する

@@ -58,0 +58,0 @@ - task graph 導出前に `ospec execute preflight [changes/active/<change>] --stage design`、続いて `--stage plan` を実行し、deterministic inline preflight packet と approval artifact を作成する。両方の通過後に task graph を導出または更新し、どちらの stage も reviewer child を起動しない。通常の red test、production implementation、green/refactor evidence は 1 つの atomic task にまとめる

@@ -55,3 +55,3 @@ ---

- 进入已有项目时,用 `ospec session [path]` 写入 `.ospec/session-brief.json` 和 `.ospec/session-brief.md`;它只记录 active change、queued change、queue-run、cache fingerprint 和安全下一步命令上下文
- 开始或恢复单个 active change 时,用 `ospec execute bootstrap [changes/active/<change>]` 写入带 project session brief snapshot 的 `bootstrap.json` 和 `bootstrap.md`,然后按其中的下一步安全动作继续
- 开始或恢复单个 active Goal 时,用 `ospec execute bootstrap [changes/active/<goal>]` 写入带 project session brief snapshot 的 `bootstrap.json` 和 `bootstrap.md`,然后按其中的下一步安全动作继续。经典 Change 改用 `ospec progress`、顶层 `ospec verify` 和 `ospec finalize`
- change 需要在 agent、工具、worktree、shell 或人工操作者之间交接时,用 `ospec execute handoff [changes/active/<change>] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic]` 写入 `handoff.json` 和 `handoff.md`;该命令只记录 project session brief snapshot、目标工具映射和安全规则

@@ -58,0 +58,0 @@ - 派生 task graph 前,依次运行 `ospec execute preflight [changes/active/<change>] --stage design` 和 `--stage plan`,生成确定性 inline preflight packet 与 approval artifacts;两步通过后再派生或刷新 task graph,任何阶段都不启动 reviewer child。普通 red test、对应生产实现和 green/refactor 证据应放在同一个原子 task

@@ -65,3 +65,3 @@ #!/usr/bin/env node

const services_1 = require("./services");
const CLI_VERSION = '1.9.0';
const CLI_VERSION = '1.9.1';
function showInitUsage() {

@@ -68,0 +68,0 @@ console.log('Usage: ospec init [root-dir] [--summary "..."] [--tech-stack node,react] [--architecture "..."] [--document-language en-US|zh-CN|ja-JP|ar]');

@@ -32,2 +32,3 @@ import { TaskDocumentReviewStage, TaskHandoffTarget, TaskWorkerToolTarget, TaskUserDecisionOption } from '../services/TaskGraphExecutionService';

private deferBlocker;
private resolveGoalChangePath;
private resolveChangePath;

@@ -34,0 +35,0 @@ private printStatus;

@@ -174,6 +174,6 @@ "use strict";

}
if (placement === constants_1.DIR_NAMES.ACTIVE) {
await new SessionCommand_1.SessionCommand().writeSessionBrief(targetDir);
}
}
if (placement === constants_1.DIR_NAMES.ACTIVE) {
await new SessionCommand_1.SessionCommand().writeSessionBrief(targetDir);
}
this.success(`${placement === constants_1.DIR_NAMES.QUEUED ? 'Queued change' : 'Change'} ${featureName} created at ${featureDir}`);

@@ -180,0 +180,0 @@ if (flags.length > 0) {

@@ -159,2 +159,3 @@ "use strict";

path: change.path,
workflowProfile: change.workflowProfile,
status: change.status,

@@ -213,2 +214,3 @@ progress: change.progress,

name: change.name,
workflowProfile: change.workflowProfile,
status: change.status,

@@ -263,3 +265,7 @@ progress: change.progress,

'Use this brief as a project entrypoint only; it does not replace the active change documents.',
'When exactly one active change exists, run ospec execute bootstrap before dispatching workers.',
activeChanges.length === 1
? activeChanges[0].workflowProfile === 'goal'
? 'When exactly one active Goal exists, run ospec execute bootstrap before dispatching workers.'
: 'A classic Change uses proposal.md, tasks.md, state.json, verification.md, and review.md directly; do not run Goal bootstrap, task graph, worker dispatch, or Loop commands.'
: 'When active work is ambiguous, inspect the profile-aware status before selecting Change or Goal commands.',
'Do not launch workers, run tests, archive, merge, or edit source files from the session brief alone.',

@@ -298,9 +304,25 @@ 'Use ospec status, ospec changes status, and ospec progress when the repository state is ambiguous.',

const activeChange = activeReport.changes.length === 1 ? activeReport.changes[0] : null;
const activeGoal = activeChange?.workflowProfile === 'goal' ? activeChange : null;
const activeChangeRoot = activeChange
? (path.isAbsolute(activeChange.path) ? activeChange.path : path.resolve(targetPath, activeChange.path))
: null;
const activeDecisionPath = activeChangeRoot
? path.relative(targetPath, path.join(activeChangeRoot, 'artifacts', 'agents', 'decisions')).replace(/\\/g, '/')
: 'active-change artifacts/agents/decisions/ when decision gates exist';
const profileReads = activeChangeRoot
? activeGoal
? [path.relative(targetPath, path.join(activeChangeRoot, 'artifacts', 'agents', 'bootstrap.json')).replace(/\\/g, '/')]
: ['proposal.md', 'tasks.md', 'state.json', 'verification.md', 'review.md']
.map(fileName => path.relative(targetPath, path.join(activeChangeRoot, fileName)).replace(/\\/g, '/'))
: [];
const bootstrap = {
projectEntryCommand: sessionCommand,
activeChangeBootstrapCommand: activeChange
? (0, helpers_1.formatCliCommand)('ospec', 'execute', 'bootstrap', activeChange.path)
activeWorkflowProfile: activeChange?.workflowProfile || null,
activeChangeBootstrapCommand: activeGoal
? (0, helpers_1.formatCliCommand)('ospec', 'execute', 'bootstrap', activeGoal.path)
: null,
safeNextSource: '.ospec/session-brief.json recommendedCommands[0]',
decisionGateSource: 'active-change artifacts/agents/bootstrap.json execution.decisions and artifacts/agents/decisions/',
decisionGateSource: activeGoal
? 'active Goal artifacts/agents/bootstrap.json execution.decisions and artifacts/agents/decisions/'
: 'active Change artifacts/agents/decisions/',
pluginGateSource: 'project .skillrc plugin configuration and active-change plugin artifacts',

@@ -310,8 +332,4 @@ requiredReads: [

'.ospec/session-brief.md',
activeChange
? path.relative(targetPath, path.join(activeChange.path, 'artifacts', 'agents', 'bootstrap.json')).replace(/\\/g, '/')
: 'active-change artifacts/agents/bootstrap.json when exactly one active change exists',
activeChange
? path.relative(targetPath, path.join(activeChange.path, 'artifacts', 'agents', 'decisions')).replace(/\\/g, '/')
: 'active-change artifacts/agents/decisions/ when decision gates exist',
...profileReads,
activeDecisionPath,
],

@@ -323,6 +341,8 @@ };

`Run ${sessionCommand} or read the freshly written .ospec/session-brief.json.`,
activeChange
activeGoal
? `Run ${bootstrap.activeChangeBootstrapCommand} before dispatch, launch, review, verification, or finish.`
: 'If one active change is present after the session brief, run ospec execute bootstrap for that change.',
'If bootstrap reports required pending user decisions, ask the user to choose and record the answer with ospec execute decision before dispatching work.',
: activeChange
? `Continue the classic Change from ${activeChange.path}/proposal.md and tasks.md; do not run Goal bootstrap, task graph, worker dispatch, or Loop commands.`
: 'Follow the profile-aware recommendedCommands in the refreshed session brief.',
'If active decision artifacts report required pending user decisions, ask the user to choose and record the answer with ospec execute decision before continuing.',
'Treat plugin gates as project/change artifacts; do not approve, reject, dispatch, or run plugin work implicitly.',

@@ -453,4 +473,27 @@ ],

const activeChange = activeChanges[0];
if (activeChange.workflowProfile === 'change') {
if (activeChange.archiveReady || activeChange.status === 'ready_to_archive') {
commands.push({
label: 'Finalize ready classic change',
command: formatCommand('finalize', activeChange.path),
});
}
commands.push({
label: 'Continue classic change',
command: formatCommand('progress', activeChange.path),
});
commands.push({
label: 'Verify classic change before closeout',
command: formatCommand('verify', activeChange.path),
});
if (queuedChanges.length > 0) {
commands.push({
label: 'Continue explicit queue tracking after active change',
command: formatCommand('run', runReport.currentRun ? 'step' : 'start', projectPath),
});
}
return commands;
}
commands.push({
label: 'Refresh active change bootstrap',
label: 'Refresh active Goal bootstrap',
command: formatCommand('execute', 'bootstrap', activeChange.path),

@@ -482,4 +525,4 @@ });

target: 'codex',
startupUse: 'Read using-ospec.md, run ospec session, then run ospec execute bootstrap for the active change when present.',
nativeExecution: 'Use native subagents through the current Codex harness after ospec execute dispatch and launch-plan review.',
startupUse: 'Read using-ospec.md, run ospec session, and follow its profile-aware recommendedCommands; bootstrap only an active Goal.',
nativeExecution: 'Use native subagents through the current Codex harness only for a Goal after ospec execute dispatch and launch-plan review.',
},

@@ -493,3 +536,3 @@ {

target: 'gemini',
startupUse: 'Read using-ospec.md, refresh session context, and follow bootstrap nextInstruction.',
startupUse: 'Read using-ospec.md, refresh session context, and follow the profile-aware nextInstruction.',
nativeExecution: 'Use @generalist workers only for dispatch packets marked ready.',

@@ -514,3 +557,3 @@ },

target: 'generic',
startupUse: 'Run the session command, inspect recommendedCommands, then bootstrap the single active change if available.',
startupUse: 'Run the session command and follow recommendedCommands; bootstrap only when the single active item is a Goal.',
nativeExecution: 'Dispatch native agents only when the host harness has an equivalent safe worker mechanism.',

@@ -523,3 +566,3 @@ },

? brief.activeChanges
.map(change => `- ${change.name}: ${change.status}, ${change.progress}%, ${change.summaryStatus} (${change.path})`)
.map(change => `- ${change.name} [${change.workflowProfile}]: ${change.status}, ${change.progress}%, ${change.summaryStatus} (${change.path})`)
.join('\n')

@@ -620,2 +663,3 @@ : '- None';

`- Project entry command: \`${artifact.bootstrap.projectEntryCommand}\``,
`- Active workflow profile: ${artifact.bootstrap.activeWorkflowProfile || 'none'}`,
`- Active change bootstrap command: ${artifact.bootstrap.activeChangeBootstrapCommand ? `\`${artifact.bootstrap.activeChangeBootstrapCommand}\`` : 'none'}`,

@@ -674,2 +718,3 @@ `- Safe next source: ${artifact.bootstrap.safeNextSource}`,

`- Project entry command: \`${artifact.bootstrap.projectEntryCommand}\``,
`- Active workflow profile: ${artifact.bootstrap.activeWorkflowProfile || 'none'}`,
`- Active change bootstrap command: ${artifact.bootstrap.activeChangeBootstrapCommand ? `\`${artifact.bootstrap.activeChangeBootstrapCommand}\`` : 'none'}`,

@@ -676,0 +721,0 @@ `- Safe next source: ${artifact.bootstrap.safeNextSource}`,

@@ -364,2 +364,3 @@ export type ProjectMode = 'lite' | 'standard' | 'full';

path: string;
workflowProfile: WorkflowProfileId;
activatedSteps: string[];

@@ -366,0 +367,0 @@ summaryStatus: ChangeSummaryStatus;

@@ -131,29 +131,30 @@ "use strict";

Execute Commands:
ospec execute bootstrap [change-path|project-path] - write a one-change startup/resume snapshot with project session brief context and next safe action
ospec execute handoff [change-path|project-path] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic] - write a cross-harness worker handoff guide with native agent mapping and project session context
ospec execute preflight [change-path|project-path] [--stage design|plan] [--force] - run or reuse a zero-token deterministic planning preflight
ospec execute status [change-path|project-path] [--brief] - show task graph controller state; prefer --brief and the emitted packet path for controller loops
ospec execute next [change-path|project-path] - show dispatchable next task(s)
ospec execute route [change-path|project-path] - write a workflow-route artifact with the next recommended OSpec command
ospec execute workspace [change-path|project-path] - inspect git workspace safety and write workspace-status artifacts
ospec execute worktree [change-path|project-path] [--branch name] [--path path] [--base ref] - write an isolated worktree preparation plan without creating it
ospec execute worktree [change-path|project-path] --create [--branch name] [--path path] [--base ref] - explicitly run git worktree add and record the result
ospec execute worktree [change-path|project-path] --cleanup [--path path] - explicitly run git worktree remove for the planned or provided worktree path
ospec execute finish [change-path|project-path] [--target main] [--remote origin] - write a closeout readiness plan without finalizing, merging, pushing, or deleting worktrees
ospec execute dispatch [change-path|project-path] [--task task-id] [--limit N] - create parallel-safe worker dispatch packet(s) with session context, worker profiles, and target tool mapping
ospec execute launch [change-path|project-path] [--task task-id] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic] [--dry-run] [--json] - write the capability-based runtime adapter launch plan without starting workers; --json prints the machine-readable artifact
ospec execute collect [change-path|project-path] [--task task-id] [--run run-id] [--status DONE|DONE_WITH_CONCERNS|NEEDS_CONTEXT|BLOCKED] [--summary "..."] - collect a worker run into task completion state
ospec execute retry [change-path|project-path] --task task-id [--run run-id] [--summary "..."] [--force] - reopen a blocked or failed task and create a fresh dispatch packet
ospec execute complete <task-id> [change-path|project-path] [--status DONE|DONE_WITH_CONCERNS|NEEDS_CONTEXT|BLOCKED] [--summary "..."] [--usage-file usage.json] - record a worker result and ingest the dispatch usage sidecar automatically when present; NEEDS_CONTEXT/BLOCKED writes blocker escalation artifacts
ospec execute defer-blocker <task-id> [change-path|project-path] --reason "..." - explicitly defer a durable external acceptance blocker to final review so dependency-safe implementation can continue; the task stays BLOCKED and finalization/archive remain gated
ospec execute sync [change-path|project-path] - sync worker status, bootstrap/state.json, and the project session brief
ospec execute review [change-path|project-path] [--task task-id] [--stage spec|quality] - create a non-controller task-level or final review packet; controller Goals use ospec loop tick
ospec execute feedback [change-path|project-path] [--stage spec|quality] [--summary "..."] - write a review feedback handling plan without editing source files
ospec execute repair [change-path|project-path] - convert all NEEDS_CHANGES final-review findings into one grouped repair task and dispatch
Goal-only unless noted; classic Changes use ospec progress, top-level ospec verify, and ospec finalize.
ospec execute bootstrap [goal-path|project-path] - write a one-Goal startup/resume snapshot with project session brief context and next safe action
ospec execute handoff [goal-path|project-path] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic] - write a cross-harness worker handoff guide with native agent mapping and project session context
ospec execute preflight [goal-path|project-path] [--stage design|plan] [--force] - run or reuse a zero-token deterministic planning preflight
ospec execute status [goal-path|project-path] [--brief] - show task graph controller state; prefer --brief and the emitted packet path for controller loops
ospec execute next [goal-path|project-path] - show dispatchable next task(s)
ospec execute route [goal-path|project-path] - write a workflow-route artifact with the next recommended OSpec command
ospec execute workspace [goal-path|project-path] - inspect git workspace safety and write workspace-status artifacts
ospec execute worktree [goal-path|project-path] [--branch name] [--path path] [--base ref] - write an isolated worktree preparation plan without creating it
ospec execute worktree [goal-path|project-path] --create [--branch name] [--path path] [--base ref] - explicitly run git worktree add and record the result
ospec execute worktree [goal-path|project-path] --cleanup [--path path] - explicitly run git worktree remove for the planned or provided worktree path
ospec execute finish [goal-path|project-path] [--target main] [--remote origin] - write a closeout readiness plan without finalizing, merging, pushing, or deleting worktrees
ospec execute dispatch [goal-path|project-path] [--task task-id] [--limit N] - create parallel-safe worker dispatch packet(s) with session context, worker profiles, and target tool mapping
ospec execute launch [goal-path|project-path] [--task task-id] [--target codex|gpt|claude|gemini|opencode|cursor|copilot|shell|generic] [--dry-run] [--json] - write the capability-based runtime adapter launch plan without starting workers; --json prints the machine-readable artifact
ospec execute collect [goal-path|project-path] [--task task-id] [--run run-id] [--status DONE|DONE_WITH_CONCERNS|NEEDS_CONTEXT|BLOCKED] [--summary "..."] - collect a worker run into task completion state
ospec execute retry [goal-path|project-path] --task task-id [--run run-id] [--summary "..."] [--force] - reopen a blocked or failed task and create a fresh dispatch packet
ospec execute complete <task-id> [goal-path|project-path] [--status DONE|DONE_WITH_CONCERNS|NEEDS_CONTEXT|BLOCKED] [--summary "..."] [--usage-file usage.json] - record a worker result and ingest the dispatch usage sidecar automatically when present; NEEDS_CONTEXT/BLOCKED writes blocker escalation artifacts
ospec execute defer-blocker <task-id> [goal-path|project-path] --reason "..." - explicitly defer a durable external acceptance blocker to final review so dependency-safe implementation can continue; the task stays BLOCKED and finalization/archive remain gated
ospec execute sync [goal-path|project-path] - sync worker status, bootstrap/state.json, and the project session brief
ospec execute review [goal-path|project-path] [--task task-id] [--stage spec|quality] - create a non-controller task-level or final review packet; controller Goals use ospec loop tick
ospec execute feedback [goal-path|project-path] [--stage spec|quality] [--summary "..."] - write a review feedback handling plan without editing source files
ospec execute repair [goal-path|project-path] - convert all NEEDS_CHANGES final-review findings into one grouped repair task and dispatch
ospec execute decision [change-path|project-path] --id id --question "..." --option id:label:impact --option id:label:impact [--recommended id] [--required|--optional] - record a durable user choice gate that can block dispatch until selected
ospec execute decision [change-path|project-path] --id id --select option-id --answered-by user [--summary "..."] - record the user's selected option with explicit provenance and unblock required decision gates
ospec execute debug [change-path|project-path] --phase reproduce|isolate|hypothesize|fix|verify --symptom "..." --root-cause "..." [--status CONFIRMED|FIXED|BLOCKED|SKIPPED] [--hypothesis "..."] [--command "..."] [--summary "..."] - record staged debugging evidence
ospec execute tdd [change-path|project-path] --phase red|green|refactor --command "npm test -- focused" [--status PASSED|FAILED|BLOCKED|SKIPPED] [--exit-code 1] [--test "..."] [--summary "..."] - record TDD cycle evidence
ospec execute require-verification [change-path|project-path] --id id --kind browser|e2e|test|lint|build|manual|other --description "..." [--required|--optional] - persist a verification surface that final verification and archive must enforce
ospec execute verify [change-path|project-path] --command "npm test" [--status PASSED|FAILED|BLOCKED|SKIPPED] [--satisfies requirement-id] [--exit-code N] [--summary "..."] - record verification evidence; PASSED requires --exit-code 0
ospec execute debug [goal-path|project-path] --phase reproduce|isolate|hypothesize|fix|verify --symptom "..." --root-cause "..." [--status CONFIRMED|FIXED|BLOCKED|SKIPPED] [--hypothesis "..."] [--command "..."] [--summary "..."] - record staged debugging evidence
ospec execute tdd [goal-path|project-path] --phase red|green|refactor --command "npm test -- focused" [--status PASSED|FAILED|BLOCKED|SKIPPED] [--exit-code 1] [--test "..."] [--summary "..."] - record TDD cycle evidence
ospec execute require-verification [goal-path|project-path] --id id --kind browser|e2e|test|lint|build|manual|other --description "..." [--required|--optional] - persist a verification surface that final verification and archive must enforce
ospec execute verify [goal-path|project-path] --command "npm test" [--status PASSED|FAILED|BLOCKED|SKIPPED] [--satisfies requirement-id] [--exit-code N] [--summary "..."] - record verification evidence; PASSED requires --exit-code 0
ospec execute help - show execute command help

@@ -160,0 +161,0 @@ `;

{
"name": "@clawplays/ospec-cli",
"version": "1.9.0",
"version": "1.9.1",
"description": "Official OSpec CLI package for spec-driven development (SDD) and document-driven development in AI coding agent and CLI workflows.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -46,3 +46,3 @@ ---

Use the full `ospec execute ...` layer only for goal work or when the user explicitly requests agent/worker execution for a change.
Use the full `ospec execute ...` task-graph/controller layer only for Goal work. A classic Change may use the shared `ospec execute decision` command for durable user choices, but it must not enter Goal bootstrap, workspace, dispatch, review, evidence, or Loop commands.

@@ -49,0 +49,0 @@ - Start or resume with `ospec session` and `ospec execute bootstrap`.

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display