Skip to content

Commit 6945274

Browse files
committed
Release 1.8.17
1 parent 679ed52 commit 6945274

57 files changed

Lines changed: 1392 additions & 253 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ CLI notes:
9292
- `--document-language`: generated doc language, choose from `en-US`, `zh-CN`, `ja-JP`, or `ar`
9393
- AI-first language resolution order: explicit language request in the conversation -> current conversation language -> persisted project language in `.skillrc`
9494
- CLI language resolution order: explicit `--document-language` -> persisted project language in `.skillrc` -> existing project docs / managed `for-ai/*` guidance / asset manifest -> fallback `en-US`
95-
- OSpec persists the chosen project document language in `.skillrc` and reuses it for `for-ai` guidance, `ospec new`, and `ospec update`
95+
- OSpec persists the chosen project document language in `.skillrc` and reuses it for `for-ai` guidance, `ospec change`, and `ospec update`
9696
- new projects initialized by `ospec init` default to the nested layout: root `.skillrc` and `README.md`, with OSpec-managed files under `.ospec/`
9797
- plain init does not create optional knowledge maps such as `.ospec/knowledge/src/` or `.ospec/knowledge/tests/`; those appear only when a project already has legacy knowledge content to migrate or when future explicit knowledge-generation flows create them
9898
- CLI commands still accept shorthand like `changes/active/<change-name>`, but the physical path in nested projects is `.ospec/changes/active/<change-name>`
@@ -122,9 +122,9 @@ Claude / Codex skill mode:
122122
<summary>Command line</summary>
123123

124124
```bash
125-
ospec new docs-homepage-refresh .
126-
ospec new fix-login-timeout .
127-
ospec new update-billing-copy .
125+
ospec change docs-homepage-refresh .
126+
ospec change fix-login-timeout .
127+
ospec change update-billing-copy .
128128
```
129129

130130
</details>
@@ -185,7 +185,7 @@ Archive notes:
185185

186186
### Goal: Use It For Work That Needs More Care
187187

188-
Use a goal when the work touches several parts of the project, has important design choices, changes an API or data, carries security or migration risk, or will take several rounds to finish. For a small, well-defined edit, use `ospec new` instead.
188+
Use a Goal only when you choose the full workflow. A user-selected Change remains a Change regardless of complexity, file count, risk, or batch size; create it with `ospec change` (`ospec new` remains an alias).
189189

190190
Start from a terminal:
191191

@@ -271,7 +271,7 @@ If you want to convert an older classic project to the new layout, run `ospec la
271271
272272
┌─────────────────────────────────────────────────────────────────┐
273273
│ 3. EXECUTION │
274-
│ ospec new <change-name> # classic fast change │
274+
│ ospec change <change-name> # classic fast change │
275275
│ ospec goal <goal-name> # full goal workflow │
276276
│ ospec brainstorm / plan (optional pre-change aids) │
277277
│ ospec session │
@@ -321,7 +321,7 @@ If you want to convert an older classic project to the new layout, run `ospec la
321321
- **Scoped review evidence and cost metrics**: task and final review dispatches write `artifacts/agents/review-packages/*.diff` with scoped Git evidence, while `artifacts/agents/execution-metrics.json` records packet/report/package bytes and task duration. Goal task graphs can enable `documentation_updates` so missing or undeclared project docs block archive.
322322
- **Tracked requirement execution**: small changes keep proposal, tasks, state, verification, and review files aligned; full goals also keep design, implementation plan, task graph, handoff, review, worker status, and evidence artifacts aligned.
323323
- **Goal experience contracts**: every goal runs with `Announce-Before-Act` (the AI announces its skill and stage, the `ospec execute …` command and the artifact it writes, and each subagent dispatch), `Brainstorm-First` (open direction, architecture, API, UI, risk, and scope decisions are asked one at a time through the native question UI before design is locked), and `Zero-Setup` (you only start a goal and describe the requirement — the AI runs every `ospec` command itself). In Claude Code, `ospec session hook --target claude --apply` adds hooks that announce every dispatch and hard-block subagent dispatch while a required decision is still pending.
324-
- **Optional pre-change aids**: `ospec brainstorm` writes durable exploration artifacts under `.ospec/brainstorms/`, with an optional static visual companion; `ospec plan` writes plan drafts under `.ospec/plans/` and only updates `implementation-plan.md` when `--apply` is passed. The default small-change flow starts with `ospec new`; the full workflow starts with `ospec goal`.
324+
- **Optional pre-change aids**: `ospec brainstorm` writes durable exploration artifacts under `.ospec/brainstorms/`, with an optional static visual companion; `ospec plan` writes plan drafts under `.ospec/plans/` and only updates `implementation-plan.md` when `--apply` is passed. The Change flow starts with `ospec change` (`ospec new` is an alias); the Goal flow starts with `ospec goal` only when selected by the user.
325325
- **Session brief and hooks**: `ospec session` writes `.ospec/session-brief.json` and `.ospec/session-brief.md` so agents or humans entering an existing project can see active changes, queued changes, queue-run state, indexed document and archived-feature counts, a cache fingerprint, and the next safe command before touching a change; `ospec session hook --target claude` writes opt-in harness startup artifacts plus a Claude Code hook bundle under `.ospec/hooks/`, and `--apply` idempotently merges it into `.claude/settings.json`.
326326
- **Integrated goal loop**: `ospec loop run --once` emits token-bounded task/review/verification action batches for fresh model-native subagents. It uses packet paths instead of duplicating the whole goal, persists pending actions and feedback, routes review failures through retry or one grouped repair wave, and enforces required decisions, L3 allowlists, budgets, no-progress stops, and comprehension-review pauses. The removed `loop watch` path now returns migration guidance without starting an agent process.
327327
- **Task graph controller**: `ospec execute bootstrap` writes a one-change startup/resume snapshot with the project session brief snapshot and next safe action; `handoff` writes a cross-tool worker handoff guide; `doc-review` creates design and implementation-plan reviewer packets; `status` and `next` report controller state; `workspace` records git workspace safety; `worktree` manages explicit git worktree plans/runs; `dispatch`, `launch`, `complete`, and `review` create and settle native-subagent packets; `retry` reopens blocked or needs-context work; `debug`, `tdd`, and `verify` record durable evidence; `sync` rebuilds `worker-status.md`. `orchestrate`, `launch --run --command`, and `review --run --command` are retained only as migration errors and never launch agent CLIs.

SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ Do not hand-write an approximation of `ospec init`. Do not assume a web stack, a
1818

1919
## Workflow Router
2020

21-
- Use `ospec new` / `ospec-change` for routine, scoped work. Its source of truth is `changes/active/<change>/proposal.md`, `changes/active/<change>/tasks.md`, `state.json`, `verification.md`, and `review.md`.
22-
- Use `ospec goal` / `ospec-goal` for complex, cross-cutting, high-risk, parallel, or evidence-heavy work. It additionally owns `changes/active/<change>/design.md`, `changes/active/<change>/implementation-plan.md`, `changes/active/<change>/artifacts/agents/task-graph.json`, worker/reviewer artifacts, and evidence gates.
23-
- Do not silently promote a change to a goal or create goal-only artifacts for a classic change. A routing recommendation may explain why one workflow fits, but the user's explicit choice remains authoritative.
21+
- Use `ospec change` / `ospec-change` when the user selects a Change. Its source of truth is `changes/active/<change>/proposal.md`, `changes/active/<change>/tasks.md`, `state.json`, `verification.md`, and `review.md`; `ospec new` remains a compatibility alias.
22+
- Use `ospec goal` / `ospec-goal` only when the user selects a Goal. It additionally owns `changes/active/<change>/design.md`, `changes/active/<change>/implementation-plan.md`, `changes/active/<change>/artifacts/agents/task-graph.json`, worker/reviewer artifacts, and evidence gates.
23+
- Never auto-promote, reject, or replace a user-selected Change because of complexity, risk, file count, parallelism, or batch size. The user's explicit profile choice is authoritative.
2424
- Enter queue mode only when the user explicitly asks to queue or execute multiple changes.
2525

2626
For an initialized project, read in this order:
@@ -77,7 +77,7 @@ Use `ospec docs generate` for a docs-only repair or refresh. Do not create a cha
7777

