Skip to content

Commit 5f72a13

Browse files
committed
Release 1.8.22
1 parent 5e6a968 commit 5f72a13

22 files changed

Lines changed: 68 additions & 26 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ Archive notes:
184184
- run your project-specific deploy, test, and QA flow first
185185
- use `ospec verify` to confirm the active change is ready
186186
- use `ospec finalize` to rebuild indexes and archive the accepted change
187-
- force archive is never automatic: it requires the force flag, an exact change-name confirmation, and an audit reason; it refuses a pending Loop action and marks the archive `forced`, `incomplete`, and `accepted-risk` instead of completed
187+
- force archive is never automatic: it requires the force flag, an exact change-name confirmation, and an audit reason; it refuses any missing, `issued`, or `running` Loop item, but may preserve an unconsumed pointer whose items are all terminal; the archive is marked `forced`, `incomplete`, and `accepted-risk` instead of completed
188188
- new nested projects archive under `.ospec/changes/archived/YYYY-MM/YYYY-MM-DD/<change-name>`; CLI shorthand under `changes/archived/...` still works
189189
- existing flat archives are reorganized by `ospec update`
190190

SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Use the full `ospec execute ...` layer only for goal work or when the user expli
5555
- Record optional provider usage sidecars through the supported completion command. Metrics are evidence, not an archive gate unless project policy says otherwise.
5656
- When final review requires changes, group all findings into one repair wave and one repair task, run its covering verification once, then run one combined task review and one final re-review. In continuous mode, a stalled task or final finding set may receive one durable root-cause strategy escalation; execute that packet normally, but never reissue the same strategy key or raise a limit to repeat unchanged work.
5757
- Keep reviewers independent: they read scoped evidence, do not edit implementation, do not accept hidden severity downgrades, and report findings before summaries. Record actionable findings in both Markdown and the sibling structured `*.findings.json`.
58-
- Do not archive while task graph, review, decision, documentation, optional-step, worker-status, or verification gates are unresolved during normal closeout. Force archive is an explicit user-directed exception only: first report the unresolved gates and `NOT_VERIFIED` evidence, then require `--force-archive`, an exact-name `--confirm-force-archive`, and a non-empty audit reason. Never infer this authorization from urgency, a blocker, or a request to "finish"; never run it while a Loop action is pending.
58+
- Do not archive while task graph, review, decision, documentation, optional-step, worker-status, or verification gates are unresolved during normal closeout. Force archive is an explicit user-directed exception only: first report the unresolved gates and `NOT_VERIFIED` evidence, then require `--force-archive`, an exact-name `--confirm-force-archive`, and a non-empty audit reason. Never infer this authorization from urgency, a blocker, or a request to "finish". A pending Loop pointer is safe only when every action item is durably terminal (`completed`, `failed`, or `expired`); any missing, `issued`, or `running` item still blocks archive.
5959

6060
Detailed goal artifacts live under `changes/active/<change>/artifacts/agents/` and `artifacts/reviews/`. Read their current packet or `for-ai/execution-protocol.md` for exact paths and commands instead of expanding the entire inventory here.
6161

