🎩 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
59
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.3
to
1.9.4
+1
-0
assets/for-ai/ar/ai-guide.md

@@ -97,2 +97,3 @@ ---

- شغّل deterministic preflight للتصميم والخطة، ثم اشتق task graph، ثم نفّذ combined planning review مستقلة واحدة. يسمح بإصلاح تخطيط مجمّع واحد وإعادة مراجعة تفاضلية واحدة كحد أقصى؛ يعيد فشل المنفّذ دون تعديل التخطيط تسليح الحصة، وتُقبل النتائج التي لا تتجاوز medium حتمياً كـ `APPROVED_WITH_CONCERNS` بعد الإصلاح، وتبقى task review وfinal combined review وverification مطلوبة.
- تعكس قوائم التقدم الواقع: علّم معايير القبول في proposal.md فور نجاح دليل التحقق (بنود `[verify:<id>]` يعلّمها `ospec execute sync` تلقائياً)، والبنود غير المعلّمة تحظر الأرشفة؛ review.md في Goal ملخص مشتق من final review عبر sync ولا يحرر يدوياً.
- يحل worker/reviewer logical model profile حسب dispatch target الفعلي، بما في ذلك launch override. افصل requested/configured model عن provider-observed model؛ بدون provider/usage evidence يبقى observed model غير معروف.

@@ -99,0 +100,0 @@ - يتلقى command runner المسار `OSPEC_USAGE_FILE` ويجمع sidecar تلقائيا؛ ويبقى `ospec execute complete ... --usage-file usage.json` للإدخال اليدوي. تسجل metrics المصدر والحقول المرصودة وتغطية complete/partial/missing، ولا تعرض القيمة غير المبلّغ عنها كصفر مقاس.

@@ -101,2 +101,3 @@ ---

- شغّل deterministic preflight للتصميم والخطة، ثم اشتق task graph، ثم نفّذ combined planning review مستقلة واحدة؛ يسمح بإصلاح تخطيط مجمّع واحد وإعادة مراجعة تفاضلية واحدة كحد أقصى. يعيد فشل المنفّذ دون تعديل التخطيط تسليح الحصة، وتُقبل النتائج التي لا تتجاوز medium حتمياً كـ `APPROVED_WITH_CONCERNS` بعد الإصلاح؛ لا يبطل اعتماد التخطيط إلا تغيير دلالي في محتواه، ولا يبطله تقدم التنفيذ.
- يجب أن تعكس قوائم التقدم الواقع: علّم كل معيار قبول في proposal.md فور نجاح دليل التحقق الخاص به؛ البنود الموسومة بـ `[verify:<id>]` يعلّمها `ospec execute sync` تلقائياً بعد نجاح دليل `--satisfies <id>` المطابق، وتُحظر الأرشفة ما دامت في proposal.md بنود غير معلّمة. ملف review.md في Goal ملخص مشتق يعيد `ospec execute sync` كتابته من final review؛ لا تحرره يدوياً.
- تربط `.skillrc.workflow.model_profiles` ملفات `mechanical` و`standard` و`strong_reasoning` و`review` و`final_review` المنطقية بنماذج target؛ وعند غياب الربط يستخدم harness default مع warning في packet.

@@ -103,0 +104,0 @@ - يستخدم command runner المتغير `OSPEC_USAGE_FILE` لجمع normalized usage تلقائيا، ويبقى `--usage-file` كتجاوز يدوي. يجمع `execution-metrics.json` حسب capability tier وmodel profile وworkflow stage ويعرض تغطية complete/partial/missing.

@@ -118,2 +118,3 @@ ---

- Run deterministic design and plan preflights, derive the task graph, then run one independent combined planning review. One grouped planning repair and at most one delta-scoped re-review are the maximum; no-edit executor failures re-arm the repair, all-medium-or-lower findings settle deterministically as `APPROVED_WITH_CONCERNS`, and task review, final combined review, and verification remain required.
- Progress checklists track reality: tick proposal.md acceptance criteria as verification evidence passes (`[verify:<id>]`-tagged lines are auto-ticked by `ospec execute sync`); unchecked items block archiving. Goal review.md is derived from the final review by sync; never edit it by hand.
- Workers and reviewers use logical model profiles resolved against the actual dispatch target, including launch overrides. Keep requested/configured model separate from provider-observed model; absent provider/usage evidence means observed model is unknown, not selected by assertion.

