diff --git a/README.ja.md b/README.ja.md index 65c7dc2..281b401 100644 --- a/README.ja.md +++ b/README.ja.md @@ -46,7 +46,7 @@ npx -y skills@latest update session-peer --global --yes 状態が `queued`(キュー登録済み)または `submitted`(送信済み)でも、受信側がメッセージを消費したことは確認できません。送信結果が不明な場合は自動で再送しないでください。Codex の返信待ちは利用ガイドを参照してください。 -npm 版 TypeScript ランタイムには、別の `session-peer-ts` スキル 0.2.0 を使います。ランタイム 0.3.3 は、このスキルのメタデータを認識します。エージェント、プロジェクト/グローバルの適用範囲、レビュー済みコミットを指定したインストール手順は [TypeScript 設定ガイド](docs/typescript.md)を参照してください。 +別の `session-peer-ts` スキル 0.2.1 のメタデータプロファイルは、公開済み npm ランタイム 0.3.5 がサポートしています。公開された内容が固定されたスキルリリースを選び、記録されたソースコミットとコンテンツハッシュを確認してください。ランタイムの公開はスキルの公開や更新を意味せず、インストールの許可も与えません。エージェント、プロジェクト/グローバルの適用範囲、レビュー済みコミットを指定したインストール手順は [TypeScript 設定ガイド](docs/typescript.md)を参照してください。 ## ドキュメント diff --git a/README.ko.md b/README.ko.md index 8d94fc0..45f7147 100644 --- a/README.ko.md +++ b/README.ko.md @@ -46,7 +46,7 @@ npx -y skills@latest update session-peer --global --yes `queued` 또는 `submitted` 상태는 수신자가 메시지를 처리했다는 확인이 아닙니다. 제출 결과가 불확실한 경우 자동으로 재전송하지 마세요. Codex 회신 대기 절차는 사용 안내를 참고하세요. -npm TypeScript 런타임에는 별도의 `session-peer-ts` 스킬 0.2.0을 사용합니다. 런타임 0.3.3은 이 스킬의 메타데이터를 인식합니다. 에이전트, 프로젝트 또는 전역 설치 범위, 검토된 커밋을 명시하는 설치 방법은 [TypeScript 설정 안내](docs/typescript.md)를 참고합니다. +별도의 `session-peer-ts` 스킬 0.2.1 메타데이터 프로필은 공개 npm 런타임 0.3.5가 지원합니다. 공개된 불변 스킬 릴리스를 선택하고 기록된 소스 커밋과 콘텐츠 해시를 확인하세요. 런타임 발행은 스킬을 발행하거나 업데이트하지 않으며 스킬 설치 권한도 부여하지 않습니다. 에이전트, 프로젝트 또는 전역 설치 범위, 검토된 커밋을 명시하는 설치 방법은 [TypeScript 설정 안내](docs/typescript.md)를 참고합니다. ## 문서 diff --git a/README.md b/README.md index b9a2412..dae05ad 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ The runtime command above is for pipx installations; keep using your existing ru A `queued` or `submitted` status does not confirm that the recipient consumed the message. Do not automatically resend after an uncertain submission; see the usage guide for Codex reply waiting. -The separate `session-peer-ts` skill 0.2.0 supports the npm TypeScript runtime; runtime 0.3.3 accepts its metadata profile. See the [TypeScript setup guide](docs/typescript.md) for an explicit agent, project/global scope, and reviewed commit installation. +The separate `session-peer-ts` skill 0.2.1 has a metadata profile supported by published npm runtime 0.3.5. Select a published immutable skill release and verify its recorded source commit and content hash. Runtime publication does not publish or update the skill or authorize its installation. See the [TypeScript setup guide](docs/typescript.md) for an explicit agent, project/global scope, and reviewed commit installation. ## Docs diff --git a/README.zh-CN.md b/README.zh-CN.md index fad0e6f..d493708 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -46,7 +46,7 @@ npx -y skills@latest update session-peer --global --yes `queued` 或 `submitted` 状态不代表接收方已消费该消息。提交结果不确定时不要自动重发。Codex 回复等待流程请参阅使用指南。 -npm TypeScript 运行时使用独立的 `session-peer-ts` 技能 0.2.0。运行时 0.3.3 可识别此技能的元数据。指定智能体、项目/全局适用范围和经审查提交版本的安装步骤,请参阅 [TypeScript 设置指南](docs/typescript.md)。 +独立的 `session-peer-ts` 技能 0.2.1 元数据配置由已发布的 npm 运行时 0.3.5 支持。请选择已发布且不可变的技能版本,并核对其记录的源码提交和内容哈希。发布运行时不会发布或更新技能,也不代表获准安装技能。指定智能体、项目/全局适用范围和经审查提交版本的安装步骤,请参阅 [TypeScript 设置指南](docs/typescript.md)。 ## 文档 diff --git a/docs/typescript-compatibility.md b/docs/typescript-compatibility.md index 7c9fc1e..37a9e5e 100644 --- a/docs/typescript-compatibility.md +++ b/docs/typescript-compatibility.md @@ -2,10 +2,12 @@ [Back to TS setup](typescript.md) -TS skill 0.2.0 uses the successor profile supported by the published npm runtimes 0.3.3 and 0.3.4. Runtime 0.3.3 source: [`c0ed30273b9e9c0049df86ae3c38486a94289527`](https://github.com/abruption/session-peer-ts/blob/c0ed30273b9e9c0049df86ae3c38486a94289527/src/skill-metadata.ts). The 0.3.3 npm artifact has SHA-256 `3469cda6a7b2c89d42ed2a250d2e7b5b774293fee090968a4b261e824be4c075`; its verified provenance identifies that source and [publication workflow run 37907833518](https://github.com/abruption/session-peer-ts/actions/runs/37907833518). +TS skill 0.2.0 uses the successor profile supported by the published npm runtimes 0.3.3, 0.3.4, and 0.3.5. Runtime 0.3.3 source: [`c0ed30273b9e9c0049df86ae3c38486a94289527`](https://github.com/abruption/session-peer-ts/blob/c0ed30273b9e9c0049df86ae3c38486a94289527/src/skill-metadata.ts). The 0.3.3 npm artifact has SHA-256 `3469cda6a7b2c89d42ed2a250d2e7b5b774293fee090968a4b261e824be4c075`; its verified provenance identifies that source and [publication workflow run 37907833518](https://github.com/abruption/session-peer-ts/actions/runs/37907833518). Published runtime 0.3.4 explicitly retains the same two reviewed profiles; source: [`afed4a5a8945012faf1b23d52cffecb70470a5b3`](https://github.com/abruption/session-peer-ts/blob/afed4a5a8945012faf1b23d52cffecb70470a5b3/src/skill-metadata.ts). Its [release record](https://github.com/abruption/session-peer-ts/releases/tag/v0.3.4) records the npm artifact SHA-256 `6c8cb114485e067ac3e7f5792de7febf3680cb14dcda6e2c67df6cab773ca03c` and [publication workflow run 38194048045](https://github.com/abruption/session-peer-ts/actions/runs/38194048045). These are separate publication records, not a new property of doctor. +Published runtime 0.3.5 adds the explicit finite profile for skill 0.2.1 while retaining 0.1.0 and 0.2.0; source: [`a2057940ba19056fcaaa5551a7820f7414bd3bfa`](https://github.com/abruption/session-peer-ts/blob/a2057940ba19056fcaaa5551a7820f7414bd3bfa/src/skill-metadata.ts). Its [release record](https://github.com/abruption/session-peer-ts/releases/tag/v0.3.5) identifies the published runtime; the npm tarball SHA-256 is `46f4a01f9570034fca49cfa5fad620f3f45b5f33b1a6714f29ea0a3c1e751ac0`, with registry integrity checked separately. Runtime publication does not publish or update a companion skill or authorize its installation; select a published skill release using its recorded immutable source and content hash. + The Python skill, TS skill, skill release tags, and npm runtime have independent versions. TS skill publication follows the separate `session-peer-ts-vX.Y.Z` tag scheme. A runtime publication does not install or update either skill. ## Published profiles and finite doctor support @@ -20,11 +22,38 @@ The Python skill, TS skill, skill release tags, and npm runtime have independent | Public `0.3.2` | `compatible` | `incompatible` | Exact legacy metadata tuple; top-level name is not checked | | Public `0.3.3` | `compatible` | `compatible` | Exact supported profile plus valid root `name: session-peer-ts` and bounded readable/stable input | | Public `0.3.4` | `compatible` | `compatible` | Explicit finite legacy/successor row; same root-name, parser and bounded input requirements | +| Public `0.3.5` | `compatible` | `compatible` | Explicit finite row; also accepts the 0.2.1 profile as shown below | | Unknown or future combination | No automatic guarantee | No automatic guarantee | Review the actual runtime and profile; no wildcard or arithmetic acceptance | Compatible and incompatible structural results carry `verification: metadata_only`. This checks metadata structure/profile support; it does not verify source provenance, content SHA, installation integrity, freshness, CLI feature coverage, permission to send, consumption, or ACK. The npm provenance verification above is separate release evidence, not a property of doctor. -Runtime 0.3.3's pure validator rejects a valid but unreviewed runtime identity such as `0.3.4` as `incompatible / skill_contract_mismatch / metadata_only`. This describes the released 0.3.3 validator supplied with identity `0.3.4`, not the published 0.3.4 guard: 0.3.4 explicitly adds that reviewed runtime row. Use reviewed runtime 0.3.3 or 0.3.4 for the successor doctor check; no other future identity is accepted by inference. An older CLI can meet the minimum while its doctor rejects this newer metadata profile; do not edit metadata to hide that result. Runtime adoption remains a user-authorized operation under the existing package manager. +Runtime 0.3.3's pure validator rejects a valid but unreviewed runtime identity such as `0.3.4` as `incompatible / skill_contract_mismatch / metadata_only`. This describes the released 0.3.3 validator supplied with identity `0.3.4`, not the published 0.3.4 guard: 0.3.4 explicitly adds that reviewed runtime row. Use an explicitly reviewed runtime row (0.3.3, 0.3.4, or 0.3.5) for the published 0.2.0 successor doctor check; no other future identity is accepted by inference. An older CLI can meet the minimum while its doctor rejects this newer metadata profile; do not edit metadata to hide that result. Runtime adoption remains a user-authorized operation under the existing package manager. + +## Skill 0.2.1 and published runtime 0.3.5 + +Runtime 0.3.5 explicitly supports the TS skill `0.2.1` metadata profile. Profile support alone does not establish that particular skill bytes are published or approved for installation. Public runtimes 0.3.2, 0.3.3, and 0.3.4 reject the 0.2.1 profile as `incompatible / skill_contract_mismatch / metadata_only`, even though its CLI minimum and coverage reference are unchanged. + +| Profile | Skill version | Implementation | CLI minimum | Full coverage reference | Policy | +|---|---|---|---|---|---| +| Successor revision | `0.2.1` | `typescript` | `0.1.0` | `0.3.2` | `probe-help` | + +| Inspecting runtime | Legacy `0.1.0` | Published successor `0.2.0` | Successor revision `0.2.1` | Evidence scope | +|---|---|---|---|---| +| Public `0.3.2` | `compatible` | `incompatible` | `incompatible` | Published exact legacy tuple checker | +| Public `0.3.3` | `compatible` | `compatible` | `incompatible` | Published finite row | +| Public `0.3.4` | `compatible` | `compatible` | `incompatible` | Published finite row | +| Public `0.3.5` | `compatible` | `compatible` | `compatible` | Explicit published guard row; valid protected fields and healthy bounded input required; separate skill-release evidence required for installation | +| Unknown or future combination | No automatic guarantee | No automatic guarantee | No automatic guarantee | No wildcard or arithmetic acceptance | + +The [published 0.3.5 design](https://github.com/abruption/session-peer-ts/blob/a2057940ba19056fcaaa5551a7820f7414bd3bfa/docs/design/typescript-skill-compatibility.md) and [metadata fixtures](https://github.com/abruption/session-peer-ts/blob/a2057940ba19056fcaaa5551a7820f7414bd3bfa/test/skill-metadata.test.ts) cover the three finite profiles using the compiled VERSION `0.3.5` helper default, explicit `undefined`, and outer `inspectSkill`. Static source and fixture review remains separate from executing those tests or proving live message consumption or ACK. + +Historical review evidence: the 2026-10-13 Draft #144 review used exact source `08c507ca1c2a3805b189ee05bfdd32b0d3d2dacb`; its design document SHA-256 was `251ba89481297891eab480344d5df556fd0d0fb94a3451f4bb69f01bf5989761` and `src/skill-metadata.ts` SHA-256 was `bd396f92992fcd84f7cea3c690443cba28f4ee09069d2eccdbbcfd21f35bc3f2`. The companion candidate at `9db5420b45568dd08fc43d406dbf9ad1952f7891` contained a 13,930-byte SKILL with SHA-256 `96d5a0d049f8a4d193703af3583b198a91079d44ae373de34e94a54e2296a4d6`. These are dated candidate review records, not evidence for any later final skill bytes, a release record, or an installation pin. + +The doctor requirement for skill 0.2.1 is the explicitly reviewed and published runtime 0.3.5 row, not the CLI minimum `0.1.0` or full coverage reference `0.3.2`. Optional operations still require the resolved executable's stable TypeScript version marker, affirmative help, and actual platform/native/security/permission prerequisites. Do not alter metadata to conceal an older doctor's rejection. + +For a skill release, review the exact complete skill bytes and finite profile, verify actual supporting-runtime publication, and obtain separate approval for the skill metadata/content/immutable source. For installation, select a published immutable skill release and verify its recorded source commit and content SHA-256; a Draft or review checkpoint is not release evidence. Four-language runtime guidance and PARITY pin adoption follow the separately approved skill publication. Python skill/reference pins and 0.4 handoff designs remain independent. This document does not authorize installation, operations, merge, or publication. + +Historical checkpoint (2026-10-13): runtime 0.3.5 had been published, while companion skill 0.2.1 was an unreleased preparation awaiting human approval. At that checkpoint, the published TS skill 0.2.0 release tag was `session-peer-ts-v0.2.0` and its source commit was `8482cf644507c682915e35c85aa3384c53864906`. This dated record does not determine the current release state or prescribe an ongoing installation default. ## Minimum, full features, and guard acceptance @@ -33,11 +62,11 @@ Runtime 0.3.3's pure validator rejects a valid but unreviewed runtime identity s - Between minimum and full, gate optional operations by their feature-specific version and affirmative help from the resolved TS executable. At or above full, actual platform/native prerequisites, allowlists, permissions, and unique-writer guards still apply. Help proves option presence only. - Doctor acceptance is a separate finite runtime/profile contract. Meeting minimum/full numerically does not establish metadata compatibility, and `metadata_only` does not grant network access, installation, update, or send authority. -The independent Python contract remains skill 0.3.2, minimum 0.9.1, full 1.0.1, and the security patch recommendation documented in its own instructions. TS versioning does not change the Python canonical skill, compatibility snapshot, or runtime/reference/parity pins. +The independent Python contract remains skill 0.3.3, minimum 0.9.1, full 1.0.1, and the security patch recommendation documented in its own instructions. TS versioning does not change the Python canonical skill, compatibility snapshot, or runtime/reference/parity pins. ## Runtime 0.3.3 input and result contract -The same input/result contract applies to published 0.3.4, with its explicit additional runtime-identity row shown above. +The same input/result contract applies to published 0.3.4 and 0.3.5, with the explicit additional runtime/profile rows shown above. The [published limited grammar](https://github.com/abruption/session-peer-ts/blob/c0ed30273b9e9c0049df86ae3c38486a94289527/docs/design/typescript-skill-compatibility.md#limited-grammar-and-results) requires one root name scalar and one metadata map with the required quoted/plain string scalars. This is not a general YAML parser. A root name has no indented non-comment continuation, even across blank/comment lines; orphan indentation is malformed. Unrelated root fields can own ignored indented content. Plain and quoted names work before or after metadata. A literal ASCII space is required after `name:`; following whitespace is removed with `trimStart()`, so a space followed by a tab is accepted, while a tab immediately after the colon is rejected. Metadata separators retain their spaces-only grammar. @@ -51,13 +80,13 @@ The [published limited grammar](https://github.com/abruption/session-peer-ts/blo | Well-formed but unsupported name, profile, or valid runtime identity | `incompatible / skill_contract_mismatch` | `metadata_only` | | Exact supported name/profile/runtime and healthy bounded input | `compatible / skill_contract_compatible` | `metadata_only` | -The outer inspection result preserves `path`. Absent verification means the property is omitted, not `null`. An omitted or explicitly `undefined` pure-helper runtime argument uses the inspecting runtime's compiled VERSION (0.3.3 or 0.3.4) and is not an unavailable-identity fixture. Reader failures precede metadata verdicts. Canonicalization can wrap an earlier path error as `home_resolution_failed`, producing unknown/unreadable instead of the raw errno result; do not collapse all permission errors into unknown. +The outer inspection result preserves `path`. Absent verification means the property is omitted, not `null`. An omitted or explicitly `undefined` pure-helper runtime argument uses the inspecting runtime's compiled VERSION (0.3.3, 0.3.4, or 0.3.5) and is not an unavailable-identity fixture. Reader failures precede metadata verdicts. Canonicalization can wrap an earlier path error as `home_resolution_failed`, producing unknown/unreadable instead of the raw errno result; do not collapse all permission errors into unknown. For historical comparison, public [0.3.2 source](https://github.com/abruption/session-peer-ts/blob/f335f07352c842f2f6ceb12bd2ca6274b52f69f7/src/diagnostics.ts) does not check root name and classifies missing/duplicate/regex-nonmatching required scalars in a single metadata section as incompatible. Its empty/absent frontmatter and zero/multiple maps are unknown. The 0.3.3 parser classification is an intentional change, not a restatement of the older checker. ## Reader bounds and evidence limits -Runtimes 0.3.3 and 0.3.4 count **65,536 whole-file raw UTF-8 bytes**, including BOM, whitespace, line endings, and body. Read requests and allocation are capped at **65,537 bytes**, including one overflow-detection byte. Pre-read stat is an early check; fatal UTF-8 decoding follows bounded reading and stability checks. +Runtimes 0.3.3, 0.3.4, and 0.3.5 count **65,536 whole-file raw UTF-8 bytes**, including BOM, whitespace, line endings, and body. Read requests and allocation are capped at **65,537 bytes**, including one overflow-detection byte. Pre-read stat is an early check; fatal UTF-8 decoding follows bounded reading and stability checks. The reader canonicalizes managed symlinks, verifies regular-file evidence on the opened descriptor, and compares device/inode/size/mtime/ctime and path/alias evidence around the read. Observable growth, truncation, replacement, alias changes, or same-size timestamp changes produce unknown/unreadable. Every opened descriptor is closed. These checks detect observed changes; they do not authenticate content, create an atomic snapshot, protect against a writer restoring identical metadata, or impose a deadline on arbitrary filesystem I/O. @@ -67,6 +96,8 @@ The published [fixtures](https://github.com/abruption/session-peer-ts/blob/c0ed3 ## Review and release record +This historical section records the published skill 0.2.0 release on 2026-10-09. Release-selection requirements and the dated 0.2.1 review checkpoint are described separately above. + The [2026-10-09 design-only acceptance](https://github.com/abruption/session-peer-skill/blob/699a3251830c30c62d0f812363faf4d0eb0c8e0c/docs/typescript-compatibility.md) reviewed exact #126 `ba18bb806a6ba503381259b4255211af3adc0336` and #129 `bfb3d6f1256ab076a76660e08a7bf1ad071a6c6c`. It accepted the finite profiles, parser/status envelopes, G07 correction, and reader fixtures without authorizing publication. The final published source clarifies and fixtures its two nonblocking plain-name-after-map and whitespace details without changing parser behavior. The guard runtime was subsequently published before this successor skill was finalized. The user authorized this skill's versioned release. Its [separate release record](https://github.com/abruption/session-peer-skill/releases/tag/session-peer-ts-v0.2.0) records the final skill commit and content SHA-256. TS runtime guidance and PARITY can then adopt that same reviewed immutable skill pin in a separate runtime-repository change. Existing Python/reference pins remain independent. Runtime and skill adoption stay explicit manager-owned user choices; no postinstall, automatic deployment, PATH replacement, or global update is implied. diff --git a/docs/typescript.md b/docs/typescript.md index 296e74b..11416ad 100644 --- a/docs/typescript.md +++ b/docs/typescript.md @@ -2,30 +2,32 @@ [Back to README](../README.md) -The separate `session-peer-ts` skill 0.2.0 describes the published npm TypeScript runtimes 0.3.3 and 0.3.4. The 0.3.4 publication source is [`afed4a5a8945012faf1b23d52cffecb70470a5b3`](https://github.com/abruption/session-peer-ts/blob/afed4a5a8945012faf1b23d52cffecb70470a5b3/RELEASING.md). The runtime runs without Python. Both runtimes use the command name `session-peer`, so resolve the intended executable and inspect its version and help before use. +The separate `session-peer-ts` skill 0.2.1 documents the npm TypeScript runtime and its independently versioned metadata profile. Published runtime 0.3.5 supports this exact profile; its guard source is [`a2057940ba19056fcaaa5551a7820f7414bd3bfa`](https://github.com/abruption/session-peer-ts/blob/a2057940ba19056fcaaa5551a7820f7414bd3bfa/src/skill-metadata.ts), with a separate [runtime publication record](https://github.com/abruption/session-peer-ts/releases/tag/v0.3.5). Runtime publication does not publish, install, update or authorize adoption of the skill. Select a separately approved, published immutable skill release and its recorded source/hash as described below. Both runtimes use the command name `session-peer`, so resolve the intended executable and inspect its version and help before use. The TS runtime runs without Python. ## Published support and independent versions -Published 0.2.0 added combined listing, bounded known Codex homes, guarded live-writer selection, explicit inactive queueing, read-only doctor, and explicit text output. Published 0.3.0 added multi-host SSH, constrained SSH options and a POSIX jump option, Tailscale routing hints, generated reply routes, opt-in return-route diagnostics, npm update checks and cached notices, and the optional shell `sp` alias. Runtime 0.3.3 adds the bounded metadata reader and supports this skill's successor profile. Always check the selected executable's actual version and supported command help. Wake, Antigravity, Relay, MCP, general wait, and Draft 0.4 handoff/observer designs remain unsupported. +Published 0.2.0 added combined listing, bounded known Codex homes, guarded live-writer selection, explicit inactive queueing, read-only doctor, and explicit text output. Published 0.3.0 added multi-host SSH, constrained SSH options and a POSIX jump option, Tailscale routing hints, generated reply routes, opt-in return-route diagnostics, npm update checks and cached notices, and the optional shell `sp` alias. Runtime 0.3.3 adds the bounded metadata reader and supports the published skill 0.2.0 profile; public 0.3.4 retains that support. Always check the selected executable's actual version and supported command help. Wake, Antigravity, Relay, MCP, general wait, and Draft 0.4 handoff/observer designs remain unsupported. | Version | Meaning | |---|---| -| Python repository tag `v0.3.2` | Independent Python skill release | -| Python skill `0.3.2` | Version of `session-peer/SKILL.md` | -| TS skill `0.2.0` | Version of `session-peer-ts/SKILL.md` | -| TS skill tag `session-peer-ts-v0.2.0` | Separate TS skill release; resolve its annotated tag to the exact commit recorded in the release | -| TS runtimes `0.3.3` and `0.3.4` | Published npm package `session-peer`; independent of both skill versions | +| Python repository tag `v0.3.3` | Independent published Python skill release | +| Python skill `0.3.3` | Independent version of `session-peer/SKILL.md` | +| TS skill `0.2.1` | Version declared by `session-peer-ts/SKILL.md`; metadata alone is not publication evidence | +| Historical TS skill `0.2.0` | Separately published revision from 2026-10-09 | +| Historical tag `session-peer-ts-v0.2.0` | Its 2026-10-09 release records source `8482cf644507c682915e35c85aa3384c53864906`; this is not a pin for revision 0.2.1 | +| Revision tag `session-peer-ts-v0.2.1` | Verify a published, approved release and its recorded source/hash before selecting it; a tag name or PR head alone is insufficient | +| TS runtimes `0.3.3`, `0.3.4` and `0.3.5` | Published npm package `session-peer`; independent of both skill versions | | `runtime-min-version` = `0.1.0` | CLI compatibility floor for the explicit baseline commands | | `runtime-full-version` = `0.3.2` | Coverage reference for this revision's published CLI features | -| Successor doctor acceptance | Runtimes `0.3.3` and `0.3.4` accept this exact metadata profile; public `0.3.2` rejects it | +| Skill doctor acceptance | Published runtime `0.3.5` explicitly accepts skill `0.2.1`; public `0.3.2`, `0.3.3` and `0.3.4` reject it | The minimum and full values are distinct from security recommendations, latest-version markers, doctor support, and delivery/ACK. Help establishes option presence only; platform/native prerequisites, permissions, allowlists, and writer guards still apply. See the [normative min/full definitions and separate doctor acceptance table](typescript-compatibility.md#minimum-full-features-and-guard-acceptance). -Use reviewed runtime 0.3.3 or 0.3.4 for doctor metadata compatibility with TS skill 0.2.0. Public 0.3.2 rejects the successor even though it meets the baseline CLI minimum and feature coverage values. Keep the existing package manager and obtain authorization before upgrading; do not edit metadata to hide a mismatch. Unknown future runtime/profile combinations are not automatically accepted. A compatible metadata check is not a content review, source authentication, freshness check, or delivery authorization. +For the published skill 0.2.0, reviewed runtimes 0.3.3 and 0.3.4 support doctor metadata inspection. Skill 0.2.1 is different: public runtimes 0.3.2/0.3.3/0.3.4 reject it even when they meet its CLI minimum/full coverage values. Published runtime 0.3.5 explicitly supports this profile; skill publication and adoption still require separate approval. The exact 0.3.5 row does not enable other future versions. Keep the existing package manager and obtain authorization before upgrading; do not edit metadata to hide a mismatch. Unknown future runtime/profile combinations are not automatically accepted. A compatible metadata check is not a content review, source authentication, freshness check, or delivery authorization. ## Install, update, and remove the skill -Choose the reviewed **40-character commit SHA** from the [TS skill release](https://github.com/abruption/session-peer-skill/releases/tag/session-peer-ts-v0.2.0), agent (`codex` or `claude-code`), and scope explicitly. The release records the peeled tag commit and SHA-256 of the canonical TS `SKILL.md`. Run in the intended project; omitting `--global` selects project scope. Inspect existing files before accepting an overwrite. For global scope add `--global` consistently to add/list/remove. Codex uses the shared `.agents/skills` directory, so agent selection is not an isolation boundary from other clients that discover that directory. +Choose the skill version, agent (`codex` or `claude-code`), and scope explicitly. Find the selected TS tag in the [skill release catalog](https://github.com/abruption/session-peer-skill/releases) and verify its approved publication, recorded peeled tag commit, and canonical TS `SKILL.md` SHA-256. For this revision, the tag name is `session-peer-ts-v0.2.1`; if its publication or source/hash record cannot be verified, stop rather than using a Draft/PR head or a guessed future pin. Replace `REVIEWED_COMMIT` below with that verified **40-character commit SHA**, and compare the copied skill bytes to the release hash. Run in the intended project; omitting `--global` selects project scope. Inspect existing files before accepting an overwrite. For global scope add `--global` consistently to add/list/remove. Codex uses the shared `.agents/skills` directory, so agent selection is not an isolation boundary from other clients that discover that directory. ```sh npx -y skills@1.7.0 add https://github.com/abruption/session-peer-skill/tree/REVIEWED_COMMIT/session-peer-ts \ @@ -42,7 +44,7 @@ The TS metadata uses `runtime-implementation: "typescript"` and `runtime-capabil Resolve the executable before discovery. Explicit JSON remains a safe baseline; operations have no default output format. See the [agent instructions](../session-peer-ts/SKILL.md) for discovery, dry-run, SSH, and reply boundaries, and the [published CLI help](https://github.com/abruption/session-peer-ts/blob/afed4a5a8945012faf1b23d52cffecb70470a5b3/src/help.ts) for supported flags. -`doctor --json` performs read-only diagnostics; `ok:true` can coexist with `ready:false`. Skill inspection in runtimes 0.3.3 and 0.3.4 bounds whole-file UTF-8 reads to 65,536 bytes, with at most 65,537 bytes for overflow detection, and checks regular-file, descriptor/path, and observable stability evidence. It reads body bytes but interprets only frontmatter; `metadata_only` does not execute instructions, install, update, or make network requests. It does not authenticate content, freeze an atomic snapshot, or impose a deadline on arbitrary filesystem I/O. Public 0.3.2 had only a 64 KiB pre-read size check. See the [published compatibility contract and status table](typescript-compatibility.md); permission errors remain distinct from unknown input. +`doctor --json` performs read-only diagnostics; `ok:true` can coexist with `ready:false`. Skill inspection in runtimes 0.3.3, 0.3.4 and 0.3.5 bounds whole-file UTF-8 reads to 65,536 bytes, with at most 65,537 bytes for overflow detection, and checks regular-file, descriptor/path, and observable stability evidence. It reads body bytes but interprets only frontmatter; `metadata_only` does not execute instructions, install, update, or make network requests. It does not authenticate content, freeze an atomic snapshot, or impose a deadline on arbitrary filesystem I/O. Public 0.3.2 had only a 64 KiB pre-read size check. See the [published compatibility contract and status table](typescript-compatibility.md); permission errors remain distinct from unknown input. `doctor --check-return-route` is a separate, explicitly requested SSH probe. Metadata compatibility and forward SSH reachability do not prove that a send is authorized or that a return route works. diff --git a/scripts/test-ts-skill.mjs b/scripts/test-ts-skill.mjs index 56e7269..a4b96b4 100644 --- a/scripts/test-ts-skill.mjs +++ b/scripts/test-ts-skill.mjs @@ -10,7 +10,7 @@ const source = resolve('session-peer-ts'); const expected = readFileSync(join(source, 'SKILL.md'), 'utf8'); const metadata = expected.match(/^---\n([\s\S]*?)\n---/)?.[1]; assert.ok(metadata?.includes('name: session-peer-ts')); -for (const [key, value] of Object.entries({ version: '0.2.0', 'runtime-implementation': 'typescript', 'runtime-min-version': '0.1.0', 'runtime-full-version': '0.3.2', 'runtime-capability-policy': 'probe-help' })) { +for (const [key, value] of Object.entries({ version: '0.2.1', 'runtime-implementation': 'typescript', 'runtime-min-version': '0.1.0', 'runtime-full-version': '0.3.2', 'runtime-capability-policy': 'probe-help' })) { assert.ok(metadata.includes(` ${key}: "${value}"`), key); } try { diff --git a/session-peer-ts/SKILL.md b/session-peer-ts/SKILL.md index 42082ff..4e2ad54 100644 --- a/session-peer-ts/SKILL.md +++ b/session-peer-ts/SKILL.md @@ -3,7 +3,7 @@ name: session-peer-ts description: Discover and message Claude Code or Codex sessions using the npm TypeScript session-peer CLI, locally or over SSH. Use for user-requested cross-session messaging with the TypeScript runtime; Python runtime guidance belongs to the separate session-peer skill. allowed-tools: Bash, Read metadata: - version: "0.2.0" + version: "0.2.1" runtime-implementation: "typescript" runtime-min-version: "0.1.0" runtime-full-version: "0.3.2" @@ -24,12 +24,19 @@ Python uses that command name too: if the marker is absent, select the Python sk which installation the user intends. Keep the resolved executable for every following command; do not replace another manager's launcher. -This skill revision is 0.2.0 and covers the published npm 0.3.3 and 0.3.4 runtimes. Its CLI -minimum is 0.1.0; its full-feature coverage reference is 0.3.2. The original 0.1.0 -supports only the historical baseline below. Runtimes 0.3.3 and 0.3.4 doctor accept this -exact successor metadata profile; public 0.3.2 doctor rejects it even though the -baseline CLI commands work. For supported doctor metadata inspection, use reviewed 0.3.3 or 0.3.4; -an upgrade still requires the user's request and the existing package manager. +This skill revision is 0.2.1, retaining the documented public CLI features +through npm runtime 0.3.4. Its CLI minimum is 0.1.0; its full-feature coverage +reference is 0.3.2. The original 0.1.0 supports only the historical baseline +below. Public runtimes 0.3.2, 0.3.3 and 0.3.4 doctor reject this exact metadata +profile even when baseline commands work. Published runtime 0.3.5 explicitly +accepts it; use that reviewed runtime for doctor inspection, without inferring +support from a larger version number. Its [exact guard source](https://github.com/abruption/session-peer-ts/blob/a2057940ba19056fcaaa5551a7820f7414bd3bfa/src/skill-metadata.ts) +and [publication record](https://github.com/abruption/session-peer-ts/releases/tag/v0.3.5) +are separate from this skill's release and do not authorize installation or +sending. Adopt only a separately approved immutable skill release and its +recorded source pin. Runtime publication does not publish or install this +skill. Any upgrade still requires the user's request and the existing package +manager. Do not change metadata to silence an incompatibility. The skill version, npm version, and Python skill/repository tag are independent. Unknown versions or contradictory help require review before using an unverified operation; do not infer features from Python's @@ -104,7 +111,7 @@ Skill checks report structural metadata compatibility, not freshness, authentic source, functional verification, or message readiness. `verification: metadata_only` means skill instructions/references are not executed and the skill check does not install, update, or make network requests. It is not a privacy guarantee -that body bytes are unread. Runtimes 0.3.3 and 0.3.4 bound whole-file UTF-8 reads to 65,536 +that body bytes are unread. Runtimes 0.3.3, 0.3.4 and 0.3.5 bound whole-file UTF-8 reads to 65,536 bytes, with a 65,537-byte overflow-detection buffer, and check regular-file, descriptor/path, and observable stability evidence before interpreting metadata. It does not authenticate content, freeze an atomic snapshot, protect against a