assets/for-ai/ar/ai-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ tags: [ai, guide, ospec]
4646
- قبل إنشاء git worktree معزول، استخدم `ospec execute worktree [changes/active/<change>] [--branch name] [--path path] [--base ref]` لكتابة `artifacts/agents/worktree-plan.json` و`artifacts/agents/worktree-plan.md`؛ هذا الأمر يسجل خطة تحضير فقط ولا يشغّل `git worktree add`
4747
- قبل الإغلاق النهائي، استخدم `ospec execute finish [changes/active/<change>] [--target main] [--remote origin]` لكتابة `artifacts/agents/finish-plan.json` و`artifacts/agents/finish-plan.md`؛ هذا الأمر يسجل الجاهزية ونص الأوامر فقط ولا يشغل finalize أو archive أو push أو merge أو حذف worktree. عندما تكون حالة finish plan هي ready ولا توجد required pending decision، شغّل `ospec finalize [changes/active/<change>]`؛ استخدم `ospec archive ... --check` كمعاينة dry-run اختيارية فقط ولا تتوقف بعد نجاحها
4848
- الإغلاق تلقائي عند الجاهزية: عندما ينجح `ospec verify [changes/active/<change>]` ولا توجد required pending decision أو بوابة إضافة (plugin gate) حاجبة، شغّل `ospec finalize [changes/active/<change>]` بنفسك——لا تتوقف بعد نجاح `ospec verify` أو `ospec archive ... --check` (الـ `--check` معاينة فقط) ولا تنتظر طلب المستخدم. لا توقف الإغلاق إلا حين تحتاج بوابة فعلاً إلى إنسان: required decision غير مُجابة، أو بوابة إضافة حاجبة غير معتمدة (مثل Stitch أو Checkpoint)، أو blockers حقيقية يبلّغ عنها verify أو archive، أو طلب صريح من المستخدم للمعاينة أو الموافقة قبل الأرشفة
49-
- الأرشفة القسرية استثناء بتفويض صريح من المستخدم وليست مسارا احتياطيا تلقائيا. أبلغ أولا عن كل البوابات الفاشلة وعناصر `NOT_VERIFIED` وتأكد من عدم وجود Loop action معلق، ثم شغّل `ospec finalize [changes/active/<change>] --force-archive --confirm-force-archive <exact-change-name> --reason "<accepted risk>"`. لا تحول الفشل إلى نجاح؛ يبقى الأرشيف incomplete وaccepted-risk.
49+
- الأرشفة القسرية استثناء بتفويض صريح من المستخدم وليست مسارا احتياطيا تلقائيا. أبلغ أولا عن كل البوابات الفاشلة وعناصر `NOT_VERIFIED`. يجوز بقاء pending Loop pointer فقط عندما تكون كل item مسجلة نهائيا كـ `completed` أو `failed` أو `expired`؛ أما الحالة المفقودة أو `issued` أو `running` فتمنع الأرشفة. ثم شغّل `ospec finalize [changes/active/<change>] --force-archive --confirm-force-archive <exact-change-name> --reason "<accepted risk>"`. لا تحول الفشل إلى نجاح؛ يبقى الأرشيف incomplete وaccepted-risk.
5050
- بوابات القرار وخيارات brainstorm ملك للمستخدم: **لا تختر الخيار الموصى به تلقائياً ولا تحلّ بوابة بنفسك**——اعرض كل بوابة عبر سلّم القدرات (واجهة سؤال أصلية ← واجهة خطة/موافقة ← نص محادثة عادي) وانتظر اختيار المستخدم الفعلي؛ البوابات الإلزامية تحجب التنفيذ والإرسال حتى يجيب المستخدم، و`recommended` مجرد تلميح يُعرض على المستخدم
5151
- اكتب كل وثيقة change وbrainstorm تنشئها بلغة وثائق المشروع (`documentLanguage` في `.skillrc` / إرشادات `for-ai/` المُدارة)؛ لا تخلط العربية والإنجليزية داخل change واحد
5252
- استخدم `ospec execute dispatch` و`ospec execute complete` للـ handoff الدائم؛ تتضمن كل packet project session brief snapshot وworker profile وtarget tool mapping، ويحدد `--task` و`--limit` النطاق. في Goal مملوكة لـ controller، أصدر task/final reviews عبر `ospec loop tick [changes/active/<change>]` لربط `artifacts/agents/review-dispatches/` بـ executor provenance الحقيقي؛ استخدم `ospec execute review` فقط خارج controller Loop، ثم `ospec execute feedback` بعد القرار و`ospec execute sync` بعد التعديل اليدوي

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ tags: [ai, protocol, ospec]
5151
- قبل إنشاء git worktree معزول، استخدم `ospec execute worktree [changes/active/<change>] [--branch name] [--path path] [--base ref]` لكتابة `artifacts/agents/worktree-plan.json` و`artifacts/agents/worktree-plan.md`؛ هذا الأمر يسجل خطة تحضير فقط ولا يشغّل `git worktree add`
5252
- قبل الإغلاق النهائي، استخدم `ospec execute finish [changes/active/<change>] [--target main] [--remote origin]` لكتابة `artifacts/agents/finish-plan.json` و`artifacts/agents/finish-plan.md`؛ هذا الأمر يسجل الجاهزية ونص الأوامر فقط ولا يشغل finalize أو archive أو push أو merge أو حذف worktree. عندما تكون حالة finish plan هي ready ولا توجد required pending decision، شغّل `ospec finalize [changes/active/<change>]`؛ استخدم `ospec archive ... --check` كمعاينة dry-run اختيارية فقط ولا تتوقف بعد نجاحها
5353
- الإغلاق تلقائي عند الجاهزية: عندما ينجح `ospec verify [changes/active/<change>]` ولا توجد required pending decision أو بوابة إضافة (plugin gate) حاجبة، شغّل `ospec finalize [changes/active/<change>]` بنفسك——لا تتوقف بعد نجاح `ospec verify` أو `ospec archive ... --check` (الـ `--check` معاينة فقط) ولا تنتظر طلب المستخدم. لا توقف الإغلاق إلا حين تحتاج بوابة فعلاً إلى إنسان: required decision غير مُجابة، أو بوابة إضافة حاجبة غير معتمدة (مثل Stitch أو Checkpoint)، أو blockers حقيقية يبلّغ عنها verify أو archive، أو طلب صريح من المستخدم للمعاينة أو الموافقة قبل الأرشفة
54-
- الأرشفة القسرية استثناء بتفويض صريح من المستخدم وليست مسارا احتياطيا تلقائيا. أبلغ أولا عن كل البوابات الفاشلة وعناصر `NOT_VERIFIED` وتأكد من عدم وجود Loop action معلق، ثم شغّل `ospec finalize [changes/active/<change>] --force-archive --confirm-force-archive <exact-change-name> --reason "<accepted risk>"`. لا تحول الفشل إلى نجاح؛ يبقى الأرشيف incomplete وaccepted-risk.
54+
- الأرشفة القسرية استثناء بتفويض صريح من المستخدم وليست مسارا احتياطيا تلقائيا. أبلغ أولا عن كل البوابات الفاشلة وعناصر `NOT_VERIFIED`. يجوز بقاء pending Loop pointer فقط عندما تكون كل item مسجلة نهائيا كـ `completed` أو `failed` أو `expired`؛ أما الحالة المفقودة أو `issued` أو `running` فتمنع الأرشفة. ثم شغّل `ospec finalize [changes/active/<change>] --force-archive --confirm-force-archive <exact-change-name> --reason "<accepted risk>"`. لا تحول الفشل إلى نجاح؛ يبقى الأرشيف incomplete وaccepted-risk.
5555
- بوابات القرار وخيارات brainstorm ملك للمستخدم: **لا تختر الخيار الموصى به تلقائياً ولا تحلّ بوابة بنفسك**——اعرض كل بوابة عبر سلّم القدرات (واجهة سؤال أصلية ← واجهة خطة/موافقة ← نص محادثة عادي) وانتظر اختيار المستخدم الفعلي؛ البوابات الإلزامية تحجب التنفيذ والإرسال حتى يجيب المستخدم، و`recommended` مجرد تلميح يُعرض على المستخدم
5656
- اكتب كل وثيقة change وbrainstorm تنشئها بلغة وثائق المشروع (`documentLanguage` في `.skillrc` / إرشادات `for-ai/` المُدارة)؛ لا تخلط العربية والإنجليزية داخل change واحد
5757
- استخدم `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/`

