Releases: evidentloop/sopify
2026-05-31.142150 — Pre-launch Consolidation
Highlights
- README rewrite (PR #50): Complete English + Chinese README pair rewrite for pre-launch
- Diagram migration (PR #51): JPG → SVG/PNG, image compression (6.6MB → 437KB), CI fixes
- Golden snapshot auto-fix (PR #53): Extracted standalone regeneration script + pre-commit auto-stage
- Output contract upgrade (PR #54): Density gradient, symbol discipline, desensitization self-check
Install
curl -fsSL https://github.com/evidentloop/sopify/releases/latest/download/install.sh | bash -s -- --target codexSee README for all hosts and options.
2026-05-28.044700
Highlights
- Stale stub diagnostics (PR #49): enriched error messages when workspace stub version mismatches installed bundle
- reason_code cleanup (PR #49): removed internal
reason_codefield from user-facing develop output templates; added human-readable 说明/Note column - Output contract enforcement (PR #48): added
output-contract.mdas authoritative output format reference for all skill stages
Changes
installer/bootstrap_workspace.py:_stale_stub_diagnostic()helperinstaller/inspection.py: enriched_workspace_bundle_recommendationruntime/gate_output.py: neutral hint for bundle missing scenarios- 6 develop output templates (ZH+EN): removed reason_code, added Note column
output-contract.md+develop-rules.md(ZH+EN): clarified reason_code is internal-only- 2 new unit tests for stale stub diagnostic
- Blueprint tasks: added renderer scope audit backlog
2026-05-27.220559
What's Changed
Skill Writing Quality Convergence
- Shared Writing DNA: 6 foundational rules (ZH+EN) at
sopify/references/shared-writing-dna.md - Output Template v2: Verification summary tables with
reason_code, review evidence, androot_cause(optional) - Status Symbol Constraint: `✓
- Philosophy Lines: One-line core principle added to analyze/design/develop SKILL.md
human_action_required: 5throot_causevalue for actions AI cannot perform- Render Pipeline Fix:
render_single_file()now inlines top-levelreferences/directory - ASCII Logo:
install.shnow displays the Sopify banner on install
Host Bundle Unification Closeout
runtime_bundle→sopify_bundlerename- Copilot workspace-scope installer converged into unified registry
- Golden snapshot protection (8 test cases, all hosts × all languages)
Release Assets
install.sh— Unix/macOS installer (with ASCII logo)install.ps1— Windows PowerShell installer
Plan Packages Archived
20260526_pre_launch_host_and_bundle_unification20260527_skill_writing_quality
Full Changelog: 2026-05-26.134110...2026-05-27.220559
2026-05-26.134110 — Runtime Slimming Closeout
Runtime Slimming 完整收口
核心变更
- Runtime 精简:删除已退役模块(decision_bridge, develop_callback, failure_recovery, skill_registry, context_v1_scope 等),engine.py 聚焦核心编排
- 架构拆分:编排逻辑提取为
_orchestration.py;plan_scaffold.py拆分为runtime/plan/包 - 测试重建:新增 orchestration / plan_intent / plan_lookup 直接测试
- Smoke 稳态化:清理 legacy 断言,Python smokes 加入 CI
- CI 简化:移除 PR body metadata check,简化贡献流程
- 归档:runtime_slimming plan 完整归档至 history/
Commits
- #44 runtime slimming closeout — smoke stabilization + docs + L3 archive
- #43 rename → _orchestration.py + docstring polish (4.12)
- #42 add kernel turn direct tests (4.11)
- #41 split plan_scaffold.py into runtime/plan/ package (4.10b)
- #40 fix smoke stub assertion
- #39 remove workspace stub assertion from runtime smoke
- #38 runtime bundle rewrite + handoff semantic fix + test cleanup (4.13-B)
2026-05-22.062718 — Braille Spinner + Clean Erase
What's New
- Braille spinner (
⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏) for download/unpack phases ininstall.sh - Clean erase on success: all spinner lines removed via ANSI cursor-up + clear, leaving only logo + result
- isatty-gated: falls back to plain log output when piped
- Previous release changes: unified
install.sh --target copilotentrypoint, logo display, multi-host workspace_kind preservation
Assets
| File | Purpose |
|---|---|
install.sh |
Universal installer (Linux / macOS) |
install.ps1 |
Universal installer (Windows) |
bootstrap.sh |
Compatibility alias → install.sh --target copilot |
2026-05-22.034140 — Payload-Only Onboarding + Canonical Writer + Contract Shrinkage
Summary
P4d → P5 → P6 → P7 milestone release. Major additions: external-repo one-click onboarding, canonical writer architecture, contract surface governance.
Highlights
-
P7 Payload-Only Onboarding Mainline
sopify_init.py: standalone workspace initializer with ANSI Shadow logobootstrap.sh: one-line bootstrap for external reposdocs/getting-started.md: unified onboarding guide- Copilot instruction distribution (managed block + owned file)
- README Setup Paths routing table; Copilot Adapter in architecture SVG
-
P6 Canonical Writer Cutover
sopify_contractsmodule extracted (runtime models decoupled)StateStoreextracted intocanonical_writer- Non-runtime state imports migrated
-
P5 Contract Surface Shrinkage
- 58 sub-surface adjudications (10 cross-tier / 1 candidate-kernel / 46 deep-only / 1 deleted)
- Shadow Writer gap analysis conclusion B
- Runtime retirement roadmap committed to blueprint
- Dead code removal (8 LOC)
-
P4d Copilot CLI Pilot
- First non-deep host verified (
payload_capable+ CONTINUATION) - Repo-local pilot, pure prompt asset consumption
- First non-deep host verified (
Quality
- 740 tests passed, 1 pre-existing failure (payload bundle version mismatch)
- 12 new smoke tests for sopify_init
- 3 rounds of cross-review on P7
Archive Consistency
- Fixed 4 stale
lifecycle_state: activein history/ - Eliminated plan/ ↔ history/ dual-residency
- New convention: plan/ originals deleted after archive
Assets
install.sh— stable channel installer (Unix)install.ps1— stable channel installer (Windows)bootstrap.sh— stable channel one-line bootstrap
2026-05-13.111757
Summary
- YAML block scalar support + installer bundle smoke isolation
- README architecture diagram (simplified, centered SVG)
- Blueprint First-Use Adoption Proof criteria expansion
Changed
- Runtime: Add block scalar parsing (
|,|-,>,>-) to built-in YAML parser; external skill front-matter parse errors degrade gracefully (fail-closed for builtin, tolerant for user) - Installer: Isolate bundle smoke
HOMEto prevent user-level skills from interfering with validation - Docs: Add simplified architecture SVG to README (EN + CN); expand Adoption Proof deliverables; add Release pipeline + test health baseline to process items
- Tests: Block scalar, skill registry tolerance, installer isolation coverage (+75 lines)
2026-05-11.202509
Summary
P4c Host Consumption Governance release.
This release converges Sopify host-facing consumption surfaces so Codex/Claude prompts, runtime output, status, and doctor views consume canonical
protocol and handoff facts instead of exposing internal route taxonomy, helper wiring, or blueprint implementation details.
Highlights
- Added
protocol.md §8as the authoritative host-consumption contract. - Reduced Codex/Claude prompt assets to stable protocol references and user-facing workflow semantics.
- Converged runtime output around handoff/protocol facts:
- loaded files render as
Context - route fields are no longer exposed in user-facing output
- gate status fallback is stable
- status symbols and
Nexthints map through handoff semantics
- loaded files render as
- Improved status/doctor output:
- raw taxonomy codes are replaced with human-facing labels
- checkpoint/state-conflict wording is clearer
- Added host enhancement declarations for:
continuationinteractionaudit
- Added validation script:
scripts/check-enhancement-declaration.py
- Expanded automated coverage for output rendering, installer status, and doctor contracts.
Plan / Blueprint References
- Archived plan:
.sopify-skills/history/2026-05/20260510_p4c_host_consumption_governance/
- Blueprint updates:
.sopify-skills/blueprint/protocol.md.sopify-skills/blueprint/design.md.sopify-skills/blueprint/tasks.md.sopify-skills/history/index.md
Verification
Release preflight passed locally with Python 3.14:
PATH=/opt/homebrew/opt/python@3.14/bin:$PATH bash scripts/release-preflight.sh
Results:
- hard gate: 686 passed
- implementation-mirror tests: 31 passed
- install/payload bootstrap smoke: passed
- prompt runtime gate smoke: passed
- bundle runtime smoke: passed
- skill eval gate: passed
## Assets
Upload the rendered stable release assets, not the repository root installer files:
- install.sh
- install.ps12026-05-07.220011
Summary
P3a Contract-Aligned Surface Cleanup 完整交付。Execution routing 收敛、cancel_scope 修复、knowledge_sync audit trail、dead path cleanup (-88 LOC)、blueprint 已完成里程碑压缩 + Px 独立里程碑。
Changed
- Execution routing convergence: authorized ActionProposal → deterministic route derive (
_derive_route_from_authorized_proposal); Router.classify 降为 bare-text legacy fallback - cancel_scope fix: cancel_flow 在 derive 路径内联处理,修复 artifacts 为空时默认全局清理的 bug
- knowledge_sync audit trail:
knowledge_sync_result贯穿 archive 全管道(success / blocked / archive_target_conflict 三路径) - Dead code removal: 删除 6 个无引用私有函数 + 1 个孤立常量 (-88 LOC)
- Test coverage: +17 routing convergence tests, +2 archive knowledge_sync tests, classify exclusion + checkpoint split 补齐
- Blueprint restructure: P0–P3a 压缩为一行摘要;Px runtime_surface_consolidation 独立里程碑(post-P4)
- P3a archived: plan →
history/2026-05/20260507_p3a_contract_aligned_surface_cleanup/
Plan Packages
20260507_p3a_contract_aligned_surface_cleanup(archived)
File details
Runtime — Execution routing + archive audit trail + dead code removal:
runtime/engine.py(+207 derive functions, -36 dead code)runtime/archive_lifecycle.py(+47 knowledge_sync pipeline)runtime/router.py(-26 dead function + constant + imports)runtime/workspace_preflight.py(-20 dead function)runtime/action_projection.pyruntime/checkpoint_request.pyruntime/deterministic_guard.pyruntime/develop_callback.pyruntime/handoff.pyruntime/output.pyruntime/plan_orchestrator.pyruntime/vnext_phase_boundary.py
Contracts — Schema cleanup:
runtime/contracts/decision_tables.schema.jsonruntime/contracts/decision_tables.yamlruntime/contracts/failure_recovery_table.schema.jsonruntime/contracts/failure_recovery_table.yamlruntime/contracts/signal_priority_table.schema.json
Tests — 689 tests, 49 subtests:
tests/test_runtime_engine.py(+337 routing convergence + archive assertions)tests/test_runtime_plan_registry.py(+70 knowledge_sync receipt tests)tests/test_context_v1_scope.pytests/test_runtime_decision.pytests/test_runtime_decision_tables.pytests/test_runtime_failure_recovery.pytests/test_runtime_gate.pytests/test_runtime_plan_reuse.pytests/test_runtime_router.pytests/test_runtime_state.pytests/test_bundle_smoke.pytests/fixtures/context_fail_close_contract.yamltests/pytest_entries/fail_close_contract_entry.py
Blueprint — Milestone compression + Px:
.sopify-skills/blueprint/tasks.md.sopify-skills/blueprint/design.md.sopify-skills/blueprint/protocol.md.sopify-skills/blueprint/README.md.sopify-skills/history/index.md.sopify-skills/history/2026-05/20260507_p3a_contract_aligned_surface_cleanup/
Docs & Skills:
README.md,README.zh-CN.mdClaude/Skills/CN/CLAUDE.md,Claude/Skills/EN/CLAUDE.mdCodex/Skills/CN/AGENTS.md,Codex/Skills/EN/AGENTS.mdscripts/check-prompt-runtime-gate-smoke.py
2026-05-06.181908
Release Overview
| Item | Value |
|---|---|
| Compare | 2026-05-03.203432 → 2026-05-06.181908 |
| Scope | 69 files changed, +4215 / -3746 |
Highlights
- 完成 P1 / P1.5 主线收口,重点强化
execute_existing_plan的授权、验证与拒绝链路。 - 为
ActionProposal引入plan_subject与revision_digest校验,补齐执行主体、目标 plan 与工作区边界的输入约束。 - 将非命令态 planning 的默认策略收紧为
authorized_only,未授权的 plan materialization 请求统一降级为受保护的 consult / guard surface。 - 落地
ExecutionAuthorizationReceiptcontract,提供规范化序列化、稳定 fingerprint、标准化proposal_id生成,以及跨 handoff / run 的持久化传递。 - 新增 stale receipt 的 fail-closed 校验,按完整性、绑定关系与新鲜度三层验证,阻止旧授权凭证跨运行误复用。
- 将
DECISION_REJECT从 consult 伪装语义中剥离,统一为独立的proposal_rejectedsurface,并同步对齐 engine、handoff 与 output。 - 将 verifier 的关键字段与消费路径升级为规范性 contract,明确
verdict / evidence / source的要求,并收紧与 receipt、存储边界的关系。 - 完整移除
~summary路由及相关模型、输出和测试残留,进一步缩小 runtime 职责面并降低维护成本。 - 补齐协议与运行时测试覆盖,包括 convention/compliance suite、action intent、engine 集成测试,以及 stale receipt cross-run proof;关键切片累计验证至
632 项通过。 - 重写
README.md与README.zh-CN.md首屏叙事,强化产品定位、协作方式与入口表达。 - 更新 blueprint 基线,补充 plugin taxonomy、promise tiers、collaboration positioning 与外部接入差距分析,并同步收敛 P1.5 plan/history 轨迹。