@@ -120,0 +121,0 @@ - Command runners receive `OSPEC_USAGE_FILE` and automatically ingest that sidecar; `ospec execute complete ... --usage-file usage.json` remains available for manual ingestion. Metrics record their source, observed fields, and complete/partial/missing coverage, so an unreported counter is not presented as a measured zero.

@@ -121,2 +121,3 @@ ---

- Run deterministic design and plan preflights, derive the task graph, then run one independent combined planning review. Allow one grouped planning repair and at most one delta-scoped re-review; a repair executor failure with no planning edits re-arms the allowance, and a completed repair whose findings were all medium or lower settles deterministically as `APPROVED_WITH_CONCERNS`. Planning approvals invalidate only on semantic planning changes, never on execution progress.
- Progress checklists track reality: tick each proposal.md acceptance criterion as its verification evidence passes; acceptance lines tagged `[verify:<id>]` are auto-ticked by `ospec execute sync` once matching `--satisfies <id>` evidence passes, and archiving blocks while proposal.md has unchecked items. Goal review.md is a derived summary rewritten from the final review by `ospec execute sync`; never edit it by hand.
- `.skillrc.workflow.model_profiles` maps the `mechanical`, `standard`, `strong_reasoning`, `review`, and `final_review` logical profiles to target-specific models; missing mappings use the harness default and produce a packet warning.

@@ -123,0 +124,0 @@ - Command runners use `OSPEC_USAGE_FILE` for automatic normalized usage ingestion; `--usage-file` remains a manual override. `execution-metrics.json` aggregates by capability tier, model profile, and workflow stage and reports complete/partial/missing coverage.

@@ -97,2 +97,3 @@ ---

- design/plan deterministic preflight、task graph 導出、独立 combined planning review の順に実行する。grouped planning repair 1 回と delta re-review 最大 1 回までとし、planning 内容を変更しない executor 失敗は許容量を再アームし、findings がすべて medium 以下なら repair 後に `APPROVED_WITH_CONCERNS` として決定論的に確定する。task review、final combined review、verification は引き続き必須。
- 進捗チェックリストは実態を反映する:proposal.md の受け入れ基準は検証エビデンス通過時にチェック(`[verify:<id>]` 付き項目は `ospec execute sync` が自動チェック)し、未チェック項目は archive をブロックする。Goal の review.md は sync が final review から派生する。手動編集は禁止。
- worker/reviewer の logical model profile は launch override を含む実際の dispatch target に対して解決する。requested/configured model と provider-observed model を分離し、provider/usage evidence がなければ observed model は unknown とする。

@@ -99,0 +100,0 @@ - command runner は `OSPEC_USAGE_FILE` を受け取り sidecar を自動集計する。`ospec execute complete ... --usage-file usage.json` は手動入力として残す。metrics は source、observed fields、complete/partial/missing coverage を記録し、未報告値を測定済み 0 として扱わない。

@@ -101,2 +101,3 @@ ---

- design/plan deterministic preflight、task graph 導出、独立 combined planning review の順に実行し、grouped planning repair 1 回と delta re-review 最大 1 回までとする。planning 内容を変更しない executor 失敗は許容量を再アームし、repair 完了後に findings がすべて medium 以下なら `APPROVED_WITH_CONCERNS` として決定論的に確定する。planning 承認は planning の意味的変更のみで無効化され、実行進捗では無効化されない。
- 進捗チェックリストは実態を反映する。proposal.md の各受け入れ基準は検証エビデンス通過時にチェックし、`[verify:<id>]` 付きの項目は対応する `--satisfies <id>` エビデンス通過後に `ospec execute sync` が自動でチェックする。proposal.md に未チェック項目がある間は archive がブロックされる。Goal の review.md は `ospec execute sync` が final review から派生して書き直すため、手動編集は禁止。
- `.skillrc.workflow.model_profiles` は `mechanical`、`standard`、`strong_reasoning`、`review`、`final_review` logical profile を target-specific model に対応付ける。未設定時は harness default と packet warning を使う。

@@ -103,0 +104,0 @@ - command runner は `OSPEC_USAGE_FILE` で normalized usage を自動集計し、`--usage-file` は手動 override として残る。`execution-metrics.json` は capability tier、model profile、workflow stage 別に集計し、complete/partial/missing coverage を報告する。

@@ -149,2 +149,3 @@ ---