assets/for-ai/en-US/ai-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ This document is the project-adopted AI guide copied from the OSpec mother spec.
4848
- Before creating an isolated worktree, use `ospec execute worktree [changes/active/<change>] [--branch name] [--path path] [--base ref]` to write `artifacts/agents/worktree-plan.json` and `artifacts/agents/worktree-plan.md`; plan mode does not run git. Use explicit `--create` to run `git worktree add`, and explicit `--cleanup` to run `git worktree remove`; both record `artifacts/agents/worktree-runs/`
4949
- Before final closeout, use `ospec execute finish [changes/active/<change>] [--target main] [--remote origin]` to write `artifacts/agents/finish-plan.json` and `artifacts/agents/finish-plan.md`; this command records readiness and command text only and does not finalize, archive, push, merge, or remove worktrees. When the finish plan status is ready and no required decision is pending, run `ospec finalize [changes/active/<change>]`; use `ospec archive ... --check` only as an optional dry-run preview and do not stop after it passes
5050
- Closeout is automatic when ready: once `ospec verify [changes/active/<change>]` passes and no required user decision or blocking plugin gate is pending, run `ospec finalize [changes/active/<change>]` yourself — do not stop after a passing `ospec verify` or `ospec archive ... --check` (`--check` is a preview only) and do not wait for the user to ask. Only pause closeout when a gate genuinely needs a human: a pending required user decision, an unapproved blocking plugin gate (for example Stitch or Checkpoint), real blockers reported by verify or archive, or an explicit user request to preview or approve before archiving
51-
- Force archive is an explicit user exception, never an automatic fallback. First report the failing gates and every `NOT_VERIFIED` item and confirm there is no pending Loop action. Then use `ospec finalize [changes/active/<change>] --force-archive --confirm-force-archive <exact-change-name> --reason "<accepted risk>"`. Preserve failures; the archive remains incomplete and accepted-risk.
51+
- Force archive is an explicit user exception, never an automatic fallback. First report the failing gates and every `NOT_VERIFIED` item. A retained pending Loop pointer is safe only when all item states are durably `completed`, `failed`, or `expired`; missing, `issued`, or `running` items still block. Then use `ospec finalize [changes/active/<change>] --force-archive --confirm-force-archive <exact-change-name> --reason "<accepted risk>"`. Preserve failures; the archive remains incomplete and accepted-risk.
5252
- 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
5353
- 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
5454
- Use `ospec execute dispatch` to create a parallel-safe batch of worker packets and `ospec execute complete` to record worker results; 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 `--task` for one task and `--limit` to cap a batch; required decisions block dispatch and `complete` writes blocker evidence for `NEEDS_CONTEXT` or `BLOCKED`. In a controller-owned Goal, use `ospec loop tick [changes/active/<change>]` for every task and final review so `artifacts/agents/review-dispatches/` is bound to real executor provenance; use `ospec execute review` directly only outside a controller Loop. Use `ospec execute feedback` after review decisions and `ospec execute sync` after manual artifact edits

0 commit comments

Comments
 (0)