7878
```text
7979
Initialize: ospec init [path] -> verify generated project shell
80-
Change: ospec new <name> -> implement -> ospec verify -> ospec finalize
80+
Change: ospec change <name> -> implement -> ospec verify -> ospec finalize
8181
Goal: ospec goal <name> -> session/bootstrap -> design/plan reviews -> dispatch/review -> verify/finalize
8282
Docs: ospec docs generate [path] -> ospec docs status -> ospec index check
8383
Resume: ospec session [path] -> read brief/index -> run the persisted next safe command

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ tags: [ai, guide, ospec]
2828
- استخدم الفهرس لتحديد موقع المعرفة قبل قراءة الملفات الهدف
2929
- عند الدخول إلى مشروع 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
3030
- تعامل مع خطوات built-in quality policy المفعّلة مثل `tdd_cycle` و`root_cause_debug` و`verification_evidence` كـ `optional_steps` خاضعة لـ archive gate؛ غطّها في `tasks.md` و`verification.md` وملفات evidence المطابقة قبل closeout
31-
- استخدم `ospec new` / `ospec-change` للتغييرات الصغيرة والروتينية، وأبقها على تدفق 1.0 السريع: `proposal.md` و`tasks.md` والتنفيذ و`verification.md` و`review.md` و`state.json`
32-
- استخدم `ospec goal` / `ospec-goal` للعمل المعقد الذي يحتاج `design.md` و`implementation-plan.md` وtask graph وdocument review وworker/reviewer handoff وevidence gates
31+
- استخدم `ospec change` / `ospec-change` عندما يختار المستخدم Change، ويبقى `ospec new` alias. أبقها على تدفق 1.0 السريع بغض النظر عن التعقيد أو flags أو عدد الملفات أو المخاطر أو حجم الدفعة: `proposal.md` و`tasks.md` والتنفيذ و`verification.md` و`review.md` و`state.json`
32+
- استخدم `ospec goal` / `ospec-goal` فقط عندما يختار المستخدم Goal صراحة
3333
- طبقة التحكم `ospec execute …` (bootstrap وdoc-review و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
3434
- عند تنفيذ goal بمساعدة AI، لا تطلب من المستخدم كتابة `design.md` أو `implementation-plan.md` يدوياً؛ أنشئهما أو حدّثهما من المتطلب و`proposal.md` وسياق المشروع قبل اشتقاق `artifacts/agents/task-graph.json` أو تعديل `tasks.md` أو الكود
3535
- عند تنفيذ classic change، لا تنشئ goal-only files ما لم يطلب المستخدم ترقية العمل صراحة إلى goal
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# بروتوكول Classic Change
2+
3+
استخدم هذا البروتوكول المختصر عندما يختار المستخدم OSpec change. اختيار profile للمستخدم؛ لا ترقِّ change تلقائياً إلى Goal ولا ترفضها أو تستبدلها بسبب التعقيد أو flags أو عدد الملفات أو حجم الدفعة.
4+
5+
## السياق
6+
7+
في البداية اقرأ `.skillrc` والعناصر ذات الصلة من `SKILL.index.json` و`proposal.md` و`tasks.md` و`state.json` فقط. اقرأ `verification.md` عند التحقق و`review.md` عند closeout. اقرأ `ai-guide.md` أو `execution-protocol.md` الكامل فقط عند غياب هذا الملف أو تفعيل plugin حاجب أو وجود قاعدة محددة غامضة.
8+
9+
## دورة الحياة
10+
11+
1. أنشئ العمل الجديد عبر `ospec change <change-name> [path]`، ويبقى `ospec new` alias للتوافق.
12+
2. إذا وُجد active change مطابق فتابعه ولا تنشئ نسخة مكررة.
13+
3. تدخل تغييرات batch إلى queue وتُنفذ بالتتابع في worktree المشترك.
14+
4. حافظ فقط على `proposal.md` و`tasks.md` و`state.json` و`verification.md` و`review.md`، ولا تنشئ design أو plan أو task graph أو worker أو review provenance artifacts الخاصة بـ Goal.
15+
5. شغّل فحوص المشروع المرتبطة فعلاً بالتغيير وسجّل الأوامر والنتائج في `verification.md`، ولا تفرض build أو lint أو test أو TDD أو debug غير ذي صلة.
16+
6. ينفذ AI الحالي مراجعة خفيفة واحدة. يمكن إغلاق `APPROVED` و`APPROVED_WITH_CONCERNS` تلقائياً، بينما توقف `PENDING` و`NEEDS_CHANGES` و`BLOCKED` الإغلاق.
17+
7. شغّل `ospec verify` عند الحاجة إلى preview صريح. بعد اكتمال التنفيذ والتحقق وسياسة الوثائق وplugin gates والمراجعة، شغّل `ospec finalize` فوراً لمزامنة classic state والأرشفة بشكل ذري.
18+
19+
## سياسة الوثائق
20+
21+
اضبط `change_type` على `bugfix` أو `feature` أو `maintenance` أو `docs`، واضبط `documentation_impact` على `none` أو `required`.
22+
23+
- يمكن للـ bugfix استخدام `none` مع `documentation_reason` واضح، إلا إذا غيّر سلوك المستخدم أو API أو عقد التشغيل.
24+
- يجب أن تستخدم feature أو docs change القيمة `required` وأن تسجل وثيقة مشروع أو module أو API أو user حقيقية واحدة على الأقل في `documentation_updates`.
25+
- لا يُحتسب ملخص `docs/project/changes/...` المولد تلقائياً كوثائق feature.
26+
- حدّث `SKILL.md` فقط عند تغير قواعد module أو تعليمات AI أو عقود الاستخدام.
27+
- يعاد بناء `SKILL.index.json` تلقائياً بعد archive وليس task يدوية.
28+
29+
توقف فقط لقرار مستخدم حقيقي أو فشل تحقق أو review غير محلولة أو plugin gate حاجب أو pause صريح.

0 commit comments

Comments
 (0)