- 依次执行 design/plan 确定性预检,派生 task graph,再执行一次独立 combined planning review;最多允许一次整体规划修复和一次差量复审。未改动规划内容的执行器失败会重新武装修复额度,修复后 findings 全部不高于 medium 时确定性通过为 `APPROVED_WITH_CONCERNS`。task review、最终 combined review 和验证仍然保留。
- 进度清单必须反映事实:proposal.md 验收标准随验证证据通过即时勾选(`[verify:<id>]` 标记项由 `ospec execute sync` 自动勾选),未勾项阻塞归档;Goal 的 review.md 由 sync 从 final review 派生,禁止手工编辑。
- worker/reviewer 使用逻辑 model profile,并按实际 dispatch target(包括 launch override)解析。requested/configured model 与 provider observed model 必须分开;没有 provider/usage 证据时 observed model 是未知,不能宣称已选择。

@@ -151,0 +152,0 @@ - 命令执行器会收到 `OSPEC_USAGE_FILE` 并自动归集该 sidecar;`ospec execute complete ... --usage-file usage.json` 继续作为手工入口。指标必须记录来源、实际观测字段和 complete/partial/missing 覆盖率,未上报的计数不能显示成已测得的零。

@@ -127,2 +127,3 @@ ---

- 依次执行 design/plan 确定性预检,派生 task graph,再执行一次独立 combined planning review;最多允许一次整体规划修复和一次差量复审。未改动规划内容的执行器失败会重新武装修复额度,修复完成后 findings 全部不高于 medium 时确定性通过为 `APPROVED_WITH_CONCERNS`;规划批准只因规划语义变化失效,执行进度不会使其失效。
- 进度清单必须反映事实:每条 proposal.md 验收标准在其验证证据通过后立即勾选;带 `[verify:<id>]` 标记的验收项由 `ospec execute sync` 在对应 `--satisfies <id>` 证据通过后自动勾选,proposal.md 存在未勾项时归档阻塞。Goal 的 review.md 由 `ospec execute sync` 从 final review 派生重写,禁止手工编辑。
- `.skillrc.workflow.model_profiles` 将 `mechanical`、`standard`、`strong_reasoning`、`review`、`final_review` 逻辑 profile 映射到各 target 模型;未配置时使用 harness 默认并在 packet 中警告。

@@ -129,0 +130,0 @@ - 命令执行器通过 `OSPEC_USAGE_FILE` 自动归集标准化 usage;`--usage-file` 保留为手工覆盖入口。`execution-metrics.json` 按 capability tier、model profile 和 workflow stage 汇总,并报告 complete/partial/missing 覆盖率。

@@ -79,2 +79,3 @@ ---

- Progress checklists track reality: tick each proposal.md acceptance criterion as it is actually verified — archiving blocks while proposal.md has unchecked items. review.md stays your one lightweight review; record its decision and complete its checklist before closeout. Never tick an item whose work was not done.
- Do not assume dashboard workflows exist.

@@ -81,0 +82,0 @@ - Do not confuse repository initialization with change execution.

@@ -19,2 +19,3 @@ ---

- **Planning quality is fast and bounded.** Run design preflight, then implementation-plan preflight, derive the task graph, and let Loop issue one independent combined planning review. The two preflights use no reviewer child. A `NEEDS_CHANGES` planning review permits one grouped repair and at most one delta-scoped re-review; a repair executor failure with no planning edits re-arms instead of consuming the allowance, all-medium-or-lower findings settle deterministically as `APPROVED_WITH_CONCERNS` after the repair, and another semantic failure is a stable blocker, never an open-ended loop.
- **Progress documents track reality.** Tick each proposal.md acceptance criterion as its verification evidence passes; tag acceptance lines with `[verify:<id>]` and record evidence with `ospec execute verify ... --satisfies <id>` so `ospec execute sync` auto-ticks them. Archiving blocks while proposal.md has unchecked items. review.md is a derived summary that `ospec execute sync` rewrites from the final review — never edit it by hand.
- **Required decisions always block.** Present each required decision to the user, never auto-select the recommendation, and record the answer with `ospec execute decision ... --select ... --answered-by user` before the loop proceeds. New brainstorm resolutions require the same `--answered-by user` provenance.

@@ -21,0 +22,0 @@ - **`/goal` is capability-probed, not inferred from a target name.** `ospec execute launch --primitive goal` produces a native-`/goal` instruction only when the current harness explicitly reports support; otherwise the same controller runs the verify-driven loop through native subagents.

@@ -59,2 +59,3 @@ ---

- بعد اشتقاق task graph يجب أن يصدر Loop combined planning review مستقلة واحدة قبل workspace أو worker dispatch. يسمح بإصلاح تخطيط مجمّع واحد وإعادة مراجعة تفاضلية واحدة كحد أقصى؛ يعيد فشل المنفّذ دون تعديل التخطيط تسليح الحصة، وتُقبل النتائج التي لا تتجاوز medium حتمياً كـ `APPROVED_WITH_CONCERNS` بعد الإصلاح، ثم يتوقف بثبات عند تكرار الفشل الدلالي
- تعكس قوائم التقدم الواقع: علّم معايير القبول في proposal.md فور نجاح دليل التحقق (بنود `[verify:<id>]` يعلّمها `ospec execute sync` تلقائياً)، والبنود غير المعلّمة تحظر الأرشفة؛ review.md في Goal ملخص مشتق من final review عبر sync ولا يحرر يدوياً
- قبل handoff إلى worker استخدم `ospec execute workspace [changes/active/<change>]` لتسجيل سلامة git workspace في `artifacts/agents/workspace-status.json` (`workspace-status.json`)؛ يسمح Goal قائم فقط بالمسارات التابعة لأهداف task غير `PENDING`، أو ملف `tsconfig.tsbuildinfo` الدقيق داخل حزمة task بدأ فعلا وصرح بأمر build/typecheck، أو لإثبات `ospec update` حالي متحقق من الهاش، وتظهر أي مسارات أخرى بالحالة `needs_isolation`

@@ -61,0 +62,0 @@ - Use `ospec execute route [changes/active/<change>]` to write `workflow-route.json` and `workflow-route.md` with the next recommended OSpec command; this records workflow routing artifacts only and does not edit source files

@@ -59,2 +59,3 @@ ---

- After task graph derivation, Loop must issue one independent combined planning review before workspace or worker dispatch. One grouped planning repair and at most one delta-scoped re-review are the maximum; a no-edit executor failure re-arms the repair, all-medium-or-lower findings settle deterministically as `APPROVED_WITH_CONCERNS` after the repair, and repeated semantic failure stops stably
- Progress checklists track reality: tick proposal.md acceptance criteria as verification evidence passes (`[verify:<id>]`-tagged lines are auto-ticked by `ospec execute sync`); unchecked items block archiving, and Goal review.md is derived from the final review by sync and never edited by hand
- Before worker handoff, use `ospec execute workspace [changes/active/<change>]` to record git workspace safety in `artifacts/agents/workspace-status.json` (`workspace-status.json`); existing Goals may retain only dirty paths owned by non-`PENDING` task targets, exact package-local `tsconfig.tsbuildinfo` derived from a started task's declared build/typecheck verification, or current hash-verified `ospec update` provenance, and every other dirty path reports `needs_isolation`

@@ -61,0 +62,0 @@ - Use `ospec execute route [changes/active/<change>]` to write `workflow-route.json` and `workflow-route.md` with the next recommended OSpec command; this records workflow routing artifacts only and does not edit source files

@@ -59,2 +59,3 @@ ---

- task graph 導出後、workspace または worker dispatch より前に Loop が独立 combined planning review を 1 回発行する。grouped planning repair 1 回と delta re-review 最大 1 回までで、planning 内容を変更しない executor 失敗は許容量を再アームし、findings がすべて medium 以下なら repair 後に `APPROVED_WITH_CONCERNS` として決定論的に確定し、意味的な再失敗は安定して停止する
- 進捗チェックリストは実態を反映する:proposal.md の受け入れ基準は検証エビデンス通過時にチェック(`[verify:<id>]` 付き項目は `ospec execute sync` が自動チェック)し、未チェック項目は archive をブロックする。Goal の review.md は sync が final review から派生し、手動編集は禁止
- worker handoff の前に `ospec execute workspace [changes/active/<change>]` で git workspace safety を `artifacts/agents/workspace-status.json`(`workspace-status.json`)に記録する。既存 Goal では、非 `PENDING` task の target file、開始済み task の宣言済み build/typecheck 検証から導出される package-local の exact `tsconfig.tsbuildinfo`、または現在のハッシュ検証済み `ospec update` provenance に属する dirty path だけを許可し、それ以外は `needs_isolation` を示す

@@ -61,0 +62,0 @@ - Use `ospec execute route [changes/active/<change>]` to write `workflow-route.json` and `workflow-route.md` with the next recommended OSpec command; this records workflow routing artifacts only and does not edit source files

@@ -59,2 +59,3 @@ ---

- task graph 派生后,Loop 必须在 workspace 或 worker 派发前执行一次独立 combined planning review。最多允许一次整体规划修复和一次差量复审;未改动规划内容的执行器失败会重新武装修复额度,修复后 findings 全部不高于 medium 时确定性通过为 `APPROVED_WITH_CONCERNS`;语义层面重复失败必须稳定停止
- 进度清单必须反映事实:proposal.md 验收标准随验证证据通过即时勾选(`[verify:<id>]` 标记项由 `ospec execute sync` 自动勾选),未勾项阻塞归档;Goal 的 review.md 由 sync 从 final review 派生,禁止手工编辑
- 派发 worker 前,用 `ospec execute workspace [changes/active/<change>]` 在 `artifacts/agents/workspace-status.json`(`workspace-status.json`)中记录 git 工作区安全状态;已有 Goal 只允许非 `PENDING` 任务目标文件、由已启动任务声明的 build/typecheck 验证精确派生且位于其包内的 `tsconfig.tsbuildinfo`,或当前哈希校验通过的 `ospec update` 证明所归属的脏路径,其余脏路径显示 `needs_isolation`

@@ -61,0 +62,0 @@ - 需要把下一条 OSpec 命令持久化给人或 AI 接手时,用 `ospec execute route [changes/active/<change>]` 写入 `workflow-route.json` 和 `workflow-route.md`;该命令只记录 workflow routing artifacts,不会编辑源码

+1
-1

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

const services_1 = require("./services");
const CLI_VERSION = '1.9.3';
const CLI_VERSION = '1.9.4';
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]');

@@ -117,2 +117,5 @@ "use strict";

};
const goalReviewSummary = isGoalWorkflow
? await (0, ReviewArtifacts_1.analyzeGoalReviewSummary)(services_1.services.fileService, targetPath)
: null;
const result = await ArchiveGate_1.archiveGate.checkArchiveReadiness(featureState, archiveConfig, {

@@ -125,2 +128,5 @@ activatedSteps,

verificationComplete: !/- \[ \]/.test(verification.content),
proposalAcceptanceComplete: !/- \[ \]/.test(proposal.content),
goalReviewSummaryAligned: goalReviewSummary ? goalReviewSummary.aligned : null,
goalReviewSummaryMessage: goalReviewSummary?.message ?? null,
});

@@ -127,0 +133,0 @@ if (classicStatus) {

@@ -14,1 +14,14 @@ import { FileService } from '../services/FileService';

export declare function resolveGoalReviewArtifacts(fileService: FileService, changePath: string): Promise<GoalReviewArtifactSet>;
export interface GoalReviewSummaryAnalysis {
aligned: boolean;
finalDecision: string;
summaryDecision: string;
message: string;
}
/**
* For Goals, review.md is a derived summary that `ospec execute sync` rewrites
* from artifacts/reviews/final-review.md. Archive readiness requires the
* summary to carry the derivation marker, the same decision, and a complete
* checklist so an untouched scaffold template can no longer be archived.
*/
export declare function analyzeGoalReviewSummary(fileService: FileService, changePath: string): Promise<GoalReviewSummaryAnalysis>;

@@ -37,4 +37,6 @@ "use strict";

exports.resolveGoalReviewArtifacts = resolveGoalReviewArtifacts;
exports.analyzeGoalReviewSummary = analyzeGoalReviewSummary;
const path = __importStar(require("path"));
const constants_1 = require("../core/constants");
const helpers_1 = require("./helpers");
async function resolveGoalReviewArtifacts(fileService, changePath) {

@@ -71,1 +73,62 @@ const reviewsDir = path.join(changePath, constants_1.DIR_NAMES.ARTIFACTS, constants_1.DIR_NAMES.REVIEWS);

}
/**
* For Goals, review.md is a derived summary that `ospec execute sync` rewrites
* from artifacts/reviews/final-review.md. Archive readiness requires the
* summary to carry the derivation marker, the same decision, and a complete
* checklist so an untouched scaffold template can no longer be archived.
*/
async function analyzeGoalReviewSummary(fileService, changePath) {
const finalPath = path.join(changePath, constants_1.DIR_NAMES.ARTIFACTS, constants_1.DIR_NAMES.REVIEWS, constants_1.FILE_NAMES.FINAL_REVIEW);
const summaryPath = path.join(changePath, constants_1.FILE_NAMES.REVIEW);
const readDecision = async (filePath) => {
try {
const document = (0, helpers_1.parseFrontmatterDocument)(await fileService.readFile(filePath));
const decision = String(document.data?.decision || '').trim().toUpperCase();
return decision || 'PENDING';
}
catch {
return 'PENDING';
}
};
if (!(await fileService.exists(finalPath))) {
return {
aligned: false,
finalDecision: 'PENDING',
summaryDecision: 'PENDING',
message: 'artifacts/reviews/final-review.md is missing, so the derived review.md summary cannot be aligned',
};
}
const finalDecision = await readDecision(finalPath);
if (!(await fileService.exists(summaryPath))) {
return {
aligned: false,
finalDecision,
summaryDecision: 'PENDING',
message: 'review.md is missing; run ospec execute sync to derive it from the final review',
};
}
let summaryDecision = 'PENDING';
let sourceMarked = false;
let hasUnchecked = true;
try {
const summary = (0, helpers_1.parseFrontmatterDocument)(await fileService.readFile(summaryPath));
summaryDecision = String(summary.data?.decision || '').trim().toUpperCase() || 'PENDING';
sourceMarked = String(summary.data?.review_source || '').trim() === 'artifacts/reviews/final-review.md';
hasUnchecked = /^\s*[-*+]\s+\[ \]\s+/m.test(summary.content);
}
catch {
// Fall through with the not-aligned defaults.
}
const aligned = sourceMarked
&& finalDecision !== 'PENDING'
&& summaryDecision === finalDecision
&& !hasUnchecked;
return {
aligned,
finalDecision,
summaryDecision,
message: aligned
? 'review.md is synced to the final review decision'
: 'review.md is not synced to artifacts/reviews/final-review.md; run ospec execute sync before archiving',
};
}

@@ -25,2 +25,7 @@ import { FeatureState } from '../core/types';

verificationComplete: boolean;
/** proposal.md acceptance checklist has no unchecked items. */
proposalAcceptanceComplete: boolean;
/** Goal-only: review.md is derived from and matches the final review; null/undefined when not applicable. */
goalReviewSummaryAligned?: boolean | null;
goalReviewSummaryMessage?: string | null;
}

@@ -27,0 +32,0 @@ export declare class ArchiveGate {

@@ -82,2 +82,27 @@ "use strict";

}
checks.push({
name: 'Proposal Acceptance Checklist',
passed: protocolState.proposalAcceptanceComplete,
message: protocolState.proposalAcceptanceComplete
? 'proposal.md acceptance checklist is complete'
: 'proposal.md acceptance checklist still has unchecked items',
});
if (!protocolState.proposalAcceptanceComplete) {
blockers.push('proposal.md acceptance checklist still has unchecked items');
}
if (protocolState.goalReviewSummaryAligned !== null
&& protocolState.goalReviewSummaryAligned !== undefined) {
checks.push({
name: 'Derived Review Summary',
passed: protocolState.goalReviewSummaryAligned,
message: protocolState.goalReviewSummaryMessage
|| (protocolState.goalReviewSummaryAligned
? 'review.md is synced to the final review decision'
: 'review.md is not synced to the final review; run ospec execute sync'),
});
if (!protocolState.goalReviewSummaryAligned) {
blockers.push(protocolState.goalReviewSummaryMessage
|| 'review.md is not synced to the final review; run ospec execute sync before archiving');
}
}
}

@@ -84,0 +109,0 @@ return {

{
"name": "@clawplays/ospec-cli",
"version": "1.9.3",
"version": "1.9.4",
"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",

@@ -51,2 +51,3 @@ ---

- After task graph derivation, let Loop issue one independent combined planning review across proposal, design, plan, tasks, graph, and acceptance-to-verification coverage. `NEEDS_CHANGES` permits one grouped planning repair and at most one delta-scoped re-review; a repair executor failure with no planning edits re-arms instead of consuming the allowance, all-medium-or-lower findings settle deterministically as `APPROVED_WITH_CONCERNS` after the repair, and another semantic failure is a stable blocker.
- Progress checklists track reality: tick proposal.md acceptance criteria as verification evidence passes (`[verify:<id>]`-tagged lines are auto-ticked by `ospec execute sync`); unchecked items block archiving. Goal review.md is derived from the final review by sync; never edit it by hand.
- Resolve required decisions and workspace isolation before dispatch.

@@ -53,0 +54,0 @@ - Dispatch scoped worker packets, use the launch plan with the current harness native agent mechanism, record completion, then perform one combined task review.

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