From 8b5e2ddec0466f6b2d0c947b7b3f8e86529b5942 Mon Sep 17 00:00:00 2001 From: "sanze.li" <2522048902@qq.com> Date: Mon, 20 Jul 2026 21:57:12 +0800 Subject: [PATCH 1/3] feat: clarify Sopify workflow and add product pages --- .nojekyll | 1 + .sopify/blueprint/README.md | 2 +- .sopify/blueprint/design.md | 17 +- .../audits/plan/audit.html | 1635 +++++++++++++++++ .../audits/plan/audit.json | 874 +++++++++ .../20260720_plain_language_output/plan.md | 146 ++ .../receipts/verify_001.json | 40 + .../20260720_plain_language_output/tasks.md | 108 ++ README.md | 13 +- README.zh-CN.md | 13 +- assets/sopify-architecture.svg | 20 +- assets/sopify-og-en.jpg | Bin 0 -> 255720 bytes assets/sopify-og-zh-CN.jpg | Bin 0 -> 131694 bytes assets/sopify-product-form-release-en.svg | 34 +- assets/sopify-product-form-release.svg | 48 +- assets/sopify-site.css | 979 ++++++++++ assets/sopify-site.js | 52 + assets/sopify-workflow-cn.svg | 200 +- assets/sopify-workflow.svg | 201 +- index.html | 274 +++ installer/hosts/base.py | 33 +- skills/en/header.md.template | 99 +- skills/en/skills/sopify/analyze/SKILL.md | 6 +- .../sopify/analyze/assets/success-output.md | 17 +- .../analyze/references/analyze-rules.md | 117 +- skills/en/skills/sopify/design/SKILL.md | 11 +- .../sopify/design/assets/output-summary.md | 13 +- .../sopify/design/assets/plan-template.md | 9 +- .../sopify/design/references/design-rules.md | 90 +- .../develop/references/develop-rules.md | 35 +- skills/en/skills/sopify/kb/SKILL.md | 175 +- .../sopify/references/output-contract.md | 90 +- .../sopify/references/shared-writing-dna.md | 46 +- skills/en/skills/sopify/templates/SKILL.md | 222 +-- skills/zh/header.md.template | 99 +- skills/zh/skills/sopify/analyze/SKILL.md | 6 +- .../sopify/analyze/assets/success-output.md | 17 +- .../analyze/references/analyze-rules.md | 117 +- skills/zh/skills/sopify/design/SKILL.md | 11 +- .../sopify/design/assets/output-summary.md | 11 +- .../sopify/design/assets/plan-template.md | 9 +- .../sopify/design/references/design-rules.md | 90 +- .../develop/references/develop-rules.md | 35 +- skills/zh/skills/sopify/kb/SKILL.md | 175 +- .../sopify/references/output-contract.md | 98 +- .../sopify/references/shared-writing-dna.md | 46 +- skills/zh/skills/sopify/templates/SKILL.md | 184 +- .../plain-language-output-v1.json | 76 + tests/golden-snapshots.json | 16 +- tests/test_golden_snapshots.py | 12 +- tests/test_plain_language_contracts.py | 270 +++ tests/test_plan_contract_assets.py | 12 +- zh-CN.html | 267 +++ 53 files changed, 5516 insertions(+), 1655 deletions(-) create mode 100644 .nojekyll create mode 100644 .sopify/plan/20260720_plain_language_output/audits/plan/audit.html create mode 100644 .sopify/plan/20260720_plain_language_output/audits/plan/audit.json create mode 100644 .sopify/plan/20260720_plain_language_output/plan.md create mode 100644 .sopify/plan/20260720_plain_language_output/receipts/verify_001.json create mode 100644 .sopify/plan/20260720_plain_language_output/tasks.md create mode 100644 assets/sopify-og-en.jpg create mode 100644 assets/sopify-og-zh-CN.jpg create mode 100644 assets/sopify-site.css create mode 100644 assets/sopify-site.js create mode 100644 index.html create mode 100644 tests/behavior-scenarios/plain-language-output-v1.json create mode 100644 tests/test_plain_language_contracts.py create mode 100644 zh-CN.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ + diff --git a/.sopify/blueprint/README.md b/.sopify/blueprint/README.md index 911b1d33..87ef594d 100644 --- a/.sopify/blueprint/README.md +++ b/.sopify/blueprint/README.md @@ -13,7 +13,7 @@ ## 当前焦点 -- 当前无活动 plan;EvidentLoop 可选配套安装、Codex 公开版本 dogfood 与正式 receipt 已收口,归档见 `../history/2026-07/20260718_evidentloop_optional_audit_integration/`。 +- 当前活动 plan:`../plan/20260720_plain_language_output/`;Skill、推广页、产品形态和架构图文字边界已最小收口,方案内审计发现的两项问题已修复并通过全量验证;当前交付只执行已授权的本地 commit 与当前分支 push。 - MCP tool plane 已完成 Codex-first 持久注册验证和 Claude 会话级只读调用验证,Qoder / Claude / Copilot 的后续持久注册仍按证据推进。 - P8 Protocol Kernel & Runtime Retirement 已归档至 `../history/2026-06/20260605_p8_protocol_kernel_runtime_retirement`。 - history 归档:已可用;最近归档:`../history/2026-07/20260717_sopify_entry_preflight`。 diff --git a/.sopify/blueprint/design.md b/.sopify/blueprint/design.md index e4c60e8a..f381d12b 100644 --- a/.sopify/blueprint/design.md +++ b/.sopify/blueprint/design.md @@ -123,20 +123,20 @@ Sopify 不默认提示、安装或执行任何 Verifier。独立审计可不绑 所有线共享一个知识面(blueprint / history)。知识面是跨 session/model/host 的共享工作记忆。 -在多模型、多云、多宿主逐步解耦的环境下,Surface-shared 的目标是让项目连续性绑定到共享文件协议,而不是绑定到某个模型、云或聊天上下文。任意 host/model 只要正确消费 blueprint/history 与 handoff 暴露的机器事实,就能基于同一项目记忆继续工作;但推进 pending checkpoint 或产生副作用仍必须回到 Wire-composable 的机器接力与 protocol admission。 +在多模型、多云、多宿主逐步解耦的环境下,Surface-shared 的目标是让项目连续性绑定到共享文件协议,而不是绑定到某个模型、云或聊天上下文。受支持的宿主可在用户明确要求后读取 blueprint、plan、history 与 receipts,基于同一项目记录继续工作;本地 handoff 只提供当前环境的恢复提示,推进 pending checkpoint 或产生副作用仍必须经过 protocol admission。 **Sopify 的不可替代性 = 线 + 面的组合。** Protocol 定义证据规范,sopify_writer 做协议准入,Receipts 提供审计证据。 ## 三层定位 (ADR-016: Protocol-first) -> **P8 Final**:Protocol-first 是已完成的产品形态。`blueprint/protocol.md` 定义最小可携带协议。Runtime 已在 P8 中退场(W2.10 物理删除 46 文件 / ~15.6K LOC)。Protocol kernel(sopify_writer + sopify_contracts + protocol.md)是唯一的真相源和写路径。 +> **P8 Final**:Protocol-first 是已完成的产品形态。`blueprint/protocol.md` 定义最小可携带协议。Runtime 已在 P8 中退场(W2.10 物理删除 46 文件 / ~15.6K LOC)。Protocol kernel(sopify_writer + sopify_contracts + protocol.md)是协议真相源和受控写入边界。 > > **Blueprint Truth Cutover 原则**:Blueprint 是产品合法边界和预算的唯一定义源。Protocol kernel 定义 how it currently runs,blueprint 定义 what is valid。 | 层 | 内容 | 体量 | 可替代性 | |----|------|------|---------| | **Protocol Kernel** | `.sopify/` 目录约定、schema、sopify_writer、sopify_contracts | ~2K 行 + 纯文档 | 不可替代 | -| **Default Workflow** | analyze / design / develop / finalize skill prompts + host prompt assets | 纯文档/prompt | 可替换(宿主可用自有工作流) | +| **Default Workflow** | analyze / design / develop 三个主阶段 Skill、辅助 Skill 与显式 finalize 动作 + host prompt assets | 纯文档/prompt | 可替换(宿主可用自有工作流) | | **Host / Skill Adapters** | installer / host adapters / payload / doctor | ~3K 行 | 可按宿主扩展 | **Convention 模式(当前唯一模式)**:宿主读 prompt 指令 → 自行推进 → sopify_writer 做结构化写入校验 → receipts 提供审计证据。 @@ -160,7 +160,7 @@ Sopify 不默认提示、安装或执行任何 Verifier。独立审计可不绑 - Host LLM 是执行者,**不是 authorizer** - Protocol admission 做**结构级校验**(sopify_writer:schema 合法、plan_id 有效、receipt 命名规范);host prompt 做**语义级引导** - sopify_writer **不是 executor**:不生成或修改方案语义;唯一目录迁移例外是 `finalize_plan` 在版本校验后执行标准归档 -- 宿主执行层**按协议文件做事**:读 plan.md / handoff / receipts,写回通过 sopify_writer +- 宿主执行层**按协议文件做事**:读 plan.md / handoff / receipts;协议状态、handoff 与 receipts 通过 sopify_writer 写回 ### Subject Identity(主体身份) @@ -561,6 +561,15 @@ output.py 渲染层逐字段分类。只做分类,不做改造决策(改造 - prompt asset 属于 payload/install surface - `skills/{zh,en}` 是 prompt-layer source of truth;宿主安装产物由 installer / host adapter 渲染 - 新宿主不进 legacy 目录树结构;新宿主如需 prompt asset,走 host adapter / payload 机制 +- 宿主可按请求直接路由 Analyze、Design、Develop、KB 或 Templates;单个 Skill 只完成自身职责,仍共享正式协议、授权和输出边界,不作为独立产品运行 +- Analyze 负责目标、交付物与证据交接;Design 负责方案取舍、readiness 和方案正文模板;Develop 负责批准范围内的实施与验证;KB 负责长期知识和 `knowledge_sync`;Templates 只提供知识库文档形状 +- Copilot 单文件产物只展开 header、Skill 入口、references 和 assets。`scripts/` 只属于具备 Skill tree 的宿主;单文件使用 references 中的等价规则,不内联 Python 或暴露不可执行脚本路径 + +### 公开推广页 + +- 仓库根目录的 `index.html` 与 `zh-CN.html` 是同一静态产品页的英文和中文入口,共用 `assets/sopify-site.css` 与 `assets/sopify-site.js` +- 页面只陈述当前正式能力与宿主梯度;GitHub Pages 的发布源为 `main / root`,实际启用仍是独立发布动作 +- 首页在现有接续区说明产品形态,并以架构图作为唯一技术结构入口;Product Form 中英文 SVG 原路径保留,仅供 README 说明 Host、Skill、Assets、Handoff、Archive 五个组成,不进入首页重复展示 --- diff --git a/.sopify/plan/20260720_plain_language_output/audits/plan/audit.html b/.sopify/plan/20260720_plain_language_output/audits/plan/audit.html new file mode 100644 index 00000000..89d62517 --- /dev/null +++ b/.sopify/plan/20260720_plain_language_output/audits/plan/audit.html @@ -0,0 +1,1635 @@ + + + + + + + Sopify 代码变更审计 · EvidentLoop + + + +
+
+
+
+
EvidentLoop · 代码变更
+

Sopify 代码变更审计

+
+运行:run-c08dcb466f7d41d79030659d64e2410d · 来源:staged · schema:0.4 · 审查状态:输出完整 +
+
+
+ 当前结论 + 存在待处理问题 +
来自模型审查
+
+
+ +
+
+ 模型原判断 + 存在待处理问题 +
原风险分:28
+
+
+ 我的裁定 + 尚未写入报告 +
可在问题卡片中记录待更新裁定
+
+
+ 当前剩余问题 + 2 项 +
当前结论:存在待处理问题 · 风险分:28
+
+
+ +
+
+ 已计分风险分 + 28 + +
+
+ 待处理问题 + 2 + 待处理 +
+
+ 未计分问题 + 0 + +
+
+ 影响文件 + 50 + 已采集 +
+
+ +
+ 审查输出已完整接收 +
这只表示审查者输出满足结构契约,不代表上下文覆盖充分;请结合结论、问题与未计分项人工判断。
+
+
+ +
+
+

1. 变更摘要与审计结论

+ 变更目标:未审计 +
+

改动整体边界清楚,中英文 Skill 所有权、单文件渲染和静态页面均增加了针对性约束,但当前还不是无 finding 的交付候选:应先统一公开页面对 handoff 持久化边界的表述,并补上 Open Graph 图片真实尺寸验证。

+
+
+

Sopify 变更

+

共 50 个文件发生变更(+2941/-1655,其中 2 个二进制文件)。

+
+
+ 影响文件(50)· 查看全部 +
+
+ .nojekyll + + +1 + -0 + · 新增 +
+
+ .sopify/blueprint/README.md + + +1 + -1 + · 修改 +
+
+ .sopify/blueprint/design.md + + +13 + -4 + · 修改 +
+
+ .sopify/plan/20260720_plain_language_output/plan.md + + +145 + -0 + · 新增 +
+
+ .sopify/plan/20260720_plain_language_output/tasks.md + + +108 + -0 + · 新增 +
+
+ README.md + + +6 + -7 + · 修改 +
+
+ README.zh-CN.md + + +6 + -7 + · 修改 +
+
+ assets/sopify-architecture.svg + + +10 + -10 + · 修改 +
+
+ assets/sopify-og-en.jpg + + +0 + -0 + · 二进制 +
+
+ assets/sopify-og-zh-CN.jpg + + +0 + -0 + · 二进制 +
+
+ assets/sopify-product-form-release-en.svg + + +17 + -17 + · 修改 +
+
+ assets/sopify-product-form-release.svg + + +24 + -24 + · 修改 +
+
+ assets/sopify-site.css + + +979 + -0 + · 新增 +
+
+ assets/sopify-site.js + + +52 + -0 + · 新增 +
+
+ assets/sopify-workflow-cn.svg + + +99 + -101 + · 修改 +
+
+ assets/sopify-workflow.svg + + +99 + -102 + · 修改 +
+
+ index.html + + +274 + -0 + · 新增 +
+
+ installer/hosts/base.py + + +30 + -3 + · 修改 +
+
+ skills/en/header.md.template + + +5 + -94 + · 修改 +
+
+ skills/en/skills/sopify/analyze/SKILL.md + + +3 + -3 + · 修改 +
+
+ skills/en/skills/sopify/analyze/assets/success-output.md + + +10 + -7 + · 修改 +
+
+ skills/en/skills/sopify/analyze/references/analyze-rules.md + + +34 + -83 + · 修改 +
+
+ skills/en/skills/sopify/design/SKILL.md + + +6 + -5 + · 修改 +
+
+ skills/en/skills/sopify/design/assets/output-summary.md + + +6 + -7 + · 修改 +
+
+ skills/en/skills/sopify/design/assets/plan-template.md + + +2 + -7 + · 修改 +
+
+ skills/en/skills/sopify/design/references/design-rules.md + + +27 + -63 + · 修改 +
+
+ skills/en/skills/sopify/develop/references/develop-rules.md + + +4 + -31 + · 修改 +
+
+ skills/en/skills/sopify/kb/SKILL.md + + +37 + -138 + · 修改 +
+
+ skills/en/skills/sopify/references/output-contract.md + + +27 + -63 + · 修改 +
+
+ skills/en/skills/sopify/references/shared-writing-dna.md + + +19 + -27 + · 修改 +
+
+ skills/en/skills/sopify/templates/SKILL.md + + +62 + -160 + · 修改 +
+
+ skills/zh/header.md.template + + +5 + -94 + · 修改 +
+
+ skills/zh/skills/sopify/analyze/SKILL.md + + +3 + -3 + · 修改 +
+
+ skills/zh/skills/sopify/analyze/assets/success-output.md + + +10 + -7 + · 修改 +
+
+ skills/zh/skills/sopify/analyze/references/analyze-rules.md + + +34 + -83 + · 修改 +
+
+ skills/zh/skills/sopify/design/SKILL.md + + +6 + -5 + · 修改 +
+
+ skills/zh/skills/sopify/design/assets/output-summary.md + + +5 + -6 + · 修改 +
+
+ skills/zh/skills/sopify/design/assets/plan-template.md + + +2 + -7 + · 修改 +
+
+ skills/zh/skills/sopify/design/references/design-rules.md + + +27 + -63 + · 修改 +
+
+ skills/zh/skills/sopify/develop/references/develop-rules.md + + +4 + -31 + · 修改 +
+
+ skills/zh/skills/sopify/kb/SKILL.md + + +37 + -138 + · 修改 +
+
+ skills/zh/skills/sopify/references/output-contract.md + + +31 + -67 + · 修改 +
+
+ skills/zh/skills/sopify/references/shared-writing-dna.md + + +19 + -27 + · 修改 +
+
+ skills/zh/skills/sopify/templates/SKILL.md + + +43 + -141 + · 修改 +
+
+ tests/behavior-scenarios/plain-language-output-v1.json + + +76 + -0 + · 新增 +
+
+ tests/golden-snapshots.json + + +8 + -8 + · 修改 +
+
+ tests/test_golden_snapshots.py + + +6 + -6 + · 修改 +
+
+ tests/test_plain_language_contracts.py + + +245 + -0 + · 新增 +
+
+ tests/test_plan_contract_assets.py + + +7 + -5 + · 修改 +
+
+ zh-CN.html + + +267 + -0 + · 新增 +
+
+
+
+
+ 暂无摘要声明审计 + 未生成结构化 claim +
+
+
+
+ +
+
+

2. 风险

+ 1 条 +
+
+
+
+ + 风险 +
+ Open Graph 图片测试只验证文件存在,没有验证图片实际为声明的 `1200×630`。 + +tests/test_plain_language_contracts.py:173 +
+ 待处理 +
+
+
+
+
+为什么是问题: 测试只检查 HTML 中的宽高 metadata 和 JPG 的 `.is_file()`;任意尺寸或损坏的 JPG 都能通过,同时页面仍会发布错误的分享图尺寸声明。 +
+ +
+
+ @@ -0,0 +1,245 @@ + 可信节选 · 展示 17/245 行 · 橙色标记:新文件第 173 行 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
旧行新行代码
… 省略 164 行可信 diff 内容 …
165+ page: str, image_name: str, canonical: str
166+) -> None:
167+ html = (REPO_ROOT / page).read_text(encoding="utf-8")
168+ assert f'<link rel="canonical" href="{canonical}"' in html
169+ assert 'hreflang="en"' in html and 'hreflang="zh-CN"' in html
170+ assert f"/assets/{image_name}" in html
171+ assert 'property="og:image:width" content="1200"' in html
172+ assert 'property="og:image:height" content="630"' in html
173+ assert (REPO_ROOT / "assets" / image_name).is_file()
174+ assert (REPO_ROOT / ".nojekyll").is_file()
175+
176+
177+@pytest.mark.parametrize(
178+ "page,readme,asset,label,required",
179+ [
180+ (
181+ "index.html",
… 省略 64 行可信 diff 内容 …
+
+
+
+ + +
+ + +
+
+ 模型原判断 + 待处理 · 低 +
+
+ 我的裁定 + +
+
+ 当前状态 + 待处理 · 低 +
+
+ + +
+
+
+
+
+
+

3. 范围

+ 1 条 +
+
+
+
+ + 范围 +
+ 公开页面声称 handoff 会随仓库携带,与本次变更明确规定的本地 handoff 边界冲突。 + +index.html:9 +
+ 待处理 +
+
+
+
+
+为什么是问题: 同一 diff 中的 README、架构图和 FAQ 都说明 handoff 指针只留在当前机器且不进入 Git,但英文页面的 description、Open Graph 文案和 Hero 仍写着 “Plans, handoffs, and evidence stay with your repo”,中文页面也重复了“方案、交接和证据跟着项目走”。用户可能因此误以为跨机器或跨队友时 handoff 本身会随仓库恢复。 +
+ +
+
+ @@ -0,0 +1,274 @@ + 可信节选 · 展示 17/274 行 · 橙色标记:新文件第 9 行 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
旧行新行代码
1+<!doctype html>
2+<html lang="en">
3+ <head>
4+ <meta charset="utf-8" />
5+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6+ <meta name="theme-color" content="#f7f3ea" />
7+ <meta
8+ name="description"
9+ content="Sopify is a resumable, traceable workflow for AI coding. Plans, handoffs, and evidence stay with your repo across tools and sessions."
10+ />
11+ <link rel="canonical" href="https://evidentloop.github.io/sopify/" />
12+ <link rel="alternate" hreflang="en" href="https://evidentloop.github.io/sopify/" />
13+ <link rel="alternate" hreflang="zh-CN" href="https://evidentloop.github.io/sopify/zh-CN.html" />
14+ <link rel="alternate" hreflang="x-default" href="https://evidentloop.github.io/sopify/" />
15+ <meta property="og:type" content="website" />
16+ <meta property="og:site_name" content="Sopify" />
17+ <meta property="og:locale" content="en_US" />
… 省略 257 行可信 diff 内容 …
+
+
+
+ + +
+ + +
+
+ 模型原判断 + 待处理 · 中 +
+
+ 我的裁定 + +
+
+ 当前状态 + 待处理 · 中 +
+
+ + +
+
+
+
+ +
+
+

把裁定交给 AI 更新报告

+

待更新内容仅保存在当前浏览器,并按 graph、run 与 finding fingerprint 隔离;点击复制前不会离开本页。

+

0 项决策 · 0 条评论 · 不自动上传

+

本地保存可用

+
+ +
+ + + +
+
+

4. 审查依据详情

+ 2 条 +
+
+ 查看全部 2 条审查依据 +
+ + + + + + + + + + + + + + + + +
证据来源状态关联
宿主语义审查结论:公开页面声称 handoff 会随仓库携带,与本次变更明确规定的本地 handoff 边界冲突。
同一 diff 中的 README、架构图和 FAQ 都说明 handoff 指针只留在当前机器且不进入 Git,但英文页面的 description、Open Graph 文案和 Hero 仍写着 “Plans, handoffs, and evidence stay with your repo”,中文页面也重复了“方案、交接和证据跟着项目走”。用户可能因此误以为跨机器或跨队友时 handoff 本身会随仓库恢复。
宿主语义审查发现问题finding-001
宿主语义审查结论:Open Graph 图片测试只验证文件存在,没有验证图片实际为声明的 `1200×630`。
测试只检查 HTML 中的宽高 metadata 和 JPG 的 `.is_file()`;任意尺寸或损坏的 JPG 都能通过,同时页面仍会发布错误的分享图尺寸声明。
宿主语义审查发现问题finding-002
+
+
+
+
+ + + diff --git a/.sopify/plan/20260720_plain_language_output/audits/plan/audit.json b/.sopify/plan/20260720_plain_language_output/audits/plan/audit.json new file mode 100644 index 00000000..266ae25c --- /dev/null +++ b/.sopify/plan/20260720_plain_language_output/audits/plan/audit.json @@ -0,0 +1,874 @@ +{ + "schema_version": "0.4", + "graph_id": "audit:run-c08dcb466f7d41d79030659d64e2410d", + "source": { + "type": "git_diff", + "ref": "staged", + "description": "Sopify 本地 Git diff 审计" + }, + "runs": [ + { + "id": "run-c08dcb466f7d41d79030659d64e2410d", + "label": "Sopify 代码变更审计", + "status": "concerns", + "summary": "改动整体边界清楚,中英文 Skill 所有权、单文件渲染和静态页面均增加了针对性约束,但当前还不是无 finding 的交付候选:应先统一公开页面对 handoff 持久化边界的表述,并补上 Open Graph 图片真实尺寸验证。", + "kind": "model_review" + } + ], + "nodes": [ + { + "id": "change-001", + "type": "change", + "title": "Sopify 变更", + "summary": "共 50 个文件发生变更(+2941/-1655,其中 2 个二进制文件)。" + }, + { + "id": "file-001", + "type": "file", + "path": ".nojekyll", + "change_type": "added", + "additions": 1, + "deletions": 0 + }, + { + "id": "file-002", + "type": "file", + "path": ".sopify/blueprint/README.md", + "change_type": "modified", + "additions": 1, + "deletions": 1 + }, + { + "id": "file-003", + "type": "file", + "path": ".sopify/blueprint/design.md", + "change_type": "modified", + "additions": 13, + "deletions": 4 + }, + { + "id": "file-004", + "type": "file", + "path": ".sopify/plan/20260720_plain_language_output/plan.md", + "change_type": "added", + "additions": 145, + "deletions": 0 + }, + { + "id": "file-005", + "type": "file", + "path": ".sopify/plan/20260720_plain_language_output/tasks.md", + "change_type": "added", + "additions": 108, + "deletions": 0 + }, + { + "id": "file-006", + "type": "file", + "path": "README.md", + "change_type": "modified", + "additions": 6, + "deletions": 7 + }, + { + "id": "file-007", + "type": "file", + "path": "README.zh-CN.md", + "change_type": "modified", + "additions": 6, + "deletions": 7 + }, + { + "id": "file-008", + "type": "file", + "path": "assets/sopify-architecture.svg", + "change_type": "modified", + "additions": 10, + "deletions": 10 + }, + { + "id": "file-009", + "type": "file", + "path": "assets/sopify-og-en.jpg", + "change_type": "binary", + "additions": 0, + "deletions": 0 + }, + { + "id": "file-010", + "type": "file", + "path": "assets/sopify-og-zh-CN.jpg", + "change_type": "binary", + "additions": 0, + "deletions": 0 + }, + { + "id": "file-011", + "type": "file", + "path": "assets/sopify-product-form-release-en.svg", + "change_type": "modified", + "additions": 17, + "deletions": 17 + }, + { + "id": "file-012", + "type": "file", + "path": "assets/sopify-product-form-release.svg", + "change_type": "modified", + "additions": 24, + "deletions": 24 + }, + { + "id": "file-013", + "type": "file", + "path": "assets/sopify-site.css", + "change_type": "added", + "additions": 979, + "deletions": 0 + }, + { + "id": "file-014", + "type": "file", + "path": "assets/sopify-site.js", + "change_type": "added", + "additions": 52, + "deletions": 0 + }, + { + "id": "file-015", + "type": "file", + "path": "assets/sopify-workflow-cn.svg", + "change_type": "modified", + "additions": 99, + "deletions": 101 + }, + { + "id": "file-016", + "type": "file", + "path": "assets/sopify-workflow.svg", + "change_type": "modified", + "additions": 99, + "deletions": 102 + }, + { + "id": "file-017", + "type": "file", + "path": "index.html", + "change_type": "added", + "additions": 274, + "deletions": 0 + }, + { + "id": "file-018", + "type": "file", + "path": "installer/hosts/base.py", + "change_type": "modified", + "additions": 30, + "deletions": 3 + }, + { + "id": "file-019", + "type": "file", + "path": "skills/en/header.md.template", + "change_type": "modified", + "additions": 5, + "deletions": 94 + }, + { + "id": "file-020", + "type": "file", + "path": "skills/en/skills/sopify/analyze/SKILL.md", + "change_type": "modified", + "additions": 3, + "deletions": 3 + }, + { + "id": "file-021", + "type": "file", + "path": "skills/en/skills/sopify/analyze/assets/success-output.md", + "change_type": "modified", + "additions": 10, + "deletions": 7 + }, + { + "id": "file-022", + "type": "file", + "path": "skills/en/skills/sopify/analyze/references/analyze-rules.md", + "change_type": "modified", + "additions": 34, + "deletions": 83 + }, + { + "id": "file-023", + "type": "file", + "path": "skills/en/skills/sopify/design/SKILL.md", + "change_type": "modified", + "additions": 6, + "deletions": 5 + }, + { + "id": "file-024", + "type": "file", + "path": "skills/en/skills/sopify/design/assets/output-summary.md", + "change_type": "modified", + "additions": 6, + "deletions": 7 + }, + { + "id": "file-025", + "type": "file", + "path": "skills/en/skills/sopify/design/assets/plan-template.md", + "change_type": "modified", + "additions": 2, + "deletions": 7 + }, + { + "id": "file-026", + "type": "file", + "path": "skills/en/skills/sopify/design/references/design-rules.md", + "change_type": "modified", + "additions": 27, + "deletions": 63 + }, + { + "id": "file-027", + "type": "file", + "path": "skills/en/skills/sopify/develop/references/develop-rules.md", + "change_type": "modified", + "additions": 4, + "deletions": 31 + }, + { + "id": "file-028", + "type": "file", + "path": "skills/en/skills/sopify/kb/SKILL.md", + "change_type": "modified", + "additions": 37, + "deletions": 138 + }, + { + "id": "file-029", + "type": "file", + "path": "skills/en/skills/sopify/references/output-contract.md", + "change_type": "modified", + "additions": 27, + "deletions": 63 + }, + { + "id": "file-030", + "type": "file", + "path": "skills/en/skills/sopify/references/shared-writing-dna.md", + "change_type": "modified", + "additions": 19, + "deletions": 27 + }, + { + "id": "file-031", + "type": "file", + "path": "skills/en/skills/sopify/templates/SKILL.md", + "change_type": "modified", + "additions": 62, + "deletions": 160 + }, + { + "id": "file-032", + "type": "file", + "path": "skills/zh/header.md.template", + "change_type": "modified", + "additions": 5, + "deletions": 94 + }, + { + "id": "file-033", + "type": "file", + "path": "skills/zh/skills/sopify/analyze/SKILL.md", + "change_type": "modified", + "additions": 3, + "deletions": 3 + }, + { + "id": "file-034", + "type": "file", + "path": "skills/zh/skills/sopify/analyze/assets/success-output.md", + "change_type": "modified", + "additions": 10, + "deletions": 7 + }, + { + "id": "file-035", + "type": "file", + "path": "skills/zh/skills/sopify/analyze/references/analyze-rules.md", + "change_type": "modified", + "additions": 34, + "deletions": 83 + }, + { + "id": "file-036", + "type": "file", + "path": "skills/zh/skills/sopify/design/SKILL.md", + "change_type": "modified", + "additions": 6, + "deletions": 5 + }, + { + "id": "file-037", + "type": "file", + "path": "skills/zh/skills/sopify/design/assets/output-summary.md", + "change_type": "modified", + "additions": 5, + "deletions": 6 + }, + { + "id": "file-038", + "type": "file", + "path": "skills/zh/skills/sopify/design/assets/plan-template.md", + "change_type": "modified", + "additions": 2, + "deletions": 7 + }, + { + "id": "file-039", + "type": "file", + "path": "skills/zh/skills/sopify/design/references/design-rules.md", + "change_type": "modified", + "additions": 27, + "deletions": 63 + }, + { + "id": "file-040", + "type": "file", + "path": "skills/zh/skills/sopify/develop/references/develop-rules.md", + "change_type": "modified", + "additions": 4, + "deletions": 31 + }, + { + "id": "file-041", + "type": "file", + "path": "skills/zh/skills/sopify/kb/SKILL.md", + "change_type": "modified", + "additions": 37, + "deletions": 138 + }, + { + "id": "file-042", + "type": "file", + "path": "skills/zh/skills/sopify/references/output-contract.md", + "change_type": "modified", + "additions": 31, + "deletions": 67 + }, + { + "id": "file-043", + "type": "file", + "path": "skills/zh/skills/sopify/references/shared-writing-dna.md", + "change_type": "modified", + "additions": 19, + "deletions": 27 + }, + { + "id": "file-044", + "type": "file", + "path": "skills/zh/skills/sopify/templates/SKILL.md", + "change_type": "modified", + "additions": 43, + "deletions": 141 + }, + { + "id": "file-045", + "type": "file", + "path": "tests/behavior-scenarios/plain-language-output-v1.json", + "change_type": "added", + "additions": 76, + "deletions": 0 + }, + { + "id": "file-046", + "type": "file", + "path": "tests/golden-snapshots.json", + "change_type": "modified", + "additions": 8, + "deletions": 8 + }, + { + "id": "file-047", + "type": "file", + "path": "tests/test_golden_snapshots.py", + "change_type": "modified", + "additions": 6, + "deletions": 6 + }, + { + "id": "file-048", + "type": "file", + "path": "tests/test_plain_language_contracts.py", + "change_type": "added", + "additions": 245, + "deletions": 0 + }, + { + "id": "file-049", + "type": "file", + "path": "tests/test_plan_contract_assets.py", + "change_type": "modified", + "additions": 7, + "deletions": 5 + }, + { + "id": "file-050", + "type": "file", + "path": "zh-CN.html", + "change_type": "added", + "additions": 267, + "deletions": 0 + }, + { + "id": "finding-001", + "type": "finding", + "category": "scope", + "severity": "medium", + "status": "open", + "title": "公开页面声称 handoff 会随仓库携带,与本次变更明确规定的本地 handoff 边界冲突。", + "detail": "同一 diff 中的 README、架构图和 FAQ 都说明 handoff 指针只留在当前机器且不进入 Git,但英文页面的 description、Open Graph 文案和 Hero 仍写着 “Plans, handoffs, and evidence stay with your repo”,中文页面也重复了“方案、交接和证据跟着项目走”。用户可能因此误以为跨机器或跨队友时 handoff 本身会随仓库恢复。", + "fingerprint": "sha256:6f3e40a0db63ea8f509392375ad126cab8816a00bdad6a761f6d917d5006c3b7", + "model_judgment": { + "status": "open", + "severity": "medium" + }, + "extensions": { + "evidentloop": { + "review_finding_id": "f-001", + "original_category": "spec_mismatch", + "confidence": "speculative" + } + }, + "file_path": "index.html", + "hunk_id": "hunk:0eb547304658805a:1:1", + "start_line": 9, + "end_line": 9, + "line_side": "new", + "highlight_lines": [ + 9 + ], + "hunk": "@@ -0,0 +1,274 @@\n+\n+\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Sopify — Resumable, traceable AI coding\n+ \n+ \n+ \n+ \n+ \n+ Skip to content\n+\n+
\n+ \n+
\n+\n+
\n+
\n+
\n+

Sopify / workflow protocol

\n+

Resumable, traceable AI coding

\n+

\n+ Ask before writing. Resume after approval. Plans, handoffs, and evidence stay\n+ with your repo—even when you switch AI coding tools.\n+

\n+ \n+

No new editor. No new CLI. Start with ~go in the host you already use.

\n+
\n+\n+
\n+ \n+
plan → checkpoint → handoff → resume
\n+
\n+
\n+\n+
\n+
\n+

What it prevents

\n+

Move fast without avoidable rework

\n+

Sopify keeps fast AI coding from outrunning the facts, the decision, or the project history.

\n+
\n+\n+
\n+
\n+ 01 / ASK\n+

Premature coding

\n+

When a requirement or key choice is unresolved, Sopify pauses instead of guessing.

\n+
\n+
\n+ 02 / RESUME\n+

Lost context

\n+

Plans and evidence live with the repo, so a new session, tool, machine, or teammate can continue from the same record.

\n+
\n+
\n+ 03 / TRACE\n+

Forgotten decisions

\n+

Requirements, tradeoffs, reviews, and verification evidence remain inspectable project assets.

\n+
\n+
\n+
\n+\n+
\n+
\n+

How it works

\n+

A workflow with deliberate stopping points

\n+

Simple requests stay simple. Work that needs a plan moves through four explicit stages and pauses when you need to decide.

\n+
\n+\n+
\n+
\n+ STEP 01\n+

Analyze

\n+

Clarify the outcome, evidence, and unresolved boundaries.

\n+
\n+
\n+ STEP 02\n+

Design

\n+

Choose the smallest sufficient path and make decisions visible.

\n+
\n+
\n+ STEP 03\n+

Develop

\n+

Implement the approved tasks and attach focused verification.

\n+
\n+
\n+ STEP 04\n+

Finalize

\n+

Close the plan only when delivery evidence is ready.

\n+
\n+
\n+\n+
\n+ \n+
\n+
\n+\n+
\n+
\n+
\n+

Product form

\n+

The host executes. Sopify keeps the work resumable

\n+

\n+ Sopify is a workflow protocol layer for the AI coding host you already use. It supplies shared rules and\n+ preserves plans, decisions, and verification evidence as project files in .sopify/.\n+

\n+

\n+ Ask to continue or run ~go in a supported host to resume an unfinished plan. A local handoff pointer\n+ provides a same-workspace resume hint.\n+

\n+ .sopify/plan/…\n+
    \n+
  • Codex · verified
  • \n+
  • Claude · verified
  • \n+
  • Qoder · verified
  • \n+
  • Copilot · baseline
  • \n+
\n+
\n+ \n+ \n+ Open the technical architecture →\n+ \n+
\n+
\n+\n+
\n+
\n+

Install

\n+

Add Sopify to the host you already use

\n+

The installer checks for Python 3.11 or newer before downloading. You can inspect the script before running it.

\n+
\n+\n+
\n+
\n+
\n+ \n+ Copy\n+
\n+
$ curl -fsSL https://github.com/evidentloop/sopify/releases/latest/download/install.sh | bash -s -- --target codex:en-US
\n+
\n+\n+ \n+
\n+\n+ \n+
\n+\n+
\n+
\n+

FAQ

\n+

The short version

\n+
\n+\n+
\n+
\n+ Is Sopify another editor or agent CLI?\n+

No. Sopify installs workflow instructions and project conventions into supported AI coding hosts.

\n+
\n+
\n+ Does every question start a plan?\n+

No. Ordinary questions and small fixes are handled directly. Sopify resumes an unfinished plan only when you ask to continue or use ~go.

\n+
\n+
\n+ What actually travels with the repo?\n+

Plans, decisions, and verification receipts can be tracked under .sopify/. The active-plan and handoff pointers stay gitignored by design.

\n+
\n+
\n+ Does switching hosts give every host identical capabilities?\n+

Codex, Claude, and Qoder have protocol-verified paths. Copilot currently has baseline prompt support; its payload path is more limited.

\n+
\n+
\n+ Is EvidentLoop required?\n+

No. Sopify works on its own. EvidentLoop is an optional companion for auditable reviews of local Git changes.

\n+
\n+
\n+
\n+
\n+\n+ \n+ \n+" + }, + { + "id": "evidence-001", + "type": "evidence", + "source": "host_llm", + "status": "fail", + "summary": "宿主语义审查结论:公开页面声称 handoff 会随仓库携带,与本次变更明确规定的本地 handoff 边界冲突。", + "detail": "同一 diff 中的 README、架构图和 FAQ 都说明 handoff 指针只留在当前机器且不进入 Git,但英文页面的 description、Open Graph 文案和 Hero 仍写着 “Plans, handoffs, and evidence stay with your repo”,中文页面也重复了“方案、交接和证据跟着项目走”。用户可能因此误以为跨机器或跨队友时 handoff 本身会随仓库恢复。" + }, + { + "id": "finding-002", + "type": "finding", + "category": "risk", + "severity": "low", + "status": "open", + "title": "Open Graph 图片测试只验证文件存在,没有验证图片实际为声明的 `1200×630`。", + "detail": "测试只检查 HTML 中的宽高 metadata 和 JPG 的 `.is_file()`;任意尺寸或损坏的 JPG 都能通过,同时页面仍会发布错误的分享图尺寸声明。", + "fingerprint": "sha256:11cbbb629e14adaae49701e9fc2e81ff0b29207ff32863b6d3cb1aced92fdd73", + "model_judgment": { + "status": "open", + "severity": "low" + }, + "extensions": { + "evidentloop": { + "review_finding_id": "f-002", + "original_category": "missing_validation", + "confidence": "plausible" + } + }, + "file_path": "tests/test_plain_language_contracts.py", + "hunk_id": "hunk:ece9fe95cc9ccd93:1:1", + "start_line": 173, + "end_line": 173, + "line_side": "new", + "highlight_lines": [ + 173 + ], + "hunk": "@@ -0,0 +1,245 @@\n+from __future__ import annotations\n+\n+import json\n+from pathlib import Path\n+import tempfile\n+\n+import pytest\n+\n+from installer.hosts.base import HEADER_TEMPLATE_NAME, install_host_assets, render_single_file\n+from installer.hosts.copilot import COPILOT_ADAPTER\n+from installer.hosts.qoder import QODER_ADAPTER\n+from installer.validate import validate_host_install\n+\n+\n+REPO_ROOT = Path(__file__).resolve().parents[1]\n+SCENARIOS = REPO_ROOT / \"tests\" / \"behavior-scenarios\" / \"plain-language-output-v1.json\"\n+\n+\n+def _skill_file(language: str, relative: str) -> str:\n+ return (\n+ REPO_ROOT / \"skills\" / language / \"skills\" / \"sopify\" / relative\n+ ).read_text(encoding=\"utf-8\")\n+\n+\n+def test_bilingual_skill_trees_have_the_same_files() -> None:\n+ roots = [REPO_ROOT / \"skills\" / language / \"skills\" / \"sopify\" for language in (\"zh\", \"en\")]\n+ trees = [\n+ {path.relative_to(root).as_posix() for path in root.rglob(\"*\") if path.is_file()}\n+ for root in roots\n+ ]\n+ assert trees[0] == trees[1]\n+\n+\n+def test_behavior_scenarios_are_versioned_and_bounded() -> None:\n+ payload = json.loads(SCENARIOS.read_text(encoding=\"utf-8\"))\n+ assert payload[\"schema_version\"] == 1\n+ assert len(payload[\"scenarios\"]) == 6\n+ assert len(payload[\"comparison\"]) == 6\n+ assert len(payload[\"source_revision\"]) == 40\n+\n+ required = {\n+ \"scenario_id\",\n+ \"language\",\n+ \"surface\",\n+ \"input\",\n+ \"evidence\",\n+ \"expected_behavior\",\n+ \"allowed_write_set\",\n+ }\n+ assert all(required <= scenario.keys() for scenario in payload[\"scenarios\"])\n+ readonly = [\n+ scenario\n+ for scenario in payload[\"scenarios\"]\n+ if scenario[\"surface\"] == \"host/consult_readonly\"\n+ ]\n+ assert {scenario[\"language\"] for scenario in readonly} == {\"zh-CN\", \"en-US\"}\n+ assert all(scenario[\"allowed_write_set\"] == [] for scenario in readonly)\n+ for language, locale in ((\"zh\", \"zh-CN\"), (\"en\", \"en-US\")):\n+ source_root = REPO_ROOT / \"skills\" / language\n+ rendered = render_single_file(\n+ source_root / HEADER_TEMPLATE_NAME,\n+ source_root / \"skills\" / \"sopify\",\n+ COPILOT_ADAPTER,\n+ )\n+ current = {\n+ \"characters\": len(rendered),\n+ \"bytes\": len(rendered.encode(\"utf-8\")),\n+ \"lines\": len(rendered.splitlines()),\n+ }\n+ baseline = payload[\"copilot_baseline\"][locale]\n+ observed_after = payload[\"copilot_after\"][locale]\n+ assert current.keys() == baseline.keys() == observed_after.keys()\n+ assert all(current[metric] < baseline[metric] for metric in current)\n+ assert all(observed_after[metric] < baseline[metric] for metric in observed_after)\n+\n+\n+@pytest.mark.parametrize(\"language\", [\"zh\", \"en\"])\n+def test_design_owns_plan_templates_and_uses_readiness(language: str) -> None:\n+ design_rules = _skill_file(language, \"design/references/design-rules.md\")\n+ plan_template = _skill_file(language, \"design/assets/plan-template.md\")\n+ summary = _skill_file(language, \"design/assets/output-summary.md\")\n+ templates = _skill_file(language, \"templates/SKILL.md\")\n+\n+ assert \"Ready\" in design_rules and \"Needs decision\" in design_rules\n+ assert \"`strict`\" in design_rules and \"`adaptive`\" in design_rules\n+ assert \"Ready\" in plan_template and \"Needs decision\" in plan_template\n+ assert \"Ready\" in summary and \"Needs decision\" in summary\n+ assert \"Solution quality\" not in plan_template\n+ assert \"方案质量\" not in plan_template\n+ assert \"## A2\" not in templates\n+ assert \"Protocol\" in templates\n+ assert \"plan//plan.md\" not in templates\n+\n+\n+@pytest.mark.parametrize(\"language\", [\"zh\", \"en\"])\n+def test_phase_owners_keep_their_boundaries(language: str) -> None:\n+ analyze = _skill_file(language, \"analyze/references/analyze-rules.md\")\n+ analyze_output = _skill_file(language, \"analyze/assets/success-output.md\")\n+ develop = _skill_file(language, \"develop/references/develop-rules.md\")\n+ kb = _skill_file(language, \"kb/SKILL.md\")\n+ output_contract = _skill_file(language, \"references/output-contract.md\")\n+\n+ assert \"consult_readonly\" in analyze\n+ assert \"`strict`\" in analyze and \"`adaptive`\" in analyze\n+ assert \"证据来源不限\" in analyze or \"not an exhaustive source list\" in analyze\n+ assert \"Deliverable:\" in analyze_output or \"交付物:\" in analyze_output\n+ assert \"Assumptions used\" in analyze_output or \"本次采用的假设\" in analyze_output\n+ assert \"Type:\" not in analyze_output and \"类型:\" not in analyze_output\n+ assert \"explicit assumptions when used\" in output_contract or \"实际采用的假设\" in output_contract\n+ assert \"common root cause\" in develop or \"共同根因\" in develop\n+ assert \"knowledge_sync\" in kb\n+ assert \"sopify_writer\" in kb\n+\n+\n+@pytest.mark.parametrize(\"language\", [\"zh\", \"en\"])\n+def test_copilot_single_file_has_no_script_source_or_dangling_path(language: str) -> None:\n+ source_root = REPO_ROOT / \"skills\" / language\n+ rendered = render_single_file(\n+ source_root / HEADER_TEMPLATE_NAME,\n+ source_root / \"skills\" / \"sopify\",\n+ COPILOT_ADAPTER,\n+ )\n+\n+ assert \" Sopify Architecture - File-based development protocol — no runtime, rules live in .sopify/ + File-based development protocol — no runtime; project assets live in .sopify/ @@ -47,7 +47,7 @@ Copilot - Any Host ... + Other adapters @@ -55,7 +55,7 @@ PROTOCOL KERNEL - Schema, contracts, sole write path — irreplaceable core + Schema, contracts, validated protocol writes — irreplaceable core protocol.md @@ -67,7 +67,7 @@ sopify_writer - Sole write path + Validated protocol writes receipts @@ -75,7 +75,7 @@ - 4-STEP PROTOCOL ENTRY + MANAGED PLAN 4-STEP ENTRY 1. active_plan.json → locate plan 2. plan.md → semantic entry point 3. current_handoff.json → resume hint @@ -87,7 +87,7 @@ DEFAULT WORKFLOW - Built-in skills guide host behavior — replaceable per project + Managed plan path — three phase skills + explicit finalize action analyze @@ -102,7 +102,7 @@ - finalize + ~go finalize (action) @@ -125,15 +125,15 @@ History - Archived decisions + Archived plans + receipts project.md Conventions - Plans, decisions, handoffs, and receipts persist as project assets — not chat history - Same work, any host — stop, resume, and trace from .sopify/ state + Plans, decisions, and receipts persist as project assets — not chat history + Supported hosts resume from project records when asked; handoff pointers stay local diff --git a/assets/sopify-og-en.jpg b/assets/sopify-og-en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3ef10e2b2f2115ef9ba78681535df4e6cc0e3f37 GIT binary patch literal 255720 zcmbTdX*^qP^ftO92#Qb?HMY?js;#M&AVddKTeFUe7DWfdJPT=QJrQE)7)d;(=%hNK zsH9YA5k+ez1fem{A>!oupYy)w%lYvB&PuYglYM7rulrtm?{!_*x_5ean1GCfjlB&3 z0s(-X-~sH60%uRh1l<6DbLRj(006`QPUH0|!zY!1^bTd36 zGAcSIHV%9DURwJ72N^lJdHD|?J$~}^-{(ceFG@tVkn_Gp=m9$5U(wg2(# z|ID$}|6iW{Z^!;$zXpJlg7Emygapt3G4Ov&urT;P6Bc;#pNafGCi*`H`On1ux9tda z@;`eJ{7mo^6SV!`+y0MNc7_DOb!Mj@kOYGS!335CtN{K@L!;&NcmSfbK8nh^ff^^- zYOu?1-U|5HA17NA${{$kEj@yJ#dt42U2IS3m4q`x#S!#Ter%bwbBwmK((2}9p#(tp zN%9Kc?A}@cYs`b_a1+p^mCRjV*M*9_7RG~puI~As&u$TgkPJ>+oK8NUBN=LC#s3t` zXgvDp^1^4x;jxR1)-d?TYAqH_8*hH0Xg8%Iv1%7>WsQNLKvZImu$Ja>5b{P<=bank zR9}TbHJ9M5KW~gGAc$)E>k4_tbNXAXsvx-wAEs_R_BW`tE%( zD;=%hoct2slKF|)kGX)BJa@b~?ds>$(C0Pk4b>E}v5F5LtwRDc9^hU!3hA`8Fn!!R z>9;I}r^+XqwX(v}4(;FmR#E~PtW@~`&FKKRN>C7-TEloT0JvOlJehp z*0{DQHT>-Q+U0v)e=EN=nO5N7l_F=9Z)jl%nA%DcQ2nH0)SwVC>siV4slZg5NROYu zYwET8US!P5tm~|Dvz|CRbanM@kcF+}urB$V)UBlV4Zdp2ULUnCzi<8?rPZg|TohI{ zjZ$e97m>E+?+H$Q^4Vf;B4a7him_B|{qdD47_O|v=J3_Zv~KHUOU||123s*$s6D2t zxj6Fe@!!6Puy$&;IHYpJ{a16Xkdt~Hf|1PWe`0hm*jCMsVFJ?gdHb8C>a(2nMmKT? zcvbq-O&`$ zN7tHL7|G%MxNiS}yFe&<)-`t`w`CnkTYF)HYgCU~rHx@!`^+!S(bjhWj$4L8;^<@I za@E4={e&fK4w{hwcKB}na}i%n5#3#E*A&Ipa65;lHD4p*q|=IgrA_5Hn|#rtk=kJ8 z>1+^lJ5We|t08!CsG?bU^XWTkh>}*m8sx0Ilg#yO zkaZ*s>?2*DdE!)x(=bFyNv&e!m{A%;51_HZz42XVVh`bCSKwBez^SUCs(^B2#Y)jd zj|;lBQg!$-1ZURuu1GqXZ!(*r^lp9~ADS!y_z`%GOd+7j% zOGK8TuG4 zhj8l}WUS^6u=+RYWweh_Z3>B80Gu>RTHe(aa-KskS$&R%Xy?+0r$A~i!xZe!E4R=s ze@j-oEYAYuM+mE*ofyEe(|Bn?MT5OkqDJ6RvLP__ZQbfz(ECt(CTXSXptVa6F3SN( z>TQ=b?w-sg-G@NH18UR4g%`)w$^80uVvX2Pj;I;b$*mKkdf`xys;tZV9Ei))CzF}h zGey2?);oZNjd?n-5Mu(`J1hRcY_4f^`l$!)YPB|Qc`A9^{aat|AtFBP=8wjl03x>C z>9a9PhKmOPzw4wo*eU`sQdzzyf(FB(=WdDwA%s__u_#4fF}diUEx>YCPo0rZ<7iA1 zyxq17h+chh`cSsJFS=Qiy?LEPyL$yq1kb@&<$+G7q%Q;y5(Ien(QE_ko89?G#J;iK zv*p+QmD@Xpx+CZn6jAf=NiaTsbETLYHODm6l;fP4$o{@1>TFE|Te07mH2o@gO>@!$ zH}3$J9~BZI)u%&MU_ENnFuhiE%?{8FEjIIgbO?{&Z5yA>()Wl}iD!42?6x>amueRq zv|nG5&zLG1A5VpLt5@#;8sG9AUfqMBuaRQ+=ao8Ngg%$HH315Ll)*hCv{t?&+IN64 zp4jxp4&b#4gv~E2(1a7HYde6&-t2%I2FY^0@y8>UBU$<4?8O&`+*r7p zamQ1P95K5AsgrZI;8zNx;4RdvtebtX>c&r@yQD7>BXuafOJ*cg$sqfxxNSk3r#t1O4NLa$^D2`y?1NV5*WVk(W5+rmnrt*Mg>_U8@N{RC4X z^_`^798(!3mbO~G<0lzp^AO2;o}U;9YCEL5N6SaO0LtCgW!_&3jn$f?@6UlRfn~Fe z4C39M{I0rM(gl74nAv&?RjW#}iQTr7=BQN!GFjivqve{Cl@1lbc^Y0JArZ|P#>oDI z12sVx))`Lxx}y&}O@F{?gN>{udEB!{;&{Yn{3c%>*kj=ru~mN=a6f+p>|bX{ce?zz zIYr!p8NPyixvz?>PbAHmF5Ce%l(M z39YqfEc5>Qg+h>aJR7qyjJ$Ec#3Zq8-`Tfep(tiVDfXQUZXs6v@v6xKE$diiIID_h zjFMFhfN2IpNRPK~x*Zf#>kTJf&pm{r%r;vjhHvZEtYox;vzYr zLnN^pPE%#6Kf8Gi_d0>8Q8RC6tsmy*&7N%$x$uCoq& zo~MAT*ny;Lxpc?7QEGM5ct?-AW%?F!%i|#qI~AVO{jF-AUj7FoG^;~}!-&3CZ){>c z?d-Urt#FOEdMEQwNGDdf4o(^c>lwX=KZVleN!g=a+OhxiBa*xtE zsY-fGv3avBV~nr6DKA#tj%otOcjkVS#W-%D=ttT?9DZ`U?hko60&z*4lg0l8JFYS*0cUCP|1E;>7e$#S{eKDje%Nh9 z5A&olqN7@r-hLWSe+k{<clxHO1dZQM3+f-gloh;nIZe&wfqW0o09i9=9jGs7N?m$}uZX ze{&4F`_hpo$tFqu-!XZf`qE06uRg%>3&M*{H`6md%_g7z()s+?O4+B2<*O#|zdjvy z$Mp_;sW8=ln-t+{aALU)h}`!%dpi-)1g$suHoyPg+IRroO2U_W8=CvBVC4SWB&6Gw zWCccHTS@EFg!Ab3rym^d9e8TvbIp$4mJilH2Sl91MCD?RSE{;vvSUe}2_QQlBx|>1 z?eAG+n=#jz_`Z3RkbaCF6&Jq>E0}#=q_Y>+*?RnPZ)uK=dQn!l)&`*lDN|wk-WffrQG*n#za!}Jh4OAL8z=B+D23z zU(o&c^nEZ6yR>avRu-d0^u#ia18{I1b!{{C+Uh?i%sIR@$ zK~B!G>r4&LiD}sZ;3h!l6LV`8oEO*GlKCW5Y{u}rK~tgibrgrh3wOiK_BMigx8pK^ zTe@I`UJT7MmqA%8-lBxGz#G)Zw{`%M&Jl?mc@6Igmtcv|Cy?OZYPO=7gZomMxWqVq zGW(bk%OW4}19d(Mbymy{Cn_KKnh!G|!)RlcR z@D7K*3Md~%?S9c=im)Ii4Ce0u(9Rb(JVmZM#!J6=`N}6BrlHG>u)2JrqEOo7ooHB? z?F0&H&Y$unCidS3UMI-mMx(=QD{rFgPPns6euN2<=gZgh9WSn0C?G+zD7ky*wTJ<@ zxb8c9KgfQJ;(a#;Z`gKCJJHWIU}s`@u@n*DRj|}OHM{jP@lexLTj#{T`?6!&FLeL3YHh9caQVESt!X}mE*#p zHs<3R-qUCA`~s-&Zm+lv>;UDi2gBUi!YixWx~A_{ciR}mt;vI6(qe9y!DWWkJ=ni* z4IJZG_+(EvTEBeaUXE&u{O<(>rVOb zkl`5x*NW>9KCIqhJItzgxLGQdj{uY6mUNfoh(Z_TYLLcst2f7w3nx%Wp(O*u7@0ft zAsXG~oGfS^KDbLdj^H}3EfG$3$(?r5IVFO(u?-HVzoS4>%>r`Mgz=Nl%~`aw!PAv^ z@|%O6<3vG!i!%Md1oE1r2mr5qF`-=uvEX~CoC+sGYX~!zbuUj}x7QT}v|mck!Whx0 zUKhO84WtM$by=#u*~SCYZUKk7by%*RM($pf;A5NNa8J^>8VW=n0jpcrl4nv|z$wxWPbKDc*Eq_7Hu<|#6 zUClE|<%%xBC~muN7n!zUdx8N-N!L>8KRHp@7NuquPgl))-`8m%4WgBl2aHj(DbfgJ zS>3lVs5Y`<+Q~~*HkUwyO<1lpWVXHz6_t+V>;OF!NYnT`zB)p?WT{9+fU^#b6lz8l zY27owpp`-jg>HTPEn7C<+zcV<2t`;?<=Kc9mVj!>@jvn4XZQ%=tS92HsAH(p(sP__ zYAhQ9S)o8if2HV2UrdZ+aoyUL|EYx2*yTvGxNgTYqZcFLoX#Q$7$LlNNPvRfe79{| z!?BKmi=1`qHWj=Op4asxFRNynUI%#eQhj`cpqBYs)?s0080+tc?Azzkr_d|Y_Vpsz z-Ab8_0XfLJDNvEx*8+R14!4YQP}b0PqHZhL^e2J15bvfUVS8=eu3f-~tU3b@4-ceY zEBHoyqoVOR-q#8r^lLQ5!;@XvRmiA2aRxF4XE*?lTH(S++*d6}9D*d=wGmpp?#3IJ z0CqlgpuZ#{K<$dV?*0XMG7#NqgPhOYGnP2$R$f?<5^kMQH-!q9+S_b*( zcLX9+*j$+V3LIitH_i9FX6G7adooA2LNt1SD95m14;Lt@-!O23bGqZ*-pLvz)F16S zW^!jQ!ZRGV9m{c5aCfC(=@wBhhyCpA5#EpS=pLSwWRPbS72a+)_A*=ENEFeYv<6=n z!f-9ZU1s!n+ha-9MN*=_N66PY7P0-rvg!xH_UwaCE$1w+HfR*+TmT=&824x|QBFQK z7)|m*KP9MK&qvxJwELfHr40$ z@OC&a^b8_}n-k!eyoI;TQMvSxN2_IFqbb@d7|t|f+L0L$uETXiinElz0~&Cg90uKA z7})!D(ygn!va;^d@<~5aWD4CO=)8boM){#T7Uxk4gY=(LR8h^u7|Ydbez!#drh$ZE zmnC^S?q0M|j6^7WRlPp*Y!MJ0(ZnK>Cs2~M*9~>g22(v3T^moB{#=$^-f%yn&^}28 z#_y;K2I{?^i_TD%FJ3w^P)JV6b;M92=}vuT?eh1iC41JqSo5>ms<~BVPdzYpO;POo z7m6@p4(&x=QlJfy%s^OY2SRN|D@Z2{Z{v_-NH6>jSWUux9K*XX;Tv6I0T4J061HOU zXUZLyyFEYc$gS3t%k3ax1gH}5;o5nE=xU2Ag)}vLO}uU^pf{aSpL6}um!*!qAfc`|s567U9bnAaW}>hzQD{jHiI*E04q(a>sCBCRR@ z#h3d|Ym@$`DqEJ7d@@@>qt^3Rg9hcmL_C0)#HdK9jb15iXW9&tR!w!P02YO9k>rtL z9FrOOYTph09pHoAquHh#A;?QMzDu8ZRSeG_l%Id_P%J%sMn|nrY^mW6jfI_q)&c$t zPRfjGg&#pj$14APGFcRk+U28_wWZnr;p5UN_j%(quJxekP+b-6Ek2;y?!cZDi}?e0 z54xTRk%&rz5d#D#Ips7n#a^#L?NKTF&*NXl$79-2Dseu7fN5M9ABH_^_>;5oMa3@i z_+6E$nI}al{wp@O4V7r@KV=*S3wGq$4j|STby#C9RqCwQ9!dRg6~5ADEd^B!^=?q7 zznBk5JhF?@_#X`yd79?t~5be=8xxL@2-mI|GTAM>OGqoW%UQ* z{RQSRJ=g*9dR3i-9uanB@L#RRFyd~usqm`7he(M1Pc3Lm55a2Ba#50^=Ov1ci^egd zk<(G-gCVV|VBX8{JgNnr%Qm4c9Z}4V{cB*g7r;H#w}X3*OIMjNckLE6B;;$!%?^Cp zzn|6m7wRPdiK``ZA^G-T3)O5f%RJzod+s|XD}SIVshXen=e8Op^Ld?J^lp!LhD|}w zfNUL29D0Q!I;#>UEx*_@7r(7rd>Lh!9UsZN=~mHEu4aT-Su2vAzzh+yoxB9BzJ-md zWUzMXML~z!9I5UV9r48{>%}xCWEYJui7P4SXNdj88zdj~E(Sb&ReV*xCa6~*B2V4) z@TW@9RdLrThuQ~c)s|`di+YW_ecws}7HI?7F*B(4o4P07Dlc}aA>%w!OdtJNhf^&A zhX2h5S0z-z2vgPq*++FQWE8#w?9J2n<2~=PVr@j0DkuqI$tPlHWxkReM{F&s7crB&xR#8Vbo9EG-~MGa-~nI zi!1Txbf4%$3oX{?&-}ui9p}R-;vjH32&FZ?xw2Y1AgiE-ld+%Wed!ElJcriNz2duC zTCo8?Y)h6WF)}hLvWs-L4OhTuFxAEYJ)G}s>9Cuw#7zup=TXMh z(+A!hIS$saIu1}7+A9a2UvGQdpl-*0Ve0_Im0sT^mr03DSZog;$WT7vh zLk{5&+a*Hnkcdt98=5@mS;9Qon|MREB^D*SES;_z!T(s}s|k}n&ce1kCf+-z zEpDkKQ6#$o5zZb?wFHPYah-?*-k3DXj>5Hb_ovm zB?cIcagMQawEe8-G<pY*k zwCkvrc~`w;F-`2cwS@!_tZ1&q=nl|uxc)9=tc5XLEJh8-K$h2v{rjVsK4Av2ywdpEkQ%3S^?9d|MFOIQ5bIvx+hO26k+cA=yz1F@}@IzOZjkW=x>E4ncJ?AJDYl zhEJc>Fy7My=U_yRbwdl{q@UMY4(SDUAzV@j^Be5W6sg`_{xwl_jUR7cmZECq2FsUA zAyGe@_je6INv?=Cz(5b8x!~kz?pCS(oG9&d`F7e#9DzE6;5bVjn$^exn}Fcx z)R&f?i=2$imcW5hDvKCkGTU0GME4|@aQPnlz@e^jE7W7ac_j}7Yn8=yrx+c9z~QRkHsHA3I_u}?2gXLHsZ>`e z4HE6yopJHGX)so;UGJS$EdbL@QCA5zaR$g zYmFlM8mnYYAkpDPxINqyZY-oGF;G$=4B#OUYlQ|4dac&0N+v)Lm(fQ5Y@F3Zs+#V_ zLC|k220Bc2}t=R6$C>R^`RVP`)(?E%ufGwXcnB%F* z5(fe#Px?ly)FfI7E?uvc_J9#Ti0uEtXyUoTnL`(dSWf>7qla7;TZtyT{MYcWUX?SK zt|CyHwr?i(IbTX+(P#kFO9$Y3rW%N?YIrj;Y-HXOvdsmDzv*^7r$JjYlCI1P9Leib z(!`Z*I)e`c;QRtY)EG-8hrmB1$I*n5p2gB1HJOiDxZJ1Nwm3aMY2GqQj5<5g4*X1^ zn#}eM(n)pkSqo)P^(o2_5*?e>^sjh@<7fv?qhT}oNFbo|*YP*7wd{P*#t$HjbS;&k zNs1bza2Lg8P=6HrGemH^ap?gyAI`FJ#+Rv5#>D&WW@<(cp_8 zTm14T@M+|ig|_0{rc&i6!I5X+AMo}AwcAL&=fVD=mM1rmTRzD&zvSEAQkQuC8{w3M z0~@-diC3JmTsjhtjcr?9T#UZY{#fJlr$=$D*;?vJ%)9fjPxpPk8(5cz{w}v-RuP71 zmSk2)AManAfj49-U(3nT0}lGK7J-iT*a(jEx-fvkas295V4xP+4|H5hHL z2CZi?EGC?``E06FEp(_QL~W>HzrnNPgra>~KbkD(26rcZv)b6NI5X-SaG-Q?r0LMZ z+RXh2c$d%*WWC!?DY+kBj|L2+J9^z!@SRT`zc(p%uib(w>;SaLd$i@qqkV6ejvap7 z)$sMm1>~dr>jt5Y(V>uI7p{ES0a8~+=wg-fn6vk^KI@IyJ`jMfv2-H~y}%6WU{TNKYN8n1=d9uyb43>A%eaMIz|q;Zv_s#Gsx zfNFv5e0O*UU}CM_|E@XPU-A$C;IQ(B`J^+C;DR&B2xI`UTIL?RrCvK(&9U0p$EKb$b^83i>#J@;Oy#Zf`FGcb4RVZOXC_iFxoVaKo_i^T z6S6rM^nC{qzPRCU+W*XBqkeI0wd9}X3)PEuBfyc1A5Z&i4_wO-dfZ9yl<5et$Aex;`Lq&Zq7XJz4RH{|8sn9r}Is5W`)Eu`$N3rNNw75!r`&=fqCx)VAv~2(mZbKd{nU&Ptj|${#R$<&(u@Rbnhl7G^zX={%WNYtd;|vm%Q<-$R+kO;;}CFC}!oN)=BR z_3&?IGRfB8If59qonaJhlk6#m?T_z%f$;I~f18q}beI^5z8rpJ zysCG0=5?~*Wc@4Ch8`>L`;Mv1vyj;cZ^UQmobH`yZEg@A2MweeU;L7O--`M9vKsYM z^`hy_bg2oU;+~-M4rZ<&vGlYJuT&cB8+81=Rn5FUoJ>=+1X2GGf=I?28M#+Xa#{@P zJ{kXLc4}YV720r3bN6$7-f~;$v|xbMw+sBP_LpQ?9vyu7V;3!QOr-k0J_f9cuGKjD z7^OcTsPy5UI~w@UTEOYCko#5(p0mdry)Xau{@`*Z2&O1|JbmnEK$6W$#+4Uamdoqz zHAV6Fe~Pqd#0bXFatF9QU4O?LdpYZ$+AE{a$if>xzmasiYh_vWqF(mwmLkqxzk8R? z`xxqnHM*V(wHwE@3Tm%b7k$_Ee-c~@5_ss1!>ps2dRa?djw}zg@l3HHdC!!kc8_TB zze9n!Q|mp^l7G(aZaU}^Ea{3K$3We@wgfH}RN7kwCl7!xzcc=R$11}DtkQ38*HPRo zxGz4_Cvb7S%cowBL!V_|d2`jSsmCT@zR=tTVC8Z)-ToMBxAn3HG>Xq(&AKnBD#AmK zUDp;4fus!f7|2%8C6&?iwr;`gsqDv=dk(5SSv8tB-Dz&vupK*@V?ipCHjjWUQbbML zu^RCq*BrT@$Jt@H2l*$*eEk6^X@Yf+y zoVc`40muH7l?(-CsttZ_5n;j1>B{}@C!~d%5#Tqsd?#SaEy~T) zp8y2ovAu80bX6#*^t|2k>{qHRJTJ>JUt1q?-9Ws}(KyHW9#z8DVvW;}k-@qbo zonGjc?->WHvU3T1`Ozwwi*kMU#}jWhrfPs%`clcuk9Y4_HX!TG(v9{=El1ANdkV|e z3$H#W845I!`uaK`mYwCZb-rYjJ+jwUx<)lC#~RjL;Nk9@W6%DIcsp*CPX`Ao&kH!e za)pf=7E~%GyfI1U3Q2e+5MrFWS-F_GS zOIv@%Ks7kHu!c(p@O#xA-K^W3wgsB>q=m-fI)hW``^U4xVi_8ET`m}8 z-ESmnwigPEhNy;`Z+2zPb*tZvg41}AH~{luemqiJi`-?>CHlu`pYWCL;=WYGx9yRT!eX6QOW9S2NamnFCEOwv3?SE??KFKZ zvNh?F1qMw{Ufys9%Z{XF2}4IA2oA^9K>Ojf6)?F(LB>y{t-4O!@`+Sm-R)cERcAFM z&zOZ>+Ufu+`2tM8m7M1uDiuVvYHf`lMS9AgNml^Af{c(2Gc^j0Z2}2K9GI^aVyO>* z`!`@$6ZCLaNq46K4IIrOFO*iw{R}I*fl*b#`N@)uV!dxZ3lHuWWyY1NA^*x)dOsFY zu5L2k=;}!u2SlCRIs^>$oqAp0s@?ICn_VgAg)LQ5Qj_y9=*rcy3YXI{tf?-*I8RNH`+cJkVZkGZsp107$ zgd%p$4;(ur;%`BsEO!46bNhTjgHUFgteT+qT#$1bR~Guj&8k^`#D#8)t3Lz^h>k|{-u*Yw9r)PxxFmViqU$mzvXlSOCYN_& zgmv2ob^l&?V-h+L)`09?VI4apmy;0}pJZMw3#43Rm>pF( zNgm_pQ)=$yi;~7=R$CS<7}IZt;<(px2~DA~YcF!JDi2zil5Ba*i`nYnA~a1q1NgL? zxde4o*>n$csHS+ExL&^hiD7y7V#AcVjZ`EiDH-)-V+TLwt z$ShYD@PSS@Kgj%;^L`YBfOYHuS#iKk1q*&UK2b_HVpp2BnpjilO(W3N=M!v!p59Za z+?$(=Te73lRRUAy$$aJ9l-qE7NjM&Nc%F9FNX_jTu(v;HCj-LefFMFB8YAh`=bzSN9rm_giX*-1(QOBL$Y z`4qnuYGbdu0Q@H`mNmX@x<(-27U`WBCDtUAoFF~okeNDe$ds|S>f-60SPFB5GrH72 z%3#zs02wp~1$^)5E{xf)o#_?k8(ZQZ>_vLi9eK6wy2Q|h&<5x)_%H6 zD@yI9bxp95V~p}Vx8r4_47vtin`%|;bXUTTwyOSQWelT)FN|W>yYUvM&)w-89NHLH zCCoZX+Dj6TI%3I;;{AK3pu)>D2#t1(x`E?RQFx1XVd)K5Kb95?7w-B>$Pt|?rZl~@ z9sBY%u2)A~sX>8pa=s~0==yUj-M8Bu@qj6)hI(wG&qK8^ z9RQZvYU_y|s_A}Ke=i=#PtUlOs#J*(#t}${Bw{its3MoRWXMlE2RPV4By82}=`O3K zIo35=y2{L8WnS4FT(goZIBm+P?>t$(a?{)nuw)rAJLa|zdh>S(vLF-+d8KZ6e!rfg zzS)X;-o$A_^-yJY5}CXMyu~QxOn}4eSG7$H&rT?*vhf1mmGe8z6Q|R{uwZ3fPRVBG zB>w{ugmxxiaYD&&DO4!8i^D&r9M~bne&w5sCH0l;eknbNodndYR!e3@aF3g{^=$v! z^FFESyleHf2#yo#ZUJ2j%}>fdC<_vKtd29>lz4qb#DVEs&ILMzTU%>&G{bYu`AGD+ zX76F4Wag=5`t5E^)0H6eEEj&bQ@`jXl=3`EO8T1<0o`s5!zAimq}~9(ut!W|M>x&| zhFcFYf~Obb@{fq+U81z0P;xHgN_6tg8&j1+eXP_tzCvt{f!O#FL)z-RM{WL~H7g|t zir#P*4hx8(OC&p-Fx2E^xT)Sc$ZX`*%1s6NQay#F9T78uz(_WFGqNOI_N(0?Dr-2e zO!LlPV{V4(Zd19Zz}sg3&^~(QYDu$1nPe;#VG$RxUUor=VU>P4BdD+2PnF4x+YSU( zjAA5hTde`9PuJ>yv%9_`1#-_1sw&A$oy!Z#(J!xl1hmXoo{|n(g9rQmMQAVwA0AGvi@SYqFE5bKeWKBD8^7ZN% zTFK;|x?LZE*YUHPtj!Ma?kYwE5LC)LjJ115Y zqf+}CD=BTi!jeDqUiD}f=jnaBtp#zaFgn%ha*Q)QupPy4TG)?KKX0^wm|h0rk~jIE zxG(|dFknyT?XDk-*c(?7KW$;^gPKV7+(VL4~ubMd6LYIIbxG|$jq?F(uDmU~qDr5BpP0@b2eiFpUS zzdqn;(=n21wyu9-^Ad1Ego$vWgXaoIMeWCz-3EVIMN~`SNVf)SL~OGp{hQ4l?P8ry zYYbVhXe)u^{*3%M(JHU&6Me@#t1w|Xw`ZG_FY+L}S@PFA*@E61&FAQ^a$EA#>=}bf z(^oCfkE9L-_ZQ95mjze7&A%er6=zRD3qFC2ppT+$X4~VS)@}orHCt?Mla!WoKPA=r zRw@*XA>AAnCR5_akV$hYhg5dihs+1F?^K)=*7LGgtI;df>RCRz7{B&p`;8UzIawhR ziY0%znmJU7!M%HSO{!s<9QbZ1YgR36_M}BrkM=>8Q{1N({#w}v-T}HTB^kk&R%E=8Th$&c|+q>+vvP(%tJNXOO-k*Cl`L#e);tGSK9Jw%YHov%zWT$!|8b6hUA^$De+S^neONp2 z=U?xS31%Iw729P0ZfLmFk7v$%4jP{}`*8`?G~0)?KlZmc&&~659`84SU40`G))uL8 zNKKoTHGmZyKR4zn1e4%)`)N%9*7{H3GyCoWhC9B0);Gvu#nL6QXnB6s*hWP%C7u{i zIG@GwPS^OT$desth)W|xzTq>>^831X+XvrCFdh5(r|NyI-|ec;-Rg)VcODZhCyze# z;O6=LQ@`LeGH`)zskoS@@jh$Tbh|ht_DJN7vFTkpb9wL!bTM-Ei7U)RQ2NS}Z^#44bc38u=_Z|Lr(Tg~3tIuJzApN$xi zsr4_ldGP5H<`ql+N|HI*wWZHKvf?(8uIh0O+F#jSBn^)YFULWbMwoH zlk^jag&ewxh+DcBWi&b(F$bySTr};?IV+@C)`Suy>L=V&YFQm1s>ybtpGcNc3nX_V z;)UoX&``UW7VE!4NE^lnJVm26e53oZb|silS=n_=#rz!`<0xvYRMb$Z?2n)cX08b} zOTszJ(zXugda3$URg8Qn;)Q1aE?vDip*S$Ni=}TfgA2!9$H<5%L+MIW2s#Vp^E?d# zN$KJRsiq9({;HxeKIse_*uuGIbemb6R2|San~=vq0}O7(mLF@}eVoZk4HpQR&a5y= z*=}<9bW5>tN*Y9auCj!K(%9+Z&vbJ!ijV~b$#%+aC&yjV`2n{SB>Vbp4|AM>K=|${q4{i&?C-Fyj{8gI9hYJ`sQBpQ-0h zW{;fy{mKmYUGMq9)fwqOu&G-PC^hjZ8~He2a53N}p`n@+tE~{EwJ$jWG>aX6DTG3b zCM~Y4lywj#Wot}82Mz3Q=ixvl(T~GZorS;^ zcKQu4_4>{t9ff~DDL5=qP|n$3sB&LBRh%Up!0q})HFxsNf&WiEDYruy*K`VD{(z+^ zNR%Y|n1mi66l6L1Tpvf*3QtL)uN3)TCD#fQ7gNX~Hvuf;+?LHCc8Nf$XSrz&p?tC3 za@~SCCZ4Iikb*(kO;`VHZgS*(u2X`u$PQpA15jj%TLB&2M^wk}S*$42S*tHXG>$W4 zf(t&lHCZc5o{YRmJ)QoT$>5ktDLd zTBh@YW>i$te`w4JYG{IydUoq#7;Un3S9ynX(Q%K|oLH`nAqOQ>=0m}u$(K*x-%3RY z&;-YQ42HugXan0p>3ZLhPRSFi6tRwX%Cr_$^@c$Y;_T?FjZx7Y8c~5=5Wsc9z z4Ogk>t2e>rU|8`q1N8N@ay=qQv zSOH`^cW;9R=gjv%4;}bC+pN~hSF6uI`onlX2BE3&*T5**>;%Q|PyxkOB z!ZS(fpA0kRbPx%UO}LL^&?!(~v{OoTAbUIg=1M3ptF$3OPhhqvbs3Vb<^d{{HfKc<^BN zcE9iIx?a!M>jEzvGf!JHh0wb6*5$^9ATm-!`)qX$6mtUe1=paQ2v_Z2q5lIw-!%K( zo5xd}(6)=O`W?3&yx`j#CSC1m&J2kv#-@a-bq`_qd zx?h&O-x7?G8Ww)Jbtn>OaybiB?yLHtZ$%QM+x3uQr5X+)1jfjotxJ)9m1abXnNfxi zl6e<0JX{DElwVX)fOAg#eaIGcYZo>Z^e0tbIHuQ*t4f0{T_HJpOE`A}6d~^d=r=Xv zsgryleD^_7-It-AT!G3qIKX_TXr$*DC2-~vaxZH_!|p(~3jK7xZiV8x@e!KtUpWKt ziN{mqt%ARtv*VKP8##r@p0Ax)AIw<&PVOm%=oZT4CwS^GO!LsB-owi=3V(8cw}2gv z9cW(-%>t64i((G)eTS4h5Vi3d?(j`y2T=6J4a?`{i{|y{f53ftq9{ve3JP%#D6_nA zaG-gxl)Ro5x+>Sen`|0-7%t5!5gb}qiaL)oTD#U`EhSmJoeQwzT|xtipKdO$!Pzl` z&`R`Z-noyeq7%?Gci(gBwxzutVyQim6@an4JeRN`bdwP|6q_3VP2ON(dvdcRKpieX zE+Ms|tT3ME5==m=_{Hh_x|l6;BG;nH?BfI7K`!In6K@0;(#0022JldXy$3;T@+wtf zg|r2}3PA6!CRB4WH65JL%v$sA>%aze=xrG`j@5xF&|&=coua$ZWVWD=b_$hI3rO2% zye)-s>=uNn@Yi!Ew;+|v8nxwnkiD+0#Dy;wZ`O`FDSdeI-G|ov~o#w-5^4{M+-~8n?QW7Mxe(9`6FjC((b{UE?FT zKnCgTq*M4*It~rf9)0<-QpVajb5I*%m@@9~;-H5li7W4N>{qc;kSj#vRuFnEb`;a{ z9gDh+2xL`M48g1%nDTTO!faiRHb?UVQ(reCq{uT`wLr6=ri}sC`I6wAHs;CxW%6JC}600uS_pDD{%cK;)PTicFt>r+0drMOY6B zIiM6;Ur&wuGYHjyBl-{TFuOkm2;sUSTr{qsf^Gg+?%JVwYdJ57%IHTB*2& z#0e(kVtn!UeeeVPB_)6$j~Tej5es3%?Dm$K^2{ZO?Q6Z>A+;JEJr65zAfq&WL650{ z@f1^badHUD$WbnM972$X+j7~U1Y!KRL zra9G;joX^#`3UB z4j5Wg)UOoQl44m!d6Z_^1%2_;^F)N)nfuc^MIOz0-4U7a4>+|#s<0^_3IWF+-mh!Oo?vqDi^A< zdxmydv$6F!E8^_mS6mYxeMEY@azw-3LAW zpbxb^wR56PFmjgAGJL?+mUOQM-KB zGEwXjT*eNCJR#4bnmV5P!#4_-J5(;LP@LxkD{!%{7!iZQG*)|$29B46w@4opY~rP! zm#6VXpVB7LA6-2EjQi8IPbU_iNrp=QHQaS34OJ+0%dA--FQuG@Z>~i9TDR6SCx5*{ zlZo$H!x&Is#YH}7J6RQOGY^(;ufn~O7yB>2@su?=?Mg(pG-tu=;RjcZC&brtCd&7` zsOVJ^^UY6^O+MaVqrvPdi(={m-(Zy(wd#E+D*(?Mae1pPr=7-}dsJ&KN>2ZkA!O zgJKEamEQKV-Kq(zT=AG1)jkiB61Xfrr7(`o$Swo#G}@z_GgrvsgwpJ{@&;2)*-v4ZDQVL@c zF)cjnVO6z~Sd%U+1))qv2a8O?Q6;eF z(hgf`Un5Kut?ONwS%mWo$KB+Njb}uw6Fz7B5s9DQUt2%l2F|lm7=6AvY5w$ z)srbvepmk}WlyaSvMAV6)*?}3ZL^jC0ANS|6i3|~Y9;Y(;=X8@lVN0S<<6SM)zmZJ ze1ATli*8(SYC_P?F`J-|1Zi(=6>Rj6OE)Ly{mHOX7y35&zn)k%WS_mLh-`;jZrRNu zYF0R{gfv3;MO)0yrF(}-&qfV{GEKI1Fs}qV*L)`z*re#vem>AvSu22iC+E^v0KVRv z-oIC3mW<+V58y%J3v{5piA8cY>-LB%NApytI&ZfLrwH+{TMq?;hIfM|3F^UYB zd9r|sS(jq^L0SJmjv@&W+dMGoBUnRQIJ?_u`DHdhW%sB!wPVFJ-uA=`P}g~=?m}K9 z=k^uHZQDqWB|bTR2nAN5vOd~}J5kS)y_6UsccA}97^`}Ezss>KYRTISzWL&E4Ds6Z zYwnkxKCGl$&qMhUQm`G7M?^K&dc2#4gP(T%`L{f2D!6fy*lf6xX{`;l!yF#|Q?s>Z z3B9$appla6?5%AFZ3V77U-%MjO^IUMu)f3U{Wb=qN$nAZ9PJ&*^;04;VwLHcaNl&2 z*5?u6WA2yK=Hn0JTD$jcn9nrsT`Wo$SFg?n zm~j}IX%*l=(3LnFL5{WT2?hP2)^$>{s@&slbcTfk@)v(F^!wf_*v_3z=6(v@2fosd8UnQ{7Y*?R?Q_nr@vMHx}u*RpdEze1ih}civIxV1%HyCv4_~=Damv^ zd1^>1QEO3Lv#&=`PeHmCGG>Q{uzUFlbTu6piiAYa7R|$a>Vtfct{l`^ROGgtp z8N6E}l6fn=chFe*r>*9!2uX>+vf-{@=vZ#9_wC_Cfjq^DEgkS3M-vUne>jUyQac8dB;wy|$an zQqv_|C9&BPRLW155DjtupbPQ~kXF5pi8X#%hKy8Gg#%IAxy6eLBn?23%LBk7E-GS3%A+SIeKoDH>b{od{PuXv@qEM5 zB%R|rZ6(pcHBtu9ZDib0B1%4&$QTpzGlX-EZ5O>#4>!~-O==GC!w^EjI&dzj8MOo! zBZst7J{9DSW^hTWrONCR%}AL{#djK|h~&z8iVk;FYt-N{&i5e1tOnafC}su>fpD#t z1*^g~rOc33&C+}sMVr(<`a`A?#nS?|Za_fy-ErPLW*k7|=K+?Hf5TCQ;;GHzfBq^y zWNN2gElW`&YleHM0=eQSC_X20al>R)@p#k$?Kl!*mN2EN#ExU7Xl(27Vo?r?-PI{b zZAMwL45uziTr`Jr_ybH(Q5t$lJ|~QK+XZ#fIUR1r=;hV?0Ik2!LUD%(>Vns@ybn`3 z?hyEC-s0)67BkdzQa_*!|`|;0zg07NSdA zdpX#6eUJDn-nN^2((2rEd}Y2HR69xCdk{K6guoe}PS>KK99YAp^u#9x0Sql4q?n&h zF0|BD(j9~YanQw;o6S(abqB8B;>8sF_gwj|u!ZdgG9p_%De*4T@G#v~?DfEe&OI zqtZCJ^17`u0u^MGu$(i*+}zU=X)!WBzPsYBV&;-Tl*L)FdMAZAt(&SYNcTBSXX}5E zep(kO%7p4AYPE0;VP(@(W0z6grapmldYnozBNkONlD6#o3t8^JK!&zngac4eOk_1l z@8klD)zNY(e5{a0q6=4V$cS|Fg*Zhnl*nx@z?`S^p;ryRO^d zr~MQhH`oOHJj%~2lJ0ldWQ2fs73Qm89&z~4lxOg?Lp1caNJJ}#GGHiTcr*n*i@Zb* z@m|o(gBp4XU>i%3*k6q#Z5Q+3;)WeWw2gfd_p(hL)Q@P(U@OR;Sa56L15P@yIv8rW zHp2FHN?&rs`uGxx(-e-Sl`@F$2wWlNR|bEi4~u9YKLOIhIxlsK7FX@_vp^iU=2rhWP1Z{Y7&JToB*;<*u|4s=^YOgQ2n*VKxHi?a@{+QGJaR@x?Fr=~p1r ztYVteJ5Z8zX(JXhd^8fa{_q5}HzkuKqN7dODsXtw=%OtR-zD#qS~*;Zm!K3Ic?}wR zHSSTy*?{w}0VWX^O+RG0WNNh^W<(Y4Px;R<-_+_MQql+VJi}Vn)fOL(Mr{ml<(_m* zf5m)=S=zYGR_uExKhXu3aV{*TL;JFU*7Q^J#|59^&Kld(SfC=!CRbdvWw#`5Z}7XW zBpyCoz3t)*Ti2F}Q02E|ETKfWwsKj2X|Xjh@2JNQVeg_YG}ucWDkcn+~X%}gv z)Qc8Zs9qS1c>H8Cbu{yKp^i8JB1Wazlf5wTU_ml0gp%sL)=~t2W$4Z%^g-astx*TN zrRG2gE`3}E zAvu2!mo`#a#V;I!xlm)^QA(gy%F-q`o9FabSE&6KwC>Gv+iL1RAg=bI#?i6SF167~ z0GWU1w4w5ct2g)@v&ZLjm4_Nc3G!MGe&sV)JNF2tp&fC%2c?@i47SE2sW64jQ2G^` z2je`ggPc%&q|D%?p$hxwLs#x9>I&8ibltsoQXD#%ZSDU{?{?5*dq|{vBuzSL!46c) zcI5)+;@gjEw?UmZOQfqQFd^)=yQIQ>TDeJV=A(zMcSN4_KR9X87J6~jY6aSfh|S?( zoDQo!l4aa5v2Zcb{ zN4hrkOApRA!zWG!%m!NkS;I>^?_K@SUW|+frgf{%K``gK>aKn2|&KVc{OowmX$46(uFZg2X+J_7$ zg>^B+E%MgJfdz}~OsEDt7PR=E{Z(i_`sI1mq66_l^_W;BPWv9+AG}&$XF9H6BbaH1 z*OZ&u)=;ww!td6lWJT9EX=LX2)+sLOf#BWkur1_@aNlZmg;|Cd<(fB+m)H) zb)2`V+wu(3$J>$TQ6YMU8dxoZrcyM^&l(wDL(b4Hc(#v5K8~Ec*`+GLxJKNx>1?_u zvHJdm&BIRMV_3uGBdn>;Ak%!C_m}KRZ=>GgSbYfRvR@Dc;N;Rg?v79ehcHrdx&MGz z%8~7gn~-<%)$i*;E`YVWzz?oW@zkgu`%3j-mNu8{7wntx0lJmF!IH`y(w*PHw_wC)Ka=~v_ zCx=8{G+b6nS;B>5_ME|MleuUo>A`F zQq4UT)!VM#fg0&Idx%mm(sUtF$LVeEBwj{WgnBDYZu7_}ZTNO;V`IZe#gn6pnUv1@ z&5Wbl%Lk8+eqY?hXe~-UI4x6kS#W3h^{oq!+1-buGYl$1H2sGgsV_HSB~HH$2YNX6 zhHq=>?`X;>qZ>Fn8xNgwxb@YUh|H$YpLPbW*o(KTV;wz#`&zJQt9Qf}c(Q=xY{l+=pNT6s#@}2%@ z4%MJCHso^@wFb0U2+_^X_m>5cyVGrd-+zCR@6DQOc#%OTN4F>=v_)RsSh0oMzVbGo zmhP7lF6=ko?JLG1ZcABzv_xoEzOXu=2-IG24-1yS@5cdm21(1L?# zt6I*MnpF-z<~`l&IREkcb?`{4X=5*Hc;z@0!StxUTJq)n7x#m*zCadJo=VR~8``qt zpMy18^y#U$Z8S-hSEch7g7(}DvFXQ|H_}ho^GxTwa$qw15sn$anHQEPr)s< z5B~w7ffaVm>r;kugo>VUsBY_x^{6A5S*WM|{^$Ja0@<=IheQ9;IN*Z59kIe(?2X~< zlb+xY4rhsvw)C0d5vX@4A(o#c`z9s4S%Hq0MK4+Ox4YpJQNrvWtZ0d%RW9T^sQUOE zPkO>BnwqWQGA({ur@`n*@A{Jca_FDOcwR7TQHts9Aec#@WU3&ngXt5A$l!|#SaWPZ zG!q(DbZ=F&3(Bg4L6&*u*smeJ&%Ioj%djj4^LT#jxr5$zOuM1(Ec+ELgdSqTGj1#rtc*pEFP$vJl0+sfPn}oc#1h# z=W{iwM;(~yzwWOV^jTORRI_lEZ40WyOr=`(p8$T>izs41$v}n+MFjJBy+$v!$SkHfiizRaC-7Rv5XM z{Enxlu7Ck9Cum)7_ILg}6L|#*`Me$)@;rzPh(cFxxsZ?~yX+D$sSe~uVM0Qb>4KB| ztjumj^6HWIuu^PXkloypqyEG_jfj@-%o7gnOxSQ^k1M-w?z@9%k%-!)bI?F|;6LDE z)`X147X@5vP%cz|u{rGo)we!sS0i*J9Zr8nmjqQU1F|Uv)<-VVCVjd)v9+aWd>b%N zjm|DegyYc6q7C~+CE^clH*v=vhP*JJVCFdH&0Ri8x$2O0qQqIiM`oZy5}=|(?iUI& zbE@waD9DI(LGbjvreU~7FgNG#knblpeqm>yAn$~N5U7QQQAON(Cp2f#qES4+fHV!k zgHJF6UT1b^j$wHEh7QDm>c??1jMP&6Ay`B{;**->H-o-4T7>ej(CqeZH=vuC{kP?R z(>3$*?d+9A&V}bm_{|i>$UB-RHOCd;KKi#pBEg&w7Fdm9vJ;1x6LQClFivb$mkn`H zScw`jO*w`oH}`e}S1uO^uow`BM-WCXcP)h*O#b>s8ohFH*b3wx9yfP>@DJG2x82MF z@Sc$UH-K~>32mg&N|B~(&zVFU_G*;&K>xdFY!t#V1t*Jt2ZcK#QVdjitJxIis&w}| z=qK-rkujVhShejtMw6VOWDWQku0lZ1DEXyZv833a*WYvxBKBcKv`4Cy6hOuuM;2ap zKG>@!=E~@yN3p`0I!>CWR%W2}W2ip_y>Br|?-hDCEcRlP7tNZHcCDD{4=*R4rh+Za zY%B;g@8zaa&sLeAiLm3;RX*Q?O-*Cb6@4uP{=|rD6_Z4pc93s0C^AMh z2&0G*J3SrhdJzsb%p(q119tgSeZ>NnomZG$K==fe%ldWhL?TshHb`7VPrJf^b2V0U zy0#>5gd6wze@8+NIwZ6lJ`2YxkYGfRc~JTFthU-oPlpKGC+++p@QZgoXj`-uxVn$PN0&3=OW5UD-9WYizaIIsPi|HK;e z8--PU36SR&QRhx+q`+~FCC=%-)4+0wMRYC?U(RcGxW9)781@>Kri)nkeqxPX*Yh_D zc<@GM9U!N$th#XHXyxpwYX`3wC(~0mM$2C(xNgI^aSAaxmG^*9G2|d>LDX-2gBJ0U zD2E;IS^rIgAA9HtzkLXYW7ehl!k2LLtAeD&n8=tvpg6gMwL*5lx!=mzWY zXmw{$5O2wAV2Xxr?d6`j`#SuT~&zW>L`w+iziDQxC%O3482OsnYR(R+g2%>o4X9G9{ z9N#Hoc^D`K`~yCEn7*;ap-rMg-KvXZ-Qs-oH7Far$5JPh#KgSdIC&Oh4rLi?_e+29 zac%VK^!GG*W2iAW$-F!_TsnC34zr_gLmG<6<~v!W={~m~4M2qYKs;)>D3+Ne?8-K= z@?rtEFSaYd4!cS629F)!;*fc87#YVElEDes5%Gt|TpkJKX;#5x7!o8=Doo>KBH5Xq z1MXk~CFRe~f^$hx_NuN|42tM{fH6Gh#O3(+;Z;DGTE=30YK4{soDx1!XYQgPzTrC* z)1;85%AH8TwQ8%SJEf-i=|kXgB+5|g=tdLo|k z%V1F7HraMthdT|Hlnci59-5PxV$S#&vwES&_(s8Dd$X^$0(cu1JbA*br89WbUpu}6 zIG6eiBCIb`y;Jl@H)+l~ai1bOGKOSIM_%fa1hdf##iV+s{R~hdV01Jj-va zLHjcWUJ-k;W|HQdprVEk;m*pi3G;v!YdpziDTRCY-Y+H`>~yR8#X@0XzA5_XF@(`W z(*|4KL9P4>HDoW-DU{Gkn*R6iC!!mB*5f7owUZ1c!>R-|swl%tIrm~c=S`kU;AaCs zb>SXXgx6cdx39NvX=Hyxhs%5S4HUoIV|bY5bE#f#CT7h<>VfAsR`q1Dz1`9TA@OLX z!G|a0HY*2G)LlaSK~_F9qJYbGOM0~|B&=ce_d{!jP8U}{iVyfXk@VC}#7CY3^*Wjr zzNO!|-)$ra0c(Lk2(^UerzR^25;GXCq{B9N0@o-6&$0+`&SZ$Txb2kHJnNXo@-|3w zj336VSO)N)Gd!J+r+^MNR|SO$m|6N31)m%da(p8~^sm4Ru)e!>{HcJJTH>@ZE4g|! zf3pJ7ndRB#xEAKTDLTAw6@o8mFBrWiQyn+X9oOV^@MSjq3iwNow0*KYHnO^|x+n~u zc7qnbi7@*}Go#Kqnr?k)n-A6^ihL=d9193!&eq?UXrNwNMo(PZ3!v7ozBxh$UDmkGl(w{b543PNSog}0xJTEOfqMDp<^{qZ$&`FaTH311TIx9Ua8ss-=?tBVP} zD&T*F7Em(Uyf{YiFNyX{R822Ob$&hQz)d zZv-)6?<3EZh#!Otja%f_k;sP?LALr3eev$S(3{G4)`Y~Wn906_is9vZt-{eO(Q4%j zuFZJ2vBLmIr^apvUn=t*NpMg|I8>neC#I!zp5>ikwUBQUzdstQpcpW)fe#X{ie?W(mKN{{25!>5CwpV7>{sShh_HK++$az&nNYgd_ zM~o-sKc5?ZhDlsw8>R%HIw1HX%VEYC;$y9nA((H)!w@C@S7&Nnv?+i;tD>6*7sl$T z#~fOENUz_#jWCD@$bY_K$2&;%5n37B=(Q_H5_GBKvRVW14~fbxX68Q{J%n-PrLrq!g(PLMHNi|4BqeOoz z-CH`+p|dyEhxTg=2kBYoBhw5%H4EH8tZ}O-?ant<(Vo9_CEc$5<}s8=?!S;nn|L45 zu3cBTdQ1+TfiVUMVvpX2))Io{!cglyRbK zpYuPP+a)!T<(ID$L6eE?@%lvfP4CUN+0knG`XRc_+@n(K?9^-J6aC_%hF{(nr0zg* zkN&>mv&i~nWb$@>NF#EU^~O=gS-bc2*dJ}PIrg7&)=rmN2j%Z&Z<^nWc)a+WacSkx z*e>!LC{16k>Zx|G^Q`hu)H=0+y|jy&C9Q5yJNJU9lQgTj2!fn=ejDx-%7C#tGqg&DLYc?5a zn9L0fb4^h!K8@@7_#Tm7yM0g}%SaqlfW0n3-lgD=0uj8Q1^eBVGYRLu|A~{%6n>U& zT8GLQml0R%dphNFVu1%F+DB9o{9#-!-}ZkoV%fTKzq+=4dS*N%DDg(i-13~25U{Y_ zUMYQJ((F@tIUz~(d(1aZ#fWt+KX5Rtba=)1=L7Y;CMDFtYpgkFc8#kQ$q>DH=|LJ?=~+JVaHR8ZTODlP6pp5;A* zBU{9k1;s=tkfD{W>29>*!d-8+b%k71AN;@D?>6nndz;(H@Y8#i)Jfvv9P@+QH}5t% zNJzl?546M1SV_d#--zsBeH`}+JS4ERlO82M4nChcvP~E|W!*Zk`|bTv52mGV)h%&$ zrxJWi6WjPTc*`OtwCkWae>gAjerN=0f~^rn3yP|cglD4Ft`k*JgIO!W0{)j8_c+N zg7iexzfs2OtCN8W(2*xauS~H_?Qpysznb@h_Q@@(9@^f%La(nOrA?Z#3mOCjtlD9H zB5Dp?CL21)FI$Z;G4>IiH^S`tnhJ-{Zx`b9`-h>ay_8Wb-@DnI=0VnF4z`N6^h9Um zAe1H6A0_4{DL#rXh6t_dlHmVaOmx3p)UcnIHvHSV4*e~>p;)GF=B*f~xdWW>gxX$b zRvhU8lzr{*6*6rAIQ>BVc|p(IZGSoZ$h@K!>B=tOjUFO=X!c=Z!OAFBnGzd%^o8=A zdOIDqPKhATe<&eAGdBn`^U`Uqa2L^_UF}=W;5Gz_e3+@e6H4;HB7C4(h`4n4v+u4S zr0&Oro;E?I;46FRt8@b2KOo_M(+*B3s~!k1OUWt?rzXZ^nV)NHhwaQKH>t$}4v@ha zMk}C030$W+>GSVGvZhSSE*2Vw+iUy6qEV|0x-+rH+%8Kd|2ZtsnjlD_!E!u}cz~FS0Oa z`a)=wg`)Q&GGM7LgB@5F9ip#J>h(~im_F#pbD&C9K_W7F#dHB{F13Om5l>9>Q$u_q z+(mQrs8xYID{n|&->S9q%&%v`9ZqVLna$#IY@YtDeG&Jh26@ez5wLK@UpYNBOCBb; zcRx>0ol0EzpO#zF2~trGXBx!Zs6FbT=5q$^kE26DqDL8tB1*U|?a;OF`Qgdp;xGwt zQo$b2oZK!NBeEo*!);TF`YSKR)U~j{+guInC}k0nR|GoXejNY7ql2I#C-uIX$+ge= z4nk?)Pkv+y?{bE$=WKb@5^Q*MmVLJawQYyI9eW~PO!8GEz7b5%X&w^-ISP3AG-}}t zW{99BAU5lpQ(Ckp7bijG5{;*ODDmO+ewsD7?2x~MNyavsY6633G;y=+$hy)G%7HT= zV$59ifdFyI>i>k8+1c?-BVb}ZpmE|Uyk2}LV{f~`e=anVAfs~Y%GGxEqX?~9b%#tq z^tCMr)hg78iA*;x?Mj%$KjzeBP9(?Vgjjg7=&^)ivhFk+oa*fZQ-Tc}f5ZiyyGl6t zQ*gmNt?{6Gzd=N^jHfH6?Qg`J!j6NdZb>s&BBV~JxLGmb^g==3%Fma{OIcS72Zy(P zM*{M$_7wro=VNL0u3lLgung7{V2f@)t=SdSYqi(Lo)%#5)TA zpFhv9hUq&9&58wh1nw7*#VbRA6Dq$uy*Sm}aG^u_iYZW}1SgmHnDX`~=+#cpQn|Yf zT~~-!b4jK7fE-g^?OZx)&{*H>W-G*H2ijI)d5cF-9ND`7md5w=u8vcdz=a_lx()_^ zbyqB+*im1j4Jabu|C>6;gns-F5JZ(7NkFm4WyRp!(;g~OqG+#NjKOjj$N2v4z<;U^ z)!<}?_?UAf@3XNWGX^&SqA1AIF=HzOlIvvew<&t^>IgG4NK8ylukV5BEhgI(V|^W8 z@WKSiMPW6&rGG{E$m^l_rTofl+}r-Mfp<4ZGzqlEevo5)K#+-3L_Kj86fq=_YW zAg7;C2$$W(5e9B-27jC)h^nj)U&n;z4?TgtgA z@=YJLgbQ(s6S8$4;ZF43_}`MNdxAda?vKkwH!^dEFlxP4uuK}Nn&{U5-b6VkweRg5 zk_%CR&W~m@dkj|9BSc>UTOVb}V%xnWWLeCz= ze7!*gxsnAqUCFws3W4)rVvGvw;vXvvMwle}YiB6=NXi5P$j6Kf*T9TP;;jq`H_%w| z!63CG07Zh<4{w%N0}>Y$_N#Q(vff|Q-;dIIZI)9!65?NOxg?8CNyaCN6xZ8zf-&gl z^#b90Bq6xdJGN^Al1n>`qKf0^vkuC#q1?4GYdfMdNjD@+*AB!T^mLHkJ#Q@mzm`17 zm7!djtE)~rq+;0NND@3D!d3iIkM7QXx7Ad|6k^0}m=9YO!!E>iBn~e90iRr%VM$Y; zt{-FYflI@axl5CyFA=SY1RsSVEJwA9O#@kjob`}3{*eRRSrQi>V%p>w&s-$|r$XCU z-pQWMM5q8l6v-umb_H)V3rH#@!Rd5ANLZqJW#=M2V~kf>R=%3*%m zFjxt8zWJ;aF_QDidky!MPnO9Yh_aW-ZgY;+O@6M1ubc&{2_{I!IcyB zQ*a*SWkBmVo_wEw&yb08fsOSsyYqG_dxCEto7x#n6c`R?esV$|wKAN@4pObt1>6ef zd_orBoSNmYq4Dk?IiV6UYqucUmw19ToGbqmg`<8cjU4-^nbp&~7F^itg2XldGV#GP zOk!pN`MK3I0^K-z(6)OkL&cK>-`);N%q@70iq`$N29!cTCn=K&%PgvBKp&8io~eZ- zx&bb18DRxpPr252NuziZ?C~TaXu%%}X7GGZZSd+7qd=egHOT7rgjOL%+eY7>EltVp z+Qt*G&byU^+P`M@81*#m`6tIY+7Iq?Xi0}XXys;YK@_7u5<5rt;T%@og1sNIJfDUs z+|`cM{vE5-3mmHM6&#l{pbX*+*BmWov(hvRwy}{v^h8tmR(<%jyQ80k+I~*BXP)_E z^JenHPhoRcd|BeyY~&hZj!T&SWHTrJAK+CNR5#SV zxIrC!>-j<7&As@Pgyd?Ie;KdrR-?=oOSYf+Os$NZ%iaz=}?d{acn$8HVV;;}z|Ef&gWrbs)nsB)0`n$iYWy0pMi zP4wgCrigsMG`uQuP%}P3N z$-{ld1^cJ}0B*6`Prplk_m@o2BKQolM->#(=0}JN{p#->yk*v~S|(WsYhD`M^A(=- zv&#Pf;hxO8z{Ai!w@vXio%_n~RF5<;R~-UefpdJi%;}kXXxZEj|Euxh!4VjFYaZ9@^cYNkS9N8a`7gJd7I1f(y1hNf`DX+P8XFYgRXiux`K6H!S2^EX1 z*}YP=yw~xL#fmV`p>|WRA+`S9y$%WQPkb&X2Q@2u)bwhzF6Pal&rEpKO^g2cz!-Qx zy`**a`;!Cl&niEphEL4YobtMugK$?cx~nJ7W+C*{Z<)h7GVaM0+C|mG|I{DNK>a6Xsj)-sL~zDa&Iot1y{1Ksps#K&$gq(T)#5Z?d%Co0weMKg%9s z880{D>36cTFH+f%m1i1wkQDe|SGA{wx#`)a%I6UXTHl;Dr+eE;;VvyzPaC^WQgvqu zIiAXApVi)9+p}NoUwKxLDd2yXk{VFPEjrgx?sL=fT=l~o>do7s`p;w;{9z^|jJ_+c zl=mV;sjExenGd|BN}b-MzF=k#{D>`W?<;fzxue`?!ne_}IXpWnPY0gWjkKuFy>PRL zzI9WAC%l5Mw;(D-ID!p{$t1S>F8_0yN*$?`rJ>~ z>rQzu3?*V;-YtDTy=nI@E2;Hc6UT@hg4%3{egr$MoF-d8 zIPIYhe0IuDZ8u9CE25e086L+*f|NsoWh6x7^emcZN%Z_kZYFKnDu;`%?d$C3R;*X5 zIq;(||0~h;JNW|l z_e_MiE@;a=OGZ zo*w?FFerI`Y*IseZYDNDkXn@P>|N34@8MZ_p`k%hvn!xZ#isC4`o-S2xtA9Zf0G%f z?vgc6cSTZfw?+N>oftWxQc0b>UL7~M_e3$T280-2eU0M@exMtb0<+o{4)om&+>1WW z|KzEy-;jky1T}vtEwJ}^l@(U=D+vAN@af~4_d&;N={LQGY?dseu5Uea9r?hjpCovw za{NXM_A5-1S{$zhr(HZ%+bY;ODsbqESDgNBSj>6`^(aziw(KUK>t4A$hwO8-&Z)0~ zb%lO2X1h8DaA}gPmSwLv!sO6wTJbAC5{!h`&h`-%$X<9O_S`a^O`aP5#TC5Hnbb17S()!8?pk_h0sPKr}hg;J3236~1~dV8)6I)sKtdltyJ+u76{U zwYM_z6XNG|_89(WFzXmRyYJXo#m%jgr=t}{Al-Uh8NWifnhXXnf$o~ki=@}VU2&$ZJz+>LdwP*CUqSx z0{S<)&HD!RhID&^=`syz`WD+w+%(J>zlO=?cGQf!2Ofh8Hy?iRBo*u>~XUxZ^~Y-aN2PgO-SEMDX7& zcPFomyeFjs%*3T;X z$!l`i?hLwf$?zq8MIIP?@QS?z*kZo3XT45}0aDw4WA(K&fa`gzNC`@j?_~X~yRp?D z%^(U49AXS>Ibet;>63ZO9M?Y@_{NFmM-6NI!Af4}P_G%oAB~jA=UsCV1yPuUI+oFW zq^5z$QlJdIQyfR5YpVgyj&Bol_L@yImwJL0qIHTDw0-CWWH#wCpwB4;U+DonAf?OZ z@*uTFo-(DTk71|ipFdrk?}WSM(%VR*`NVHvKdQw5x3m|IBy}5tgAG8_L;u13#y)0v zigtynGm1%fcS;Sky5EVFz>N6Q|DHg+Jku+0xUf$zQweacr6jKHDKDLYwqK};=G%qk z76o^hDv<1U01_VHj_L(H3gOykt$Qb5AM(bmtugq9KJek)N+f(!I1B|kqi?#EfNR}| zJt(0A-!+peQ3nZp>`}WfX{f;Yolv9ojs6)TV&&CkWs+V%{aNE z?4B*>mC}c-eU5`{I)kN<&^<H!IoAI@>@cF1Jjh~XzmSS{>psdN(n z!UY{Ra_%1>m+cu*H$gf212vG0tkUy0ilfbmNg7f*51-Kbjp7Del}>E5oBQ4bSpM87 zk$i)w5@)=%4F6G~@F7`{sW>|wMpzsPcYMLlSym;E=_yH7e;p?-Ksm04z>}nh-f~$_?6Zk)?K4 z=9<@EMbMgcfIq#iFEh*BTsYw{Yjxbm$gffl)*ydy%C^lDFE+@tHDt2DsT~hF&-bVwMP7H%MImBm-s2PmQ=P&7bz1~?pY=kQsXM?u z|AFGN*;|`hQU8JZj}?~17KLwJ!!F9zp3*-M=USkBe)})3F}uacK?&f!sx%1sz; z(2mtdF|s|oTMEY>jM1HD$ap7i@(@ZR4#VyGN{J?>q|e=JOrW>NWoATaQnuZ8tw#Gw z?mh>u8*PT7iTB;&KJ@2EVyL1%@Le8dO^jfwSye@rOtKIoiSe!QnE!4zunC%_=g;B!%v|wQF%eKF0e3{ z%&yeq+es`w%n{O=f`iB5#p26Z1)a#u;3B^HE9H2nWws>^>6W3X4f@0Jw_Se>bb4lJ zUz-FZB`ka^$U!bHe5N&v%jzCdK(^K9}>dq!A zR4s#>$4cf1X>5`&w|!`4JBP_o&a#>Rib~tGw@FdjdQ<6JqSW=;dBlCW!MXEE&?nDb z2MD#dFPj>iSD1+zznh2)=iA!}4}S!s`#>=9lsNbWz>|O&Z)lI!+r;6XNZBT%KRm1| zRb$`%)fHw&;bJnDL(}d}=iEo*)5`Jet<_1L{RyBlyBgO?yYfIe56M6Ws=itA41}-z z8*b4jPx0B8eFX^fGj3fi(^#84Q^gr6VbFcG<;^%jfhiwqiju{JmuDsSKeXfp9Ly+X z_>AwT#)1^7@W1!ev@TDui8CUI7%A0%T`41fq^bFH#)j}v%+SB*`z~TP>xoM~Qb(RP z9rEvpAXuA)M_d}V3h*-_-`|wrA?ODQ*H-sEYtGoW@5~kvn@2v6icQhQTMc8uuUGx9 zO$Eu#N4*-9uzgS*EKDS87&SgKi7Usx>bKDE!LK7upfpFwAa%lYc=YABG9Ce=H_UY~ z|A_+8E=%_kQWoz)>z}7$78n;v*I0ihyDBDp-hcPEN%$EASad)G;%PcjrrrXj*sq= z%_aeScr#84oszg#2d-jNR%NynzPerlt0;5%wC5)+XY)c?a< z93Mp4!!}G+J|`$aqec8rZU8E6(?QrS?sB4{HMyi^!rl+pBpQ&NtW!& zqkydpR83HnMW}=ocqju20hmrd(cX6!K?GA>cI1(2-ps!$6gl*sdf)o{wwmTU924y3 z_=9zt8?v5?69o~{lRmg5O~DJR&*_LipQ-&}xIzs2bYp#(ONz#15z$bW z9Fh1T%4OTCj`=?j_Rl4Yx~Zz`5Rp`XUOXlc-Lcsf3dV0YL%{}S`e?E?!DJ3HtgT7@ zQYAw*VLLkK5_s%oxz`qlrro&NMC|k|x3_wTVhnYczFEvu+deRwvnc9$nkIS&amOI- zv&@(Xj=(_J91OSX9(yFV$}_Sgo(m<&?3ahn(f|7ogaq3C&jHsx@#yE1eY`@00__3U zU+WLMzGR$@W{sBkwVs(+e(br+B8EdSGqActb4p{s zBR%gdVQ=R!8ij^Inkbqt{l@z;1P+kM;RPn6*IP=dqG{|jM5zX(5OnU=-a6JUy zapBhCWHM#4c5Vq zKx(1Ad`sFrP1ywKj|Hahy}9S-+u!~;{dL`x7U#dzuNj}{Usw{?s)}c(`3Me^IUoUiLzZt!AN@W31r#yY{Pr zriH&xp%|*JtCsog82KjDHNXTb8EOpU5JfG$S)h2)M?7Oj$#%5C1XnoPctzl(?IEl>)8e{$I!m5mT-NAwr0d!$VC2))6pf+!bf`h=GmNCwe(Sk&liIl4ltTB0 za@efyz|&?;^-PI7>?}$CQ}wJ7)lMMz&-k5q5JgAi1EfaOGr#;Z)ncXDMXJ?Q*0J~e zFpj<0Ymq*5@|FC3nhU{I<(3(a9|s3&ShO_QyKpIASgAO0lq+|MPW3eL3s?FC?KjNU zJk*sB{qj$wlh-yHigf(&_dN{Coa|oW(5jP0!`f+|r<=5mTq5!_X?J1V?X*YN-C1Da zU?5tDCK^SwsS#B_Nxpwd^kwbzJ!-!6_kNQ-1-(?;lI@JO(PDmZ*S{UrSLl^mKI+Ws zOPc(vFSlm>V7#E0s2I)W*88jwN(>l~s)kl*DS35x_IFYS-c3GM)dM>=HiWBua4gEB z3pX&x-XKiGRSfsLb6tGhuV?S;Sb{d%C{FQx)H~VKLwjrQ`h)B7^ugw|5#A5_@3M?8 zJ!ikn;CxrT(|j9^zcvf8rBnxX%Z1Tjoej*Md4hA?H;3lx>Ygv22@NU}QN#DaP2j;p zN2LWUb$m?F*TMwh0N1ZUoZbv=og4%^wUM=qmd5-HQFO5nt895krn&-wHR8&*tC>L) z&mIVYb2hzo!a$L|1hTF5oOV}3@=lK-2XD-FrG~5^0cXbrVqQgOI*|A8wm4LV`cTDs z25z*RrP04NzeZnco369^*kE9pP`4?-v0on}pbcbSYaH!5t-9oBd z$cDmhH;dpd8yAk|Ic)04b~_0ehjdq8tgPJ zA@R@r`~rtdP)t0}^Mb^L{&iRFLNw;tW;x(caM+25=CsZIcbnue>)_jZ9aG_Ck@{kO z^^et=tMSJ1*>tt37H;k^ZfDN@FMu-#6poM=`_8C*#AL4tcW=|{REmEgOvuZqx~gG! z=46ik`=aAlf3%dIcgVk~CeNT#QudXRy;<*GZMr*LRAd(v*Z35^M1MXrCgPS%MN9zZ?Zu&~D_eF2@1X!JyVq9&H@F2_wD zAVQ-QH4lATLKI#`3~PtQZq>ER0sp+(`>#PN`EdJ3o8L|6XC~Zv-0VZx=PTIGKae`; zzxC;ICm|peBM4)986_|N>WuopilCDpqgm7 zh{|D%D>KZ$;()yLK>ID?k-mo1QJ!j29gvdBk7L!Mx5FT}mkoSR7@9ilgGwkz0^ILZ zr`{)x_Zc7u_bxF`?0YR*=zo`+021#W*F!e}e7i#6DBft=KEv#)V!v`D6j}N2K9Oa# zo&*?SG%oi;O#*3BxT47CS~$aTe3`*;(1NIcAU*eK%F;auhoPdhCfR8`X<_cn0M0vMjA+#vyRSUZ9 zP9Hr0RBUqeFF+C52)0KOg&mWo8R~xBJnY0BLOnXP#NjJ3X1gypNGB*Ta!P5!UWfEU zYk+T%(his)9W7oJZ7Q%-4Y zZ7Y+@GBCZnC)hy=zHTT!3OY>-Xxj2epA{xCozuaasFsu$diZE;3|noj0n?dr`>?Nk{JGU20`qa zQ<3F^sNrKn`PZtEt8i*Iy6%(%cNlo{ zLmL}XG_37efTwZo`|eA(P1brM5Fb3M9#GdGy2E zZo#EnZ|jrSvzy1Y7U^3gW$ExieuoP;bBmhqpG?v-_l8m%f%)lNi1!l@vo9`#$_7_M z4;MIV3VH>dKg5QIxD>}5dMJGK#R-=clUc{Mf<*C+hnm?#sltgGr1k7>lzYV3ziE9N z&i*Aa7Z{3gA>1N|>;ZI(GXl$YY7XbJll9l*vA$GYT$u_I7e%j0-yg3K654?bzQHUB#0T>KWN?n14f(rqO#ql8tRw)Uz_O31OspeWP2zd4Q+1+k{4<))Znp~a7=+b`m2Jj z!SfXfO6=>5Iygp*nA~ge=Y=<)pBgj(S@Ed^A;87cdQy)6YGM1xeZNL z_jc}9aL>$IFM9dTgG^llP%nW#Ha*Sp96#1w3MO&;p9f9Mj|R8(~f9#G_G zQXnQ`bx)RkoS?HKCfNeKh#4Afi7faRyzANMtCFio&vR>UX|?wE*><4bu$>Y{X7~O00DhCkZPZji z#K#-Y3J2Lnl&|^V1T;GRf6bNF$K~ zXdKLbA>Jz^{|ySy$@}wri91c4HqJ%}WlnEVthsGbh<3g0#q+#`7b8{c`(a1YklRc3 zJMG%3qqzJ(#zqE)5$DFM@2lTQw+|cWEl5of#^ygkJerFC87k93PSu+(=Hx!-HQ5og zULLXpuI-F>n|DS4J|Sx+Q4bpfOtu{K)Rn~^JW9+~_!n}J^FDXI9{KmgaDDT%??2F2 zQ;sno6{$cK{9=2j0eYiJ=)Rx901E2K!;L1ILjM35H*7RlBvAVvEhWx2^fsjhdH&OP^zhd`9 z;O&Ls*Ffw$UyS#~60oO;S*LONO8o4pdS0=edkrYO#|uuJC5K>9@~3J9`Vx)q@?S-B z?P}n!7-a#Ul=!b0wekbyb{to6(V*{w~(8T-+uyDAzsDHhWx2IUx$VjSct2 z?1sO7u2)9)zohv5mVwC$Z{sd7EwRWk{;1sc$H)!O-L`^LlDfJhyn=_v%TM*GNk_+T zuO)kmcM?_*7WxgGnNoG>zQmlD@^^MYEOW=7+L52KP~`ocsy3@qkd2N2^M28(QjSKq zUi~WuR8!_$7jkxub?&cr-}-|PUK6D$Wr>1Y-JIeVFBZ?1PQB@VNM36C!L+y!Uo!h! zlTC~T3u>H;kSa$mMC5G>38gI36i{pR!CpulDPPVOT_z)~V^T4{S6=S>ht`<0H3M|-xzUyU>pNIN}KHkEce$1VGh zq-;D}vjzES7iNp>%UXjt?nHwig+V6wb?p#)P7E)3gzoE^JOxE0dCbviVzNhhNzBIx zjo^a^<}IwDgBuPwcOK}sed^i>#qiGO7-^k%f~M%0zB+*mFc)u@ zuyZ$fX4BdU6-o?aUYUFSq^xw)L*U$Hsfjt#pE|SPdWTn@*&jK(wby$Za|K?8l3U2a@)8G25sC_1V!e#y9vg)C#j7zn*SBU$R%a5o}F{Nuko@k#Z z!2T$@!H<`x-Me5}J~c2)6#JLGett=j*V&zsmcpEPrG}+htigj(5?uU>B&kL0qPyr1 zj`(4Ghp8fx60y)*wd}iD7(Y-Iep?aHm>6&-%cy`{H8hchbJn#tCOmNdlN(e~J(Bk~ z`fX2DTD$+9xnIl{ZNHi#AaS%Qvd8kG$WnI~213ODnk@8mQYACO+&#%BOC7iqn>6ap z^&p+8Pv+bX1_qjLJC&D5ub%RlnDmpUv6EW>m0^8A&wpi77Ugv?%= zV5h-!oiCKH_?9%fXUz16KEUE+ScGrMLZ_Q2({1f{8cTyCVl9c;LuL{@jjwynmh@z2 zq%^<-li#0KF7!`=*_@eQqTUJcHl&T|%m3b2`K2bYV!IE-WA)#=%Ea#iwpw2YZbobc()WqyBz6$DvlJBgM^gl9NfAOQ*1om;3R}TY7U@=~{uXsf+Q($US!Oj|eI@VhSr7bs zDNnI#5-Q&_H-IEcsbKD1*QeM8v%1$|oJo@gsG>;e6?=BkoPzQDQr|DwvoAcKClmK$ z_hR)xQ0FR=Lk>CQT@U05<_+<)SCnrh)Dkv4T)fkHl9@MN&x%Z|5Pdwx%l7-`s0@gs z>KMiNn#4G}L^NXmsMuDEpei8DU3TN1_S0AyrrzMd{)3rFsc`e^+Mjq4nf_gG z0uK)sx*DDrWaZ~9F9L5c=KPjnygGuLKWh~wv z2)=gWjp{iL)19YHBl!3$RAEZPtT5;m79ZW`Qz8NseN!H?K?OT6qerwVk?sAxzjsHr zY?l2s)>0?62f4=@AWQLm65AS_@$GMcOYiZi{5hnt-KS{dk^m#xH5dXwf`wzwuEwK5spbbSH(=KGg_|VkA zrNKz4-+}HWrywb)pY#@G#vl)ro=3BPp0)kz&5-VI`!ULU(157XK1+2hN{L(doK2n} z2w00p_H}1Jbhbif_ny?wCXh#|Y(@7@e!iXj+|G?6 zF{-Vd3-aHh+|+mgUwP+yAW_qp^ly2PowQ_-&RRU7gzh2Pme71XFGsYKx(RxDkw<+E z=XL|U12eHooeCySwJ`7&A2&n9!+u&Q%t(=MB2OPm@?L)(DI0Akq>t)VEsNc3LkeV^ z=c7iirUE0sK?yN@O&ydtN7c(eDak!|#Orvy6yXW#lHzIN8_FR&6e5z7cxBbOX+rx&H%^XkX1{ z`SuiGUVa^-kS95iSoy759`v21F5a9sel5~HPBhsRh0I5+#($U6459VAQ*1*v#pKVb z7cyn_mwFZ-_@D$U`)^Gy{EWVA`hMW>;Lv+=qJ;|Wo|mtfzpB8u5k2NnHcqkC4u9>L zv>MNx#oZkud9aX8k1Q-6$a?wH#E;XU24z{x|LmB>l~bqb)rPfN@wgiU6Y<+5S$3`# z6A_v@Cr1^*96@c{f9<0nY4t#hR;%UmYWyUjOshu;bxlM3E^WYj~jfHyjK47{|Ew;^9IH)oPMPsLKio^7vQ6Q|$KbDn*8c16gw= zp_HDH9Sz$%%S(7(<4`j&L&&TJa_ewFBILBe&%;hijVQI#s(IE}MarQvGu`=f4S@H* zW-7nI0IfkLMu1uRK2?T4NCx>^IA`&;3B#L13UlgeZ*J=IOMQWW^nUtK0pAAyuwuMe zj%|D%2oU7MUty;y_t(Mg_Q)9h8(x`b|7tL5)2ae*U2R^~6{~u!db7qohjjX3hdud* z+9GHeLRX-L=3|J!z(7wd)DVl)Wm)y*DQz$K3m71T+jWty%XwRDKxpk|9QCyNc~#J! z1Lk(EF>g4`@kO!DUCahPcG+)yG8b+^!!8zPtDA!|y6SSwxz}3_rL-uz6cP$J6f3vvZ84(MTxQ0pHJ)E3+__V0J$S+W>W&RTWh3BZk zxv;&hy)Dryip1~nFi)){BNrRtC#z5p$HLY%hVuLa-n$K2Pv&KhxEmi9}zrVpTiqdXe=J%ygHoW&hf^T~}zuNgZPDnC=fYUuxkt_QyNm$%##@MHz%$L&Sym5+E zRWkJ@BXrbK{0D*$*e^;_Qhq+c`^}q_lLrt`!ew?FCf*NntH<32`SAF5Q?+-o3s3>!O#0EUw76y#cny!RqkExYV zTgp3a^)xb43l!98;_trNct$dUjwFMZ@11A69J@l7zh;^LbWon)+HEylg&rDdy51E0w@vjDee4*lNf#8sM<*E+wmtrij z(3aiFy9{5LYy1apcub((NzhwIx5lw%ILEifAtoIfT$V*C+>vSP>t1hD{oNE8TShs%kdkL{krG+4yQg%Dy@_Rkw?E; z{{#7ur{xVvp$zoQ8WsQu)13PBa+sAghArLe@RGo&+R8QdHZDKzB~KIOe;^sNm2sIS z#hZn-5GLdQE7u_oUn}R&HSTkzl%1dF5FYxk_h!h~w?rz-o>hFCdF8jf5vS(v3()yp z;e%V7E?t}M_9wqd{CrLP7*t%Pr^0aupM8oGI`GM~&UWLz&cQN(uRLCr-naJ!eX`*# zUXSF;O-?euz(p0q>sud9psX61&fMmhe&L> z2H+EMg!bsuszyocnW9<2ODCVcYn}Jq<|~)LHw54GtHW6>n?2TyGLyy>sqg7?;NUAy z8`dECr-H>l-!=M{0NKL6Msbiy5f8p)*i~Sb4Fs8FSQ1ISa`T#n?`K=+WXb|QMTb9C zR~?GPKpX0AW>kQkxtrXDtKBC6kVd&gaCTnh!Be86J6ERqH|xjAa$8DHMP8O=7EQY6 z&(qwO|8z%vBEUJ2D&7MB-$tK68(sYSAcy!jQllF}YHx@kFG9x~&TgZ~3O!j{Bj2S7 zHuT5Vjz6|KYq4O=OibXu&4e`M9G&!vv!hJ2Y8B6}#nNRx+#_1~aX4%4)t(g}o87%` zxAOgVQS#xF-4_ck9Jb8F2)Z6@utO?E+cNnH?fgDpedjsK2>Sq_d*g?uT`3?}T3x?# z0&Itv{_7sgIgAQ(r6W{s+xgk1p^cea;@3=z+eF% z7^AVwhJ_sX18hX>Hgo=vC-?NGmHB5`<7?5T`449MwFB9n-{HbL@H519W?>a0&<_Mg4Dt~jvZLOUxj%;PlQ=eOHx>&N6 zoS6b^7a6ss12Rw8p4#ILavm#Jj^tqsm)2WGD|V?p`bo6*`xACf{6^8e++3V=7w#~I{{pY{QC9sF<W#Ef< z9VQiL=L9N?B@HFVV|p1qO4mIs<<BvXk+W7VK6k7o9D!CKN zHy!Z}A}W0Adq6Ov`*Nnqk4S_sPTf?n_--hTHf>o7RJfWMCB#Z;Djqk zPA|4hX#ZQfLiuC~kBMj|ls;Wulo83?n(@=MpO*4Pc(CXM&83UUll zJHz5Vn148BGa$k(bxG}h)CqU9tr)BSUc|U!i!qgl&>SKTFe{o8*mE_;S%*Y|lr(r# z8E?tBo*B2s1`Ew0J?w`W1W45t0qFr&gsTKZiZe8FxnT=v$mO10S$%I=#ZpD%pR5Rk z%kFFc{K!uWvSRTOzbN{Qkit2f+nc2V5yi&FZtCobV>|2#?-4$;VJUlfoPP);KN%>4 zl4n8R+`xP+-jLVsvbaMJ))36id#K#+aSA>tn7abZmv2I#hiU&HpMw&^iAO}AOK8PD z?hKEw@_frbv6@S{PKQ{W!)n?vwC=SWU+$JmMs)7bn7w_~VF z4po@$hAo_xbB)Hna+9#dyoBLX_GZgmU*r<|&{`UaySNpYhrt=YJ#g`L>1M}gR+5&` z$+cpalmow7KYa795bJt!!RVb!+&4n?`JskF&tA@<+A3RFIgqAqrs|Ek)0yZreIFZu z^EZ;8_0f;PlYDxyOTczAlri?sZ3XI^kwDE6C4CqWJdy=(>I!g>dyLz-^0;p{QHzuJy2(oYmTj%P zOqmp+a(2tXhtnzQ^2RJXzX^{*<`Vx#^AJ7syZy*pQT9GkiYy@Wo*?8U0OBIud@+=1 zS9|C}d!%Hy#7Wa;4*h{18~ojrlzov%%t0-c?b*=@n|1)vtzE2ZdtY*M+-l275HEFU3#)ae1>mTI^xclZu_U zqHhV$mZmblgj6{MB!u%@;lJyS!#p|c8M-RF_MKn0DaeRCs_DZQ zkeXEy!hiRbaQD+Ev4^=7{RtqV#Q6+8+_^F{@KGZU5#9A|;KNAxFrMX3oEsh4T9-OD zj>%+Sl^#Q1SvT?SJtlWE{sSoT1Njmm%~{a1 ztvUpECKQ&_cPw+)f9~NXC_KdZAvyGc#aytXEkMt%o;->{-u3fs9pi0YMY~sIwjC^Q zjaHf^b=xc-Y9;NeErMK##I`!~roAdTWou&;kvk0ypP%GDaJ8b4BXwNlagTf`Fa-jF zR)2$8&lWJkzJug6^v+n?pr@$HB}KDW=Ywf9GE}vR#KYcqZ&yrE-Rwu{g8}Y(!iP|J z{=k!y`4bshw1_c9qW;@bzf>;} zU);NLs_#;BHAW6pec_v?cs7TzaQECIsil6aH-^C&*M_2 zhJ2IT@g{uFlMiz|*Ru6SM_;eOdzc0UGNdlWVXDx}1IDU3pLcY9R(K$0y zZt;Qrz`Zio*)Qk4On6yk&pV3)U7engqaayq8O!B-LdNJRNgK%(-E-aBs6oGR4Us167LH(r#8P9W;M%~C;nX0!CY0WA4R)R;Af;^; z{kj_~{g;aBNyEf1=7c1doiEPs{T`N)>DR_d*oq9Tg-k>1BjE@+v~7U_tM1Z$*H%fA z<%TuhqsXi^9HQi1b1#wPe(eK3yZA=y9%uA6D*66}JXcFMwgLIM>j}i^*r~L^EGmQa z6Ezv>(?3mu?=_60Yh}|nYXDAL zkQ}H7Y}LkbJurPYQvCL$_Wfq)L9hfg`!6^rRgB@wU~tcEfZm?d?ZR=ImAOI+Vv=;t zxNs{RSl&J?>qn*DN2(xIzwfZ++cEgSzzxPijg=VI|_Ud@y zdD??ez2sPPvhu@YHL|-9<2&6yx;~=2&3(;QyO5JOAwV-$L_6rVDzTSaOt_i|&sqT^ z3qXX&@x=!k7Zuwl-0af%H!^c2uNk>hp}+95-Op;6!o-=rd)$U5R$@j)J}1F-`s&kU zTC}exRgZ@_cNw?6VsVZAs|k2uU;!?Da`((TJbm9(B%$jw%#yWa20dG!7~@%Pq;tpB zW?TIG5&POi%pNciDRn-?sG$|_EfXS@6hqFb|=GhvU( zAWmU`3B;JK(P6%%kUBNsO3%wZyeCy5ZYlWjm$ae6HdzE-E=YGEzmfEX%4N^?2}$T! z|9>F2y(-=P0ZoR)iHhcEJ1sK0tn%zk%DC0T-KuzKJ?}zqrM3z>c;gWrx_D4xh0@f} zUSZo1uD_3DN;;7E-lJz%nKCk%XJ!8^;YeQ0Qs!rrV2GPIUAOC0pk8;Qro8W+a*)n~ zNI}z`4lVFYS^RNqV^kyF#~tu4_B?4npIGtG=Lc`y3fj#2ep#bMEL8gNUQKKnRNo!Sb^` zR29H5=gO`EW;*Wa5P~2(bR}}H|5mZ*6ci+gylCx;b`6rS`Wy5SAiE58>iDnW`_ zWFa^FE82Lb(uo*}-9h|F;UEgmwfG_(zy~$9{)YJmsV47#B-EXX6+;uC&Jo2?oh+;S zK242=dofZPoZo~M+p_V0jkHa>ZiyxtNyWadP^x9yF88870j@kC!l4Q~1+4|BkrW}) zM*G>1QD)&H-#vSBsPf)a+v`f~MLo9@A^Cao%>1i88`nxH2fiLVCnz&B-QmGO6GYA? z{M@N24Ug4V0c1tbJwdFURd9dAxR;6gVCqmRvp9mOaoNsH67=xfUu5*D!bOwcsbTQ$ zD}!Eo0$9*e+CYZcci}^6<%^i|<7eCM1S=M1!%5;=ueC--P&*)R)*scoo$t|rESP`} zt%ibMCA8elR|(TM&K7Nl*&&!1~NUA}M=) zVA{iKzx#TX7fJtt1~R&$g_~UrH%;+**_(g7A#F=1wq?iP`+XlBA{8k+MbgC-<>Yn;fe&hl4zOpP%JN4#Rk4#8$KeM7J^c{&^tvrMY^IAy%IwYqJHIAy9}2Z)^4x51Wr`onS#~&7Mq<+{ z?td~#zA=LPUoySbR}rWGoMTxX?V)g_H^!0~N`*EXGy~#B*1K~SN3T}VFSl~OX7iv5 zPkSD*_x-;Lee>mJO8d&zijpp%6`0d)4o}~YZTPs z|E{}N_jwq_Ee3LmAZL_9`6iPUK>l~}p7!E>*tKXBQ!n#5l+5w6=8_=L#}6;R zh6fihmTly|@8uF44K*P>dX$5(S{2Z}E z=2r_(R3FO`C;9(jo|xu%QsC6X?_M7s(mmDX;>v*i+bEF(EX8afkzneack>sODylW; znyoAe@(2HPX@v|`Q`6k!%7&Tq{VCpSMm*{i2eRHPsw~u$;cvA!Co$AHSLWzncdFo} z$v&FSS5GvyjNPfMm(4Z+hQZE`~Q4}PFIvs%H5nXHQWKVX>X$`CJ5I+d9ms1duV zc1K%o9s({xA#sK-N2U0h7B_n_W^ah7^m3s@AzykO<70vQHdv=kX z($3}_&F0Qc4qYAXZ1UacW5qkhkdlT*kb(UXM9S45~%wlW2SpO zSw5%OfVV;*<7lvY+m!<<2q@7wo8Tww{DGyy+>S=~<*}v)d`m8AL&B{f z@1Mp>cSeCj@Po^rj6?=$az1kx&D+Ctv=Sbx3Z0#Pm*XMjbc0*D);<6fq}OX!Ulrl~ zDS5yL%cwtpa`>(q9g+9vHN8j`@hbNiwK}0q1AqU`-H`jCae~V&!=x2De5(BsdCzG~ z7Zt?H#4?!82btPY;U|ON_L(7Fc(itE@qpl0Wc-mQe5e+;qEr7Pk-Nw}FopH-1E^ln zeF4;>D%$LE&|8mZ3#?Q5$h~j*bb@ay?V^uf*No(5)zU_f!58+Je|P;jMRS|=26K0t zHPJ?PilKulooe=o?GWHLqXJ&(ER5hxkQ|CZr|~{Zh8$h>zJ8t^cw`~ou3sdu$xvMNuioW1 zj*bOA5;8tU?8eTL25AZ2okGx__I0Ex^!s{!<@&J*0z&FoW9HDBe<*PsEqttNq=u*6 znUbn(lQAREf3B z>L&who|7exj7yjm>*9u0&d=*T%uB}4+g{5)nO>KBO;iy8apY=v^8AluL-QkJ1w;bq zf(Y_fF+C@3cN;0o4$e~EspE69&H124Lbq~&v)AR2@XU)2 zaknEv!*8>nmQ3`4 za}0r$2JHR^(&tDpnID%@-T0b1uwz#KnW6QY`wTEmRRtP<>iyl=YsDym_6f-z4t#( z%rsQcp0i=6Tf^sq)7PHcDAjGk?- z8TzjO16r?VIru2H)*+)H*Evo&mZ^+{>ofshA&GyyCA7-$Z?Q^Ns?UbC(xTr=DbN2X zI`43{-ZzX#?Ol71qNTNG?a*PC7`0W3s@j{Fu~%(Hsny!l-kaJrYt$?uRPDqJBH!Qn z{l|6TI?j3Xp7(j~`~Ex{gs;D{?1g)cAxuuYZ(XqrZmZ)EV4pw~=Ddao7aVSsnPI?) zjB!TBIj0_ic^fo!+=XCJ!&f>>?m9IVp?X<@W8~whpMO8qT-jeR)WRy~Ue1;+Vj*yc zvQ;zUOs8tKcg;=F5=#=ALKF4hk|OKb;?5C4_JAxwNP8FU()FAvY6BTFV6^b4(?Zte z0a`j?k=jEr(lpgTov_%~2ywAzg;Y*Qsb98Y7|K>)|AAioQgi|iL(F>tzCGTPR!>spmh~gj2bCt$f zsa07-b3Ljh!@+gWHC2SyxGj6kXyvKMv5wQxb_?$kf35B1qaQcgwmV%{JTJD@|BAbt zun14r8Y~SfoLRz$Hj;ZOL+~;3Tyb2i7Y9(PJxGCZB5DY z+cxGk4LzrJC!?jgWv$p!u;j##9@Sws3V-k-|7@2H>6 zVU2E|!{pB_3f^?LHe0;m8kmJtti92g(Y$De5~c7nKW>-rs&=D$l@dNq)|qCP%0yO-K=;*5z3?D_xOhDL zDJfVbn8Nu~@3mlBh%vD{FJDB`w#iu>@N9tGaCkm$n5(I*f0Fmo8uJp#24!A{9U!U0 zq=X$5766%$jV2t{yF!fduy zAxQ@VEfw^Qj#oJuXF`mbj{J#6JJf=m&LkSL*fZcp^aT0dee2;4BEWdviemf_>#dY0 zBVam=`m=dDtHq`-Y#&5fv5qDX=X zW^|YN?(LgBOyznPpW2XNyQ}+ z&;x=cBg7;j$1OdYuA;#W3aKwUxt*@hGz0rv(pI4t%$IH*nts}TUj7Bu`K7KCR zYMDRFJ36>eO)o1oCWiz+AwLG6Se9TL;XU}X>8O(~9P+GsBTv%p>=9V@F>mymWCD9a zJ$GuFeA1JiB73LGC2~rAf*Hj?yZFP0gO1{(tK3iMz2&Be{70)5d|$kKXDzaAQ^lzz z170SG81{tlraW%_VS8_Q>xKR8*ZvS>Eq~&mFEGj#=o37d4S4jTV(2(I`{D}(^Ztx~ z7!s9m*};%0(q+B*kz{P{`23tD|M>S}7~$IE?B_4*v_3X}Y9YO2n3LvEFr7WRsOB-s zUpXeJsV>zu*4R<`hb&uvMy>m~HU;ZdG~|O?v|tV0p!>IYz@Hf*qC6(Dqn|z%45rH$ zT!6n1*3z-K^hR-(2{L8EiT|C-`SPW?@J^YYLKbt7(;q7Ijm#Gm;Qa~`IW^J`HC~P>IFkkG6>P6q5WXlAf%dawwgbk#&^KZ#A zN)t+%sbp735lP#~oO{E}3}ZKblOO@>XaQ9v(1@cAZ67j8Jb{+FMqxIJJHtA)GnY0b zPw6pPTkxM&sz3m!ldWNjv+|z?(pr&>!?J7^WyHKnHwFZ25gz;)9Vw#KY{_$_X=gG} zow?4SMDA`{K(K6CEFXE=z#7e@I9ZRZqSrKojgd~+2(wZL-JTIg-+!~XLuQu;q+=XR ztLy17?!myD*N57n?nD7Tl?m+}rvbJrU0#K`9Q%yot@*0_{4F0I#%JOaa55)^QZqok z>fbW0_Q1(9Op`O(k;$*fKu!qtObSmTHP}`*6W|G6E$p`R{=Hdee2Ls+A*#Cx7h(bSw;;|!djKX3U{So$je%Sqb?ziDY>S!vk zd{EYXvsFzm&jWh#2bm6hZ&NEpJSQfjjF{#4!Zu{T^=TP;5*c{RxSnW;iMOWDZAfFR zZ(ZU2KfraOhY^0|Fz}C#D4_iSW&CjUYsHC^3q_*&c21j}scXT0)t1HZ^iY#8-D7xx zMH<^4@_Pg2(|dG=gfOTV;imH0QHujE5{517eP-HQ;QJ6afkDqNAIpoH)p-A^GIUZT znZ~cn`b$CN!N1}a93DOAgUWz*)O=H?^)1g=jz2o_#B?^P`O%DYd{_)D*ko~qG{e)L zCifx=dr<}(E0Dp<9IoNygpK<(7JAXh!vKb!TAzo59^zaAvrVD`EXBkmiJW3`eM5en zEWj>i3-33;3Bi=4Mekw7FdLO-!@CCcnMmFC2A%b{iTR?s*d*v?=RzKzOH@8|T3Y> zsBj|)<@mT9-}2~Vwj=hzTv{rU!dDrdZHQzvVj;HW2(KT%mTy<75TF1(sY|zWewK`kqV$n^US!f)gPu z*WyW`x4StB^p>3d+xNhEK|r*Gkm;@^hzY30uI`escDDwY9s$>lXZ81Ca7}+1nX(!y zI)nr>gDL-Cv6J7SHAFd;3$w1Cr2;T3AeSWLB3M8ZnPVYWR`yVR$f8W!F zBRA;w(iqx)d1wF1mRi;1b=fPoQp1;H{(!J<-A!S@1%eTYKuhNZJPBBuP{xCN0kjQYVd)Pp z7v`{{TZz^?=&Qso{c>1=K03U0MP?ns?&oJR&C@n0@6!=p&ubs}k{Luaa+8k*-R1YN z;KnzIuu3Ri#6pfK3_cJLV76TNAIL(XAm6EC?M&!OA~VOqLg;uf=dj>7BTS(P;|f%p zK6zN&QS|DJG>xwC?0HCyg%(+ zc137AV5cu8em5O5ozH^?f9%1BaSg4DQgq~3AttE}7YJg6T#vmmb_E_|V-k{d(}qw& zct3DEt@EHbG6q{zEkdoyHm08yGH3zkfSn#|{3^~IP-{&et#5rlrs?`O%T}z~14 ze44-QqKrW`X+pE___4CHN7z!tlvB#P2VaP-iSv7!Qg2e{Ly0`XL&AaB^u4}qQCApt zNLRMssvU%E1u~7?AZl5pa$B*HvE?Jp>t3tfJ?&PvH3Gbq&p{JM+b9UT?STsQc4&+n zJ3A+JPjH2@30D5T=DtF_ZD=uFNBU`;1u{sSRlNkzB9Sjv21st*J!CUHIDPWmvr3kJ_n9j79dET-r+qBXmG4Lz!2 zPC?UIH$8A6=%1|TS70I};=b%fZGSCBkpBn|ExHvmP#d>VKi#Jg=-b$Yip&H~-HK`i zbL$q>+eD}j0Y+U9USuu$YIkUI{8&{(9KC-_yaQlj0l0Pb>pVxRtYt8+FHX)XY_P`ZTPw}3K}PU z1R2hM^82v2IY@I$VY#@iYrZ+yzP}@?`h4A{GSe{7#x_;}q~1i~WhhXy)4vaYzCjtn zfw9=k8VJVU>pW0N{^#%yhSqQrWSrXQmdZ1VojQ41UCo*`mC9Zbd@7^l zmxdep5=&U8cnoyQ0?ve$LtVukMl`V|MOgIA9-%tWbQ3zWV-PKlBzj;e!jDmz`r^1W=1LX+m*>% zA=oSY_F|fyu6E$;gm5Q<{Nd=GR-6wjqD|#o8kI%jC)@(b_I)OQ)z_B5n{p}zv#3)E7Qwk6O@xsr++1r z`F<22V?|(9k%@c`z%#=-ZNcwr@+rTlAMlp4cxs^PCb6i^c(Cz-YQi0+$ojV`KEYce z!$R^nnI3l57eZX0Zh#(cF8=o$&9x4xSby$V={1wh;$O>@e%Xg%@FyG^2|I2sVC*g* zD2tQ|yn7`+1u~m`;OYs1KIObS*sUeR5@8fJS2Gu+;H0piH;tq(*M56UyYEop`=`gT z2XZWPg>?TkbKACSVivM}k*F=nef@LS$)jMC9i)(SG1d6^;WvrPv_P7DuBO%mQJ10V zNM%+``S8!;@!EBV99g{E>-Sq*mbG$}tOdGGKiztSaf=<*Sl<7f4w9<{8)p#L>#S9J}t&FCwozuA8VGQ!>iNY z`D^?1;!3C6jGF~ z2$FIV<{R+8XDQscHsrpT8eZG{IWwe;pTR4`gh5Vgkx6o8cmLdq6?0Z$p|qIT^W*?> znVcsDBcrnJ@wOR{U)BmcrZuQHi*GP{4vI9Z!kNqOQQv+K5|aNhgfs> zSJjA*d2*Ol`uPe(uj8-BFG=ni6m@R(VE7}f>LVQY27uUB4-KZ{tbc<(2yEx;+O$-2 z^nh+8*xvg;ka%NzE2rb}n86p#C*Qixa3pAS%w^bJ8T=iv`JQ<$*=(yeS2Tlk(&Z1mR^P3loX)micJB_(Ifzx4rLI<>}Ab$Dsc}O@X@{g0sbG7Hk?vE}w?0L>50jju-9U8J-B|2d0XQyjf-*@z{_P8r%&f)|%>65A>j?*vuZY z0U4*NzwJw)@YJ~4&1sj~LDH1_tnDli`KD0Ixf02Z;1is!R1Sxuy}a1?Y`yaS1Nnrf z_%T`r71b%B2I)dgL{+8iEX|}lM`B-8!hP5UhS)Q~FncgJhpzm)dzzE}3#qNB-J_=n zI9-v`2+rYvi@ozM7ZCRLD(#O=`fG@Z>yylLX;W5Af0 zP*MHKpbhkhLDq{IsRGs?4acaFgdpjfhL!sbLcIF%v+e_7t%r*S_|xRmh8Fs+lCRiW z%JzOyl=*F|mwheI?lC4G4&VxC*f)6AwaFZDGH=Mhpo_ORg@v{b?C&x|FGHq(qWHyid^^VT-!@epLPOu?_`*-~ZKdv4UY^ ztEZf;7v21{Eag>+oyB7}cqam1*G~zo@~%lUNM!y|Di(r~1+dzj=;=?-idx)j`9N~) z39bpqfIB&^0nKVH$nz;h&7!@Wp-;a}{yj{BC3YWGkB;W^8^rjMtUaqI+YfO@oVD}- zX`S%k=S~P{ z>hYyOV#+RIcr}vO^}_9hd2E1)1L+zVt}z+nij|rz!MFe~T?R}PLg__$9VQD=&9+6A zQz4k@QU2l8icA?E#bkei+2o@cJo0e)h$ne}B9nhrv3HC}N=?o2So^ZmJTj%eeD!&K zw_J~ynPFyWjIi&_=r`n(H4^_XM=X0#(Q$3HSBvx5uA0&I@&k3j40~VR$>rqhe}j+D z*{M669Q#0i;opx3B?o2M)Rgr`?kt0etGw284yi}~A<{JF6^r=qGWqf4#&B)5NnLO3 zsp4)SR&V@YrDCf3jawUZnedLWVDHOAQrv%_^k7EiyimXkZ4}(jmk=eSq>lDQE;a`x z-x`tzDQy)*ugf=HzlPO7D6H=7@G`FKB#b`IkGMjq;3;X2cv!9LTVyuZ_Wt$1{w@lc zSvlnnH!=M*b`)Y6<_91y-_2LVa z4V!Hak5+<=kw5e3=yZAQZ#Frh9liYo(uV+y?skd=rMWLA<}pkJVz>qr62fHE#?b>b z|K&5Z$>H9uJXUx?nY(w;jr4$3rmSi&XEN#Y4Mjg9&^~A7%JxmkfE#nvr|`BB?&RVx ze>f?XeqEXXX|Wh6A^80^<`+8YazlG2NElJ2V_`n;%A87AQj+jUr6fLrFOtCMfVbh> zb`B02s1@e9g%|XZP!ZKNzApBdzpuA*zcB zy=s0vUe{D#rH1FraI>=sU!uPJd{=rQN(C#zk*QZ>0;owbX5U?b69;~ui_kioQx$=# zli!w$?%Omcx)-k{EJ$V-nBNiMwT67fzQu5%Y%h~Bc7CXj$dhRAS_aH}Y`@}-ZUxJS zpm7sw!a?T}zNlaQ;+kxNqVI>jBKPEkS-t`MqphE7u#-zy3rzGb*s^|{F&m|pV2ShdXIvi?P;xm&@sNddSvE~Y{$BQO+o#|KhrE_>tqgXP z+00W#@g}nB=BcYhRQw3O*Zs~U4IJ3^W3BLe7JW#(k9dbV;IV{VD0RY>?7wlF@iOtonGA_`E1mUSNzlvJcS$&r z$=lbMv&$S{O`coMyW~6q1Po|=0o-Gbs3l9 zZ1yu~%c4-Pn@3{3DHeB7jkm zDkA5XVRw_bfs@tl4%J7XY8+cU?zNc?2mXPnUi70|ZA=u37A>ksj8^EEw-j45{roLw zN??5orRY_hNgG>wMwZQ@eNJEk{|4`u>9sGr%aER4CLbOdROXpcw5@{wP(@Y;n$N%S z`42?rBw_W^U;6TEAZvwvrYSE(__bPHc`PX7MiO4_V6I2wcoSXl_O;?9$66ej%NW1V zVQtuyE?n!hTl+EsL%Hdoe!2KDNGY9GyMa6^--K2Mf4Huy>q~vOiri6rv-+r4{?EU? zLy+YwM8Sv~s35wRE$DF(rb^YKT;$uVw5+zOn^MYTSKX&~AM!a<8zdU;skuANDvE!D z(QURyd7t3J=rkGu6RX6asY8cu9_^~xiYgb)2s@2{UbhB_;w;V6ysL5?Fz7@!GbODK z-~d37WKM{t1TW$}W2;;oMA!TF`ljnDX|b|*)jmt~-DLxLc#{KF zLW>=x4M8bH%>EwB6)E}DDuq6i_D2=!R`1M9o}z}aMWv2!jW5I z-0%(bqqGv&@J&qt(-1UvB{Qu2U(VC0AVE7nj-x{&7u|K@w)x{hQXp}Yz?3#JcU7Q+ zA-^@46r$bdqETdfTR+A5VlIeZvE&8^i26Zfb++;v-yi5X^Y7 z{AJ37(zfv5<$irqWtG%ZX0N%4F>c@TisUjUFD42~?F!F*<=?_wkj5D8I!cC;%9n)S z1p-u=X)42YnH-(75^93jU-4ttPB)@wMa;iDUA}up_a*uXd_z+k8h1_@P-vT4E z%rH@C`6Hes?ZP5I{ z9daYJNJMKH3Kj74Ry3xTF3kLBP?Tkqe$^xkIKWg|;}ms}C-JQGsbiaW76!BD)tp-o zi4=B!9b&&!wUw}(@i;)o)LD#A;|St!rGLp@tLlkGUT_vERYqsqm;JlE?;!uCNhULe zJAQp-fl=UFA`>1BJ)x2QvI>67lYe&j!fD0t-u?$F_|Zk-0(UZ+bPoKi2yQ6-CJSOC z5g%4PuzHAYvCtu+#NU#t7kpmm zW-h9wec#R(Egc0hqDD>a&3rMG9f7Mapz@G)m(z{d`9+_HyYi-a7qpznbNm5$d{ZvOB%0JO9p3ZS8UW|`P5}o zsZ_wCS~noIO5c0bg}j9q(w{Q2v+1*!uaaM}zl~?mRXIw{mX&3+KTy4tGT6nc;T|~I-Uf66kii*fzX`k{dn`fv3FcIRxt9G)1 zP>=k!iiYnSq8zF>$lBjUi2Sx2yx)<;50`c{`;Q8KhB9b<-8f31g0p(n@p{9!5um{Q zyCF4ADpujX1kw7-lk1rYjk{$QIoXj{z*JAmOhkJ0_L+WI`up4#a*+ z=)8w}gc@1yy7qbV*a()If66n?OGWjxm6u<3N)<1FwcWs3-*L4de*#0(i3QH_emFI9#*EJJ%Mk0uPxHNBeW&VA!oQn4h($$ySkT*qODVG*ndb|pvUFH%T^C#Q(NWipF`qB=2=ucnmHx48@%P3)TdPmQ?Q^5} zWJn(-#t_BWDcoFBp&S*|VuIRO32v_zVHNE3oiH5adw;qUTYtK&d(M~gqtgjW2Q#u+ zRl3Z|s*m4{FB)6Q5`JG=>^vC4rtywK*FI7#8}!^L}@qrquQc( zblt7`fCKg^Fk#DTfAJLa@kMt>bFaR=HJh0K`tsj2lhy8R#k7V0pHd<)LugS5CXoM! zTU-HAj}*+y3=K_EbVCzE(J}FgGC5CUHnXf2YNSbc{A=tjqHXb_r3Z<6@A2p+f=`^YS03~t0W2P$@DGV{{nSI;)k?~T`bZJ>f5#8Zz@g*}?P4{<7mB8p^2;lT` zgSl!u2oFt0&X&#`o((m>PDJwZXH4Ul`b!%KyA6nMXq;4-OI}+SNB-%HB_>nW)5gmU zo{>Q$>@w&^v_w8DX?}(6yld{^geC1Frw_C2i~g;o%p8J0@Xh-?miqVGchKp_c% zxw|z1@qv!4cH`ISj*Pkyf4##$EV=M|SLTO)?mcN09`v4;BQRDL zTenW0Xa?#d`%Sl%n9T#+2tbP&79|64P%ZVSshcYtV@m<57s8r%p3l9YDDV7s-sOn= zMe;qX7+UQNBjL^+V}@IOk8%fL8QT5%#)gcSd1RaZa{b#^Q_5&$VO5IbjhFVe^dM;P zi@Ee_LOVMto@F=)+RZa&<&vUwP0r(=bFS_IP>NYqXM_Owr~Pc1iH2z+Ski=h)q! zPvCa7r<=4Q?L;?q#jGUJe`Tg=bm&x8@xJ)KGFhC^Z>5vib4sGI3l81WVSyrrlC;3j zZsE>fr(JYfMNu01wAht4&6?Cs0ADTI7%2bb+5q6ibrCsxV+B^9#(y zHs`td(-*PlwP{M|YlW6*%6!Oa6{wszY$T*$wu)PJ#Cl|RPxsm2ruuZkW`lwcvUWC9 z(DfP}9%7vWpN5!c@YxObNx+;h!MpJZybqR;;bLm?)YZzw24u3j62UxMkO9DCgE-ZL{W>4xamf8{r5vY;qlp$NQ5|F3~6E9KHm=}cB_7tCc^S5#G8f4 zy^Jdg1pjXicSNj+uvh9Zgp6OQaPBtCX{`3|g^~g~zkxUf+3~^N=z*2ojEWq;6UdKB z9T02Y$hrzQUCJTrzeeyJ{@FlXmh)z;#!PwYk|M*B1nvzVYr3@YvP=q@?3w_T&l z$DPORWKvZ6(xwXER&RtGMz9yl?gntS`6Plk?;?+zx$rT> z27av{hxg6rhB%)zvlXSe$kRrziwKT}(Yyh%dOxV0nJrU+h)lsuEaCRPi}7 z&%!)ib;d=c`lRNBk#P3VI`i+TQ=I0ChO*sYmhN`Cq+4#IM^gm!cPo}Q8Alm~W*R)= zg0Kz z%oh;<%TX#z>~$+(b~JCPlDKZgk)VWEmrchCuI(zE*o;q6w$a*fo(D7HeO`B#Scscuc#aN0O&)HFbe>>Z&;?(R__MFSe?D$X!mi+p+ z=a6v3a)AJD3R<6aSbO{6gC54~(h(E52_aln`x-RK1c_&>fc5*=j5=ilhhaKRLE3&}%z;TRLq)kjC1O37I@F31^I9qq#1F zC0aZz0vC8|f+_;!axFmFJ?b(AZ?5zbNRujlae20WwUv0$6yI`X$n(7=hi6p&`jzot zv@D2Z=9Jl3ETKKMYNuuQO!f8^Rtp1AHV7&2>TrA^bFIEtE!9;A_CqQEPDkYOLKdXV zL&8c_!bqQ{s{xK;QMRc|7BZ(hJpe}{x_onRsec!*%n~vk5I@lo6RpT)=k%Sl^z5@^ zW9^C$-d_qLqxQ^~R$}xZSqAJlV8m+&qqHq_AbmKNy9S($18slNUMs%^243>!XIf2t zwS=Y{f9!FQc=U&(&AZ{8q{DdfsY;eJ=(1v06~*1!SuS#otHj8$_nk(RxF1a^Qw z{lM_APG2s5{^z5Ma-to*@$~e*W8xkdwqj~F)FZtQm@mgtqsOCJ7yKE)I6}N3TS3Fd z@*adF;KUq^I7Sih&a-cWU?T_DepRLhU;Bp@K!Gy^s$tII_Ko|-uC`foI2<5Zef`OC`xfl9=w zCcMtPk=XNMPka|eBoN2Cxci3}*9OLSh3HZ%uP@j!`Gx5E@68sj74fBp7lRb=p&)p_ z7GMVW1|@|fvI`n1ua0QY%Ij|oAT9kx|2VmtvLAFVNR#JA#q&PEch;b2WZ$thP?se_ z67}7IxNUa`{sRRrDsPxK)2o9L?yDOfK*yhAX+?2VPk=)l;#)zpJyv3O2ohuN7AbP^ zhVjf8HHi!J_b7iUl&O6g$K83hpjdnEYM^>mOyI&6TDz~sk{7la5%NikQUOn@@CoCm zB*45!J+g-hcEXSX#)S&7bG1Fv???%;f#KgB05|_xhH=UUscva&zkaV>OXH-$+t5Vl zson3y&8E6}3}O2ek2??Y+Un-oyo!)^R6zY5G1mm4b};UElxpYLW2t9u zHdr^rT8=+Cs+r_fQcqqzySkUFv7$1nq^7_?wq=@r$U>NBCxW?xpbi83az*e zMTvKU^Q5#hR$iZtj<}gW^ZOd2%f{jLA85ajz$>*4?#G_HpndyCRHq?bZ@x_1A`q6p z^>@pLz~d$DahkeqC<8t1AUf2`gzX_o0$%FcHqCi$EF4ji|6sn04k%d8G03ey{72-0 zWmp09i_2NFB2AuA@8t}$XWQG1W3q^M=L~u#4iA))kq7DkeJB{%Tc|OU04MG7?vUM# z&oniL*Q67r-Up9iE$Pa-am^2zjdQAIUiQs4`((NHsxx1u1Z3Jb!h)t73wJGj|1y;~qd1`ZIlRwTdbOZtpBZX?_Zwfj9YteJ)@~Y{4kLH>LdVMO8+ik2cvd zcPLNPvm#4ErK0g&di1W2FnAFy@#Clqt`wC}KX}tTxsy{j=INtD_L7CTzHLs8_*H%| zrc!I#(1>l{7ha!Ve^+}e45O7R_OB6=B5C>(WAn~dIcM7L(W$=;E3Ld&{EgU5g*SXAq+UEC7ZTJy-^iP{aB{A z`&aSSWGzHLlmPlUO2A_n0RV08C7Z5W@v}b(>jTHIUwzLrzd2rf(cN3W zy8GPTLx|vAZBAsu+4WlE``k)Ld5)QNu0%Nl0y!pjp8VxTWwyyH=N@{WPs|gLJY4Y>oM@=EGUVG>d@eT>x zzKE|M)_C!r%s23z*R;@NvTk^By-fIuX3q>?LJxWS&uFhHD!j3OG^#B9-{;wE+po!i z57ScM0T}a$Y0wFl$8fP)K!tfFz4qn4NOP^3Ma!-%GtDu-;@f)J0oE#X6^?8Ypv^W| zgiLPKJ<9mM=g3und)E0}6rZ>Y^*hczHWR((bTeVv+|nGEB^3AIy`JhjV)sorqC1B; z6vrJzgL#ZfAC}2nbl8Hgfcxbcx~p&7Thd5NKWzw&(OLgG3R5GNrObHH2(9TQ$KA*B zV#qh)7!~DvFq3DfX$(+_XJX_sTjE!ZLw-+E%1F+t*4oAz z(QI4%Kd58js8=T#-rgey;QOa>E?7;p)5wi+I}#on0vI#T9|vh~*(K{(1PUyBT?W2u zqfyad;chcxHoud*`vjOhh(mq?Iq88D64=z%oX#(0&Y&l=|AAUB1jB7w8nij2UENAP zu?G)JNNxv>5Ob$O0UBdJEM&C;-Y*ow2f#Ad{#Y#ifw>thY(_G9l$af4dRdL~TGqdg z(-zx~Vv)VqV*?zFL$T(-1`u8V{H_x20S0~vnhVlLx)4LqelgthCsN~nb4OU)!c|M* z-?e4`M7?&jVb+N@nmCPLNw#Xi-b=VfQU$&+|D|Z_ zg7Vt*NyIWj2}2n6IC)X#FS|VfMqNRpZ1*z=s{Z zY!?&{3O38I4;QCP8`TLyT$5HJOIgf5mK%1C^QGm|dPP7paP)VnJ%YehYjvso2cqe9 zbHkrTHE!C+bct8Mv=P(&nl;>Q3(kKRoGl<(g8_@_pAC-Jmnu!oZLbu235eZv?y}(T z0Na^W#_bbF0Q8=Gq=1CS7~}5G;MfnK6hWf37^|QAx0Z{-ZbEi-b8Z*VCPj~xl8nv@ zF%^nMs!)Z>h|YlZse_UjVlT88j&xvi`Xdx&3SAO?d6ypquf#MgBCZA?qzCnwoYSpS z@A;rW0#j4kUnrja(M51IO(6@j*TC`AG$Sr zk%aCCB(6<+`1ozRdggoA#?Ght5)$N^B!r9u%Ml(9Zh#Kym~1hHO4o8hiY+neMrf0m zF7k>4=OD?=Np*8JH&-F&uQV}!1m%I5pPoe?4g@V^KI(c`!sal;aU7CAz%4W_m#NFr zFZ6IqT_6-rrGYQY*2ZoxVBOn8-hB0>h=w*-LAmHP3BZyG;0iFPwWs zg5y_geBNhJsM**km&goNKu$Az;-mQonbM=C4`fwGq1la@O2k(Gfdob$b)Al=C7At9 zDE?|Kz(!Cz{v+{o-%jUORk2fYI*ewUMV#@Rd6?-Gv;SM33s49Ixj!y*If zLXZ!`VU`SdC3#13)W}ulNg-K0F`*HWrj0wP>%DM%)@wiH-%h{avOic76zNAJbV2+P zRAsJ-d6)8G@za05CWB#WuVjAD_@^r-fl?~Jy-RsK5KNjsvacR>5hp!OzL(F?B6V)aOh!befVuo>efYuiMMiPuwIZRUxG>Y zVA92%csxBUA9AlJ?&m7o5P@^gTlORed{>aNzbrvO2m_5BK~mvU@GEcZUb|b@GJz*( zZ!h5niG3_RUp&T~;=w%1ix<`pR-LrB8lcNq|LpF`p4WAAPmcL&tBE<60tm;ZViVu5 zzoikfCdZHBJ6GyInTGsMXNm9(|FA|tp&@j@z48Xe?6EJqf;?lm-n%u=KoO5XBEalT zwxeiVgqs~teF>(VY7a*Fa= zH+%Uun)v+gk9sm1G=ywVzi041PaL~XI@d#l2Vj17aEqlq%o{i7QfBW~8twa6)Z>*! zU=4q5Hz6@00v~1`Yu7SpJ8j;YXtcBv?<^qmZl=@JjG1XnA zRL?h@`~qi)|wgs0;!XyXk#v@pAoS4h9!??s89#L(l&S%PkNczx6nu+1F`ys#X)=FKg z1t8ASI}2}&?B5ihg_2wcJL>a%HNC>FdPS^qxC_#6K<1lLhBH0_h)UZevB%qWE<3vJ z{)b-c;Y$ih%%>8h=X-#pSjHZf?NQJ@GDly#&GgQYBqjQR1cY*a_jiWs=w4H;P+(xN z!|Lb9_(`%HU@9d?MM2J8-q1kX>ZeLVg0WvRd@GZvJXSdX)~TeV>yKIjpF#;LSzZt3 zt1_aX1a?{yt|(G5?swwh^vBoH5wIXlAZ~@1emkU_U&2DMo-pvm%er*Zd7bpnE2L8T4x>j;f^0;?>uYtZd0EXnu~Q z36K5S2I^TsLQ6HGH?FtgpQsyg7}ojbDq89~)jCs{c!&m29>@VVdqcW3hpX-U}=PzrkZzL^T10~{Xn7e!=r6n*YuYzf;7 zkxN8Gu)QG@Z(*(pDlu(O(tjSKg+yZ{HY^%g@Q=^7&V>Bw1zBxit#k)x7w)veP$hLk zE$W{P5*i2Rg@i8=p=v4zI0mxZaPcwz{B7h-!0XTWB3{X}#d@%Z?xcKNRs#1P`Z!mx za7W~C|9;>6?Ss{WMtNxL_wOf1*`6-7)=98yl3*XGTCIaC8H=#lwqR%UBj4_#Equ`u_NL=V>E;mToCJ1VF=xAc11TsSKm8Ef-^W(dhdmhj*y%2M|O$T zE0D5E%^ta%NjArxqEpk8E52U=!5#ce8yqF7jh1~>H_PG7Z}%#=YWd3tg)yW*a(><- z+82Sympg$RT=eFpp_+PAIR*W16@rMm9*A@?ZN_~9z1A!>ue%PZUs${=P$p2CXa$<* z6pE*fnnGo-nni|s(C@|5G>;)x7YDht?h+njiiYELsb+@kw2<0G`rv@pv)=BQg^K?` zJh#c*z>4z6(6E+6i7-${1$n|bm$vuJHpE#;>iWjE7#7r_cXAM3Cd-G2-#tzYQP zyW6^{7Ttz=Y@OjIHySS{ss%CpKZc4om-c-7+V{O8St^R|vf=g_664fiK~FgC#3$g5 z!Z`Oqx`M18;%&j@`NV{ZFd&Bhe&@@Z5l?#FGah1P6SH?ek%#; zLJ;5%)FZ|R8An8pjHlwJ#E1e4(3L#T2OUYKJmn(_Ah>R=1g_k$Ii-UfLr+W|b}~&{ zqe_&=`^_Kmxs7HO4cRf*-Z=inmC{#&_q|4^IX{h2*tHRdKefG{Pp~QY!p`;T^6mrZ zXn<3LU-$@<-z2xfDq&JE9O~JZ7Uh+s9so*`)lO*S%=JhJelkPYVCo96Wp>e(yQF9C zAROHyFz(@r`;#>!7$9qqKR*e$*=<&tB3)h0e`yit_f~A%=YJGkcRbYpA3qVY$=(^s z%3c{q!$@5A9%YlgN6rWl&dA6(30c`Ya%3lD?|DY{9XZFH`~E(^f9?+t>%Cs@*ZcK) zj){m=Oo3?yBw8N#vUA_+yk@tS7#1$54UMey4OLE}=I`JQ0^+1o%7l>(twC zdvWsY`kIiqwd-7dPd|FwUj4#xsfO*qKdH8wpAO0Eg4#&a0e++8@_pK{Tn z&Ednt{ePt<4(D{5`U>eYI4Iox<-1Ej9+ydLG);R1yls~7fAni}Q7?2+Xrr|QeTiJ_ z^!yy+qR}d|y1J6ytwVk@*3xY8`%*@Yfi-70Nb&C-?$wHw#r-*k1Iv$-R?AC$g8kL zM~hcHTXTg{uW97>a`48rkefiK0xd{B2;Ws~X?f4AK2E8yr*Kq`6DRyB0yM9d7=|`! zk4{T;zj-)2#vItm>m2k1}_biz;j)p$E(tjprloz0HJQVv-j)|0KyW}Ue3i5=q*`|CJT;J;G_J9}e= z6n=_&$Ag;&KX|(N3zn5~^P|Pmd1vJgKbYL}k|?ufjX5%4BmpEs6i4=}jWXt#|6;=l zcWi)1{{5Q*#74nO4YXGOsRt64w0mC@9WeKW!;?!${eJ6|=R!u+Lf^`0ej=HYdeHm{ zD{mBI<#wCh1UI3%PRf~B@hY4%_+R-z&h2RN)IzBn(TqUOXw9GRM^vsI--_70XOX5I z{#WioAx}*B!+L0If$rQ2%0YQ->i`-4%ls{Z^5AmO!8ftbfL|GMFPl}O+ zN+nCFqz{0eDu}-F(^od>&wRl0Rg!3^hTD=#BzC$|h28h1F%evQNC})%1Je9!&GqgC z|J~>Xuaf@^TxWw|7hMb4lIW);1zwBy+t83LJ-nq|0)UiU^$43Q@mok*`t?gb&&?b_ zU?yo_0F2AMy99C|!6u{V1?EfQrmV{hr+|Nq@>-rFLRbU(xTwdp7OLd`wP`$+kk73eVNkbgk|_B^^m}G4=+>?f?V|VNPb4HIRm)Byt20K>bHcr?q)X z=bHBmTheF7;#<97?M}Bm=9PW`hi8#*3 z2}F)|3!&ztp{_;m;fyHTN+g?eLSJ^|y>4CkZdW#gUo4x(GF9<@#kt2MnU+&uFI;JN zg9+q7w~6#T;`L1u*iG=J`ah7Tp3zUs?2gUhKuRc?E1WYg9L;q+HymH1x{}C{A&&2l z7tjCL;jDBEQD<>KMN=I_6S`HcM^Wu%tHE{^I(+26KVcc`_fh--vK3+}Vv@N++p~^U zGQt!WVIqKGT48h4o3c;VkXxE<HbENqE>RwWE!*Bzn0&%Fef*T=^tRcJh1rAM4S$iR+Vlm_x)j(KY3$O-zVQ_{2tiLW|^HtW2i%njpcrw{pPjD`P8h z%+Ow$|3I(386pC2$|6Ov9y$OBe%khf{?xKjS`B^)n()~?BLD3pDZ%CMYu46@e5vwF z2bz%k-#5udMpwrDW(X~Oru-hnMH*(Wvkb@ud|~tWjj;JM6P!K}=N9d5MTl1E0Ri&K zX2ScfaN)*m-M8L0oiNR&a|K2~?2a-p6u8jdQ)rJ!74fqq zJka4tIaujI7;U0hz5(jyCcESoM6fH<0>ah*+T7|*dUj$inI?(!9*~u1;lD$B`@tx~ zI!3}UxX~*e$N86=zZIHfcehzHw*S#!J|jllBDo;1>$Uj(Ka&0BV?cVwC$?oN;O>w}$jdgL9S!{ce3g ze$W%IrJ~83_=Ym~vbmpI9EtZlGv1e)K3L@U0O`*S^OF^MwFDDqQ5M-t7RvHIIt$eHGgtTVuz(L0pwC~L0_En``4)E{;@_Bb#r3|U9&y}nA~o( zN<(D5CD9=9WJMqP>NtA5jUt-2RO-WKu4)%9=E4AW^lat@Q zwj<6vfV!rTX=B?7_lo*6-B>E@I~u36Y4c>G`9sjJBkF%sPb-T)trE2Votqfy-3v{) zri}u7fR|V{s8{4K%?uVpeol?*HK%EnL3}sg+S^$^AL+=NQx1=F&H7y&bVhAH{qL}j zb3duRP@IIDJHf=LVpY$}`O`UNe+pg3lRyF7s}%J_hgAM-V;8xZ>j%1Z@gEn>XSJl#dNnh{G+_)LR{(G;MkXY05%G!|u#!y7(;;wT^ERC_ z>?D5Ss8eh63L>pi)}5-bmWT&c5s0{U3bLiyms!MZ=m23=5^0 zXak;y2)QZ;-{ZWqYDCC>%p|uRj^ld>1bNvHjraRbUOx3NAN$HeL1))Z!R%UgCxI;8 z`_6=KYSy)iLueU?K1e_&Hl8Ga^ZHUXfw&+K--_~1;iuq+H+~sCccuw*&cPy_L*-Xrk+zz-|{2iDK?D|0>d1*VS0qZ@m#Ds{K6Mr5+ z|K!!T{b{}X@OdNJD<@y3{sw+|CYxJ(4@Enh6f)HVmD?Z!%cQ!40Rao7JB}iok7+1i zovWW3Y~{>xV=@!2otTysxQ@e`)0>k_uld)y42#>fwE98G54KIa!V1g2gr41YgPcG< z@hYj{V}(FzO12B0ef!NOhj2pd%F}G9xZijX)szg_pF6~ zNaYpUdlMG@CJ%Zyq^|G!Y0&W3r=2t6lhK|F=S=zjj#Ljpg9`qc)^~1-BiU?q7`Yj{ zXD-^>Qv^&>vZF1B7e%B28*DvlK3$S94Q0xT^srKup~% z@3YC1NcO)OvNScA+!jwKq@S59YdE7l>G7hizN(1eO+G=?dM$r~4*v|UXek*pukoiD zXD4<{ybV7+_S@j_&)(@!!T>IgPd-v*CJA)J7B zMaJ5+fx7I-$l~ChQ&YO_+P*n6M0jxiVRcN^fwq_;rz3H!&F??fg^e;wo~2|x79Y7a zX({?dTz>5%DG79 zVj1oP8Yd}wKH8H*y#Zcs+tP}v*=bFcV8hyJU_Usua0{LnOYd9eAHRyRRD2cW`P(d* zm*I9~?82z{>NhpRs}yOccS!0_lD|rmU#+|VKo+EE6h>e&_ z&6Z{bvs;^SS5OPLR%GY>vw<<~)?lB%-|~AQcNF0CB9Gxx4ywtuh-fs(y%o&Rr!>)4 zS<_EGajEaSta@(7PwZyOnP$d|jy+AKov(S8lFPcCd?uBCacUcg2HRp|KjR^k!ZETf5C80xOmw zFDS0`*-eh8r@!0;X0XIN@U6(8i&W=m+sWx|<20~3cq1Lm+$|kpft5qnSPc?HXVv(D zjs!Nd@-LKJO#qw3dT&kzvgz@l_(`bW9J-I|XU*l(y_kImNb}PqEN@I$c|y>S-$=oQ z8>5%~DS%1N-u%AVo=iVJZ8fMxIU@#rJ)Mb6kY4fUQT z5*V@KXz*YjP2v`U%bLTRA|#TqEqGGGYajKDN0Dk(~T=ap)T3;4SYZ~vp zG3L_0gotVOH2nG2P93L!8P6yAb;%6&dOzm5H&i&XJ4ksyEXt!|b@xkpLBKVTh*qO& zM=?2AJscllj;G~v$nL{s&iNDXEl7eI)1PLpM@0VB9%21(P786_l>3WhpZo*;1=a-| zqBD-)8TOrcFD+xXCc#cn;t=Pp`JX^t1`6wPA(;v>+l)*XY-S&uY-na#%D0Bd++$iymeF26u3P5OD!=0a|2jwgnlo z!-{z&qL7=xJ$A`FG!bOgA=QwZ;%3oLUDRci(H@l}brT-m^6918Nf~@MRTiJ_7ql)I z%J5Q8RbVGDIY7epX#`m#g8~0>!pfB4O=EvPsvAJCVQVS%fJaxKr9!;;uDR?FSxaj@ zs;RYg8?iq>Ci3{T?cK6fe=|NW5h~%D0{b#cFWwF%*!In%4qv<({JkwjuJ(qeu)EL$ z&9SL~XS!>J&Us&s#UbPEXt5N1m}iq}vIn+|t{HBmi0T6c_b-%RzPLRRY+Kw=_m#*^ z@Y<3=$_n7cXT2Ptox}TqQ905D15{|!l2gvn^-lBngzQCN?r6TCN41mUm5P?z-75o_G zT<01375ik9tiO8IZykb2a^0NyikLil%0jPxWNMz(EBt_}GrC8`Y}dG`IcLCbQ34}~ z9l?nnLYd{q1?4m1b zmah}bEUOvoJN>R}R^)5JP*up}5~L+xej#QvNOS;5lev%HOy0YGo$vP!HhI4%g>yTh%b#|kS$^I) zPrO*i9C~;k>nWB~V@64>s(n=b1)d`kFY3l5mijhk5y#*Sa3TVp?3KX)C!^(lJICWEZ$p|`ibU`W?B*g4ccTr{SFZyV?XHu(KWeAwdKy^lEFr3{4FvZcrWu<=v!I z4SA|4e6Nc?wfr|E7WXAfz__h5QA1PE^ck@|@Ek3^>|5u;dTiN61=uBW(|0Ca>dZHH z+BoQUHop=xvRcy=)YP(Nebtb@Z})TWm}fHt>;l0G1GM$%Jg2g6-5m4Yo@yc?4lgof zlUMiG9vH(<1V4?yJX;pOnnM|+-=$S%xWXoVff=-sA^A2Omjp`J9FIy) zCUjk2Pxrt+4?-u({GEreTV}7;~WU7cTk@(K%H*kHL z+aO}L9)Y4B!={)7DE`h5#Puu%x6CFi@s44XI>1r(@tn zB@;@zof96;y(*ku%OgZgIqDZ)v}c6k{}p$*uTEFk_l^Yc&NF!UM;=ZilRh%hBBZ38 z@WusxGe%(^^I^deIX#^RdTRak0z{k{{U_YWhppZ>O=kG`P+z#E-il3?RuNxW#l%tI zlBU*;cn%7R0FpjbrAZ@eF?;?ckwJNVU3&cJeAu8a$<8vxMo1rzhFWV%qmZ84Y06G^I1!td;%j`bh-cfdGNt7MxmhoiMubd-cZL{ZT6&ty_&x1)ME@1|<}2T~Q05l*C` zp#|MiB)M@bW4emSHW=Rm;X^B>TI4I&qk9fQPt|EP9~LJLDZZH*@GE=1Qy;2g3>1O? z4Iv?96@OLD|B(D$6uFBlsXI(^Y-Cn?<46;_4agN(dhH2GJETeegi9{Il!58*M)AYg zdQ~-%>3^<`E7n{9rTY2lhdRjbuA#MLJ`Uz zaXbOVJtXwa0oB5L6)SFGmjgIl4UNaBOlwG&>eru52T3qIb>QwZcMjHN(NtPFLhxO{ zM%D&Bi3(Vf&4CNHCr$JPh3U#@?pe-I`8@OSX>fjhRLsY#*_p2OtJDkw{y*+FgkzvB z*p8^nsl2t^<*S&Qg61-aX%6w{(*`frvI@pD{;r=`XNxC zE5@j71Hbzm-`+X!|PiSomU+fKyuvELnqT|pl7q-=V90hqd zmQKo%wv6)fu;&c|@2f9k8HjG1`#svGFWNIM?Qq^;QgMVY9w%*83kJb=%%kFZNgPr; z_VNl+O5(`AN`~^-c6_DF(D_8V*@GFu9{@c4)zn4RL%O@Ad#b%oVl(B96tNbWiN6As}a0S1}tRK#m#S;J)fD%;Ko zFnFVw2W13VOd#B8Kz#>u;)4+1zt3JkqggC zntzHKTalg+9Ukbyjai<|ZY$7lzI>afSi;KBna$mX3MWt&11+7}oA)OHJc-bj`}tdd z0J_Ya*SF7&`CBY;Ud;oD)aM0f^*Bo!-S}_P^$4GdcV>j5aYDv?Rf= zOqNdHB$X8QQ_<}G{l7S@4)8S|`W-;I%vhPs-xo-9E#!3$7K!A&=iKrkOH zNgPpExF1$y;j6N99YCoe0f5xkLY>M+pRYTuy7^$xs=r}kNqjK>+oPOR5jPchZeX;7 z-i%nXt#^EKD0sD6X5~@NvCoSo+0p~L>Vf-0A-^`R-k7*#dY!~0W|awd_;C*aa-+;m zOe9ByWLtfG>-=(`kB1uHkLFfgw>`w%o$gP9X%DjcH4P}PlC9`dR_2ZKVsvtsu8Rho zU_j1Ips~Aw1vH>Dk=wTS)wO4#VO!BsL;e?Pb9R!iMHEL#D(G`u!X>u^#R6^w;qD% zV;Bh*O2%8!MiIE&x{X$}T#6I_12r`_w0tV@mi;6lNd67?sVKVH>>8j8^oBy+{{t}+ z1_2h*iz1#7L@&1sULaBofB;bARi*1;NAqxj^*5KwBQL*FLLWU9K>nt%+8KjBC_=fP z9(|4!BCO^h*jjLI`5IW=&9<30Wv+HdGVa&8o-%rQGD0Jw0=l8nx~#)L>3ozV#|{?k zta$z!q1t{j;AOC$o2T)YEc0QX{>Um*-^Cdjd|a`y&1Yp;nUH;V>rAJ~U+O^L<7^L5 z76wMwa1#gJfT!Dp7!6rY;056-iL7;f>*PArt{}bM&s$8S*0#Q zG8;rsg%3lio2~%*ZA=+3ry6Qfz^5kI{n!fg0lk*)wkezWq8^1w|GYn?I=>+MLv9<+ z7@p`eChYd2=@B1)C)EQ3yEGp#_2c6DdYD!+>c*igYHWDMmJ?MJFDJo*g&!!3D?D$=H=6PO>Qi~UrqtQO>2(MZ{hhs35qz{c z9$xs}Y?BAi>4wu9#VG@mCK};ewx6lR-GV&Kmmu1g(k6A(ZNq66H!J)acq6{2456N` z9Pl6X{A+<1iSR}%3_!7B2s|UsXeNS7aAxVUAI7Ft7GgST@-p4Eo5P}etc#urUkSEA?LGFV0OPAbb^1eTH|EENDI-k{J zMjA;F$!_=bO|6u(Rdjj(E!kC|5a$NB-8%rk?U3V zmp%f!2}p5*9-YsGLE}i|*Sh@tV`$!z4?UNbtPLangVy0=Cb{J&{lsOt9BD}0wikVt z(FL?!_6I`2$&+=mecoR8NEe=0Tyo4UmZkfc|9mIg@L6g5cy$Hyuj5Oe$J^E;;s`{D z%Z`8xEAJj#oe)}eA$#Za(n^cDV31TMX3E?96FuLHoUB!|Uv`^3GQt8x2E^EBH)Se} zP?sX?L+buDfsCba9_9m69?zukfVQ^u2&>`|C!ab_adwgXd}(?9s5@+4U)y;=3!|IM zo-Td#)ioD!YsDpNYYTkUI-b-k6?G&CQQiXY^?QO>+Q`ksx;pR%qTUKGep59o!zkMPCDQmP|f&}WLXx>Um5#+gVtY`J>OgjP%Q zTp;n54Kx4V?@_m^g{A!PPmGTpq%E&*Jtd~7yZ3UzDD|(dhV02(As}?>qDdY>2fRP5 zH|2?1Sh~ySiLV4P(4D=R`FHq(`E>O0??c=~Lq@WWHFdv_=r!af=d{jCjptCfLXUFA z0-LXoW<))KNlP4uE9>krNT8Zt%nNZz>nqQn=>oreWVSBy4sh^aG$SYuEd$5e(U7RF zC*Gc6Q_I$U!NG4l14qI4jvLu*#2v-&W&KVatB*5`y`IFiW)uyU6Y$>#B)3aEYFpp$R3$o&j` muMftoxkZY~=~tD|>J%h` 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

+FJ}f>}+JR04#$)efDQnQc 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%0DGdMGs`ou)J&E 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
$v&zRB0lSAg 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 literal 0 HcmV?d00001 diff --git a/assets/sopify-product-form-release-en.svg b/assets/sopify-product-form-release-en.svg index 35c20607..3de72646 100644 --- a/assets/sopify-product-form-release-en.svg +++ b/assets/sopify-product-form-release-en.svg @@ -32,14 +32,14 @@ Sopify Product Form - HOST ASKS · SKILL GUIDES · ASSETS PRESERVED · ANY HOST RESUMES + HOST EXECUTES · SKILL GUIDES · ASSETS PERSIST · RESUME WHEN ASKED I HOST - User asks from any host + User asks in a supported host One protocol, four entry points @@ -69,8 +69,8 @@ Same .sopify/ project - Any host can consume it - Same protocol assets + Supported hosts load the same rules + Project records stay consistent ~go · user starts the work @@ -92,7 +92,7 @@ analyze - Score first · stop for missing facts + Read evidence · score · ask if blocked @@ -107,12 +107,12 @@ kb / templates - Knowledge sync · output rules + Knowledge policy · document structure - Score first · converge first + Evidence first · converge deliberately Shared practice as workflow rules More than prompts: a method @@ -127,7 +127,7 @@ III ASSETS Assets persist in .sopify/ - Plans · decisions · handoffs · evidence + Plans · decisions · receipts · knowledge @@ -166,8 +166,8 @@ IV HANDOFF - Stop · switch host · continue - Pause for facts, resume anywhere + Stop · switch host · resume + Pause for facts, resume when asked @@ -178,7 +178,7 @@ RESUME - state → plan → handoff → receipts + Plan first · handoff is only a hint @@ -189,14 +189,14 @@ - RESUMES + FINALIZES V ARCHIVE - Archive · always auditable + Archive · evidence stays inspectable Plans and receipts move to history @@ -207,8 +207,8 @@ A month later or a year later - Any teammate, any host - Can follow project evolution + Teammates can inspect the record + And follow project evolution @@ -220,8 +220,8 @@ - "Host executes. Skills guide. .sopify/ preserves audit-ready assets." - Host executes · skills guide · .sopify/ keeps audit-ready assets · any host resumes · work stays traceable + "Host executes. Skills guide. .sopify/ preserves project records." + Host executes · skills guide · project records travel with Git · explicit resume · explicit finalize diff --git a/assets/sopify-product-form-release.svg b/assets/sopify-product-form-release.svg index e85132da..7ccc59f6 100644 --- a/assets/sopify-product-form-release.svg +++ b/assets/sopify-product-form-release.svg @@ -32,14 +32,14 @@ Sopify 产品形态 - HOST ASKS · SKILL GUIDES · ASSETS PRESERVED · ANY HOST RESUMES + HOST EXECUTES · SKILL GUIDES · ASSETS PERSIST · RESUME WHEN ASKED I HOST - 用户在任意宿主提需求 + 用户在受支持宿主提需求 同一协议,四个入口 @@ -69,8 +69,8 @@ 同一 .sopify/ 项目 - 任一宿主打开即消费 - 同一份协议资产 + 受支持宿主加载同一套规则 + 项目记录保持一致 ~go · 用户发出请求 @@ -86,13 +86,13 @@ II SKILL Skill 约束宿主做事 - 内置 workflow skill 沉淀社区哲学 + 内置 workflow skill 承载共享规则 analyze - 需求评分 · 缺事实则停下追问 + 先读证据 · 评分 · 必要时追问 @@ -107,14 +107,14 @@ kb / templates - 知识库回写 · 输出模板强约束 + 知识政策 · 文档结构 - 评分机制 · 收敛优先 · 证据前置 - 来自社区经验的哲学依据 - 不是 prompt,是方法论 + 证据优先 · 评分辅助 · 收敛决策 + 共享实践写成工作流规则 + 不只给提示,也约束行为 @@ -127,7 +127,7 @@ III ASSETS 过程资产沉淀 .sopify/ - 方案 · 决策 · 交接 · 验证 全部留痕 + 方案 · 决策 · 收据 · 知识按需留存 @@ -166,8 +166,8 @@ IV HANDOFF - 停下 · 换宿主 · 继续 - 缺事实时停下,换 session / host 仍接续 + 停下 · 换宿主 · 接续 + 缺事实时停车,明确要求后再接续 @@ -178,7 +178,7 @@ 能接 RESUME - state → plan → handoff → receipts + 先读 plan · handoff 只作提示 @@ -189,15 +189,15 @@ - RESUMES + FINALIZES V ARCHIVE - 归档 · 永久可审计 - 方案与证据入 history,永久可回看 + 归档 · 证据保持可检查 + 显式 finalize 后移入 history @@ -206,22 +206,22 @@ - 一个月后、一年后 - 任何人、任何宿主 - 都能看懂项目演进 + 一段时间之后 + 团队仍可检查项目记录 + 理解方案如何演进 - 审计链不是附加物 - 是项目的第二价值 + 方案与证据共同归档 + 便于后续检查 ~go finalize - "Host executes. Skill guides with community philosophy. .sopify/ preserves well-formed audit assets." - 宿主做事 · Skill 把哲学变成方法 · .sopify/ 留高质量的审计资产 · 任意宿主接续 · 永久可查 + "宿主负责执行,Skill 提供工作流规则,.sopify/ 保留项目记录。" + 宿主做事 · Skill 约束流程 · 项目记录随 Git 携带 · 明确要求后接续 · 显式收口 diff --git a/assets/sopify-site.css b/assets/sopify-site.css new file mode 100644 index 00000000..2c226e4c --- /dev/null +++ b/assets/sopify-site.css @@ -0,0 +1,979 @@ +:root { + color-scheme: light; + --paper: #f7f3ea; + --paper-deep: #efe9dc; + --surface: rgba(255, 253, 248, 0.88); + --ink: #172033; + --muted: #626b78; + --line: #d8d1c3; + --blue: #2f67d8; + --blue-soft: #e7eefc; + --green: #147a64; + --green-soft: #e2f2ec; + --violet: #7357b6; + --violet-soft: #eee8f8; + --orange: #c7652b; + --shadow: 0 22px 60px rgba(35, 42, 54, 0.11); + --radius: 24px; + --mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; + --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + min-width: 320px; + margin: 0; + color: var(--ink); + background: + linear-gradient(rgba(35, 42, 54, 0.035) 1px, transparent 1px), + linear-gradient(90deg, rgba(35, 42, 54, 0.035) 1px, transparent 1px), + var(--paper); + background-size: 32px 32px; + font-family: var(--sans); + font-kerning: normal; + line-height: 1.65; + text-rendering: optimizeLegibility; +} + +img { + display: block; + max-width: 100%; + height: auto; +} + +a { + color: inherit; +} + +button, +a { + -webkit-tap-highlight-color: transparent; +} + +:focus-visible { + outline: 3px solid rgba(47, 103, 216, 0.42); + outline-offset: 4px; +} + +.skip-link { + position: fixed; + top: 12px; + left: 12px; + z-index: 50; + padding: 10px 14px; + border-radius: 10px; + color: #fff; + background: var(--ink); + transform: translateY(-150%); +} + +.skip-link:focus { + transform: translateY(0); +} + +.site-header { + position: sticky; + top: 0; + z-index: 20; + border-bottom: 1px solid rgba(216, 209, 195, 0.84); + background: rgba(247, 243, 234, 0.88); + -webkit-backdrop-filter: blur(16px); + backdrop-filter: blur(16px); +} + +.nav, +.section, +.site-footer { + width: min(1160px, calc(100% - 40px)); + margin-inline: auto; +} + +.nav { + min-height: 72px; + display: flex; + align-items: center; + gap: 28px; +} + +.brand { + min-width: 44px; + min-height: 44px; + display: inline-flex; + align-items: center; + gap: 10px; + margin-right: auto; + font-size: 1rem; + font-weight: 760; + letter-spacing: -0.02em; + text-decoration: none; +} + +.brand img { + width: 34px; + height: 34px; + border-radius: 50%; + box-shadow: 0 4px 12px rgba(23, 32, 51, 0.16); +} + +.nav-links, +.language-switcher { + display: flex; + align-items: center; + gap: 20px; +} + +.nav-links a, +.language-switcher a { + min-height: 44px; + color: var(--muted); + font-size: 0.9rem; + font-weight: 640; + text-decoration: none; +} + +.nav-links a { + min-width: 44px; + justify-content: center; +} + +.nav-links a, +.language-switcher a { + display: inline-flex; + align-items: center; +} + +.language-switcher a { + min-width: 44px; + justify-content: center; +} + +.nav-links a:hover, +.language-switcher a:hover, +.language-switcher a[aria-current="page"] { + color: var(--ink); +} + +.language-switcher { + gap: 8px; + padding-left: 18px; + border-left: 1px solid var(--line); +} + +.language-switcher a[aria-current="page"] { + text-decoration: underline; + text-decoration-color: var(--green); + text-decoration-thickness: 2px; + text-underline-offset: 5px; +} + +.section { + padding-block: 112px; +} + +.hero { + min-height: calc(100svh - 72px); + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(390px, 0.86fr); + align-items: center; + gap: clamp(44px, 7vw, 92px); + padding-block: 84px 96px; +} + +.hero-copy { + min-width: 0; +} + +.eyebrow { + display: inline-flex; + align-items: center; + gap: 9px; + margin: 0 0 18px; + color: var(--green); + font-family: var(--mono); + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.11em; + text-transform: uppercase; +} + +.eyebrow::before { + width: 22px; + height: 2px; + background: currentColor; + content: ""; +} + +h1, +h2, +h3, +p { + margin-top: 0; +} + +h1 { + max-width: 750px; + margin-bottom: 24px; + font-size: clamp(3.1rem, 6.4vw, 6.5rem); + line-height: 0.98; + letter-spacing: -0.065em; + text-wrap: balance; +} + +[lang="zh-CN"] h1 { + font-size: clamp(2.8rem, 4.8vw, 4.65rem); + line-height: 1.08; + letter-spacing: -0.045em; +} + +.hero-lede { + max-width: 710px; + margin-bottom: 32px; + color: var(--muted); + font-size: clamp(1.06rem, 1.6vw, 1.26rem); +} + +.hero-lede strong { + display: block; + margin-bottom: 4px; + color: var(--ink); + font-weight: 720; +} + +[lang="zh-CN"] h1, +[lang="zh-CN"] h2, +[lang="zh-CN"] h3, +[lang="zh-CN"] p, +[lang="zh-CN"] summary, +[lang="zh-CN"] li { + line-break: strict; + word-break: auto-phrase; +} + +[lang="zh-CN"] p, +[lang="zh-CN"] li { + text-wrap: pretty; +} + +.hero-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 12px; +} + +.button { + min-height: 48px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 9px; + padding: 11px 18px; + border: 1px solid var(--ink); + border-radius: 12px; + font-weight: 720; + text-decoration: none; + transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease; +} + +.button:hover { + transform: translateY(-2px); +} + +.button-primary { + color: #fff; + background: var(--ink); + box-shadow: 5px 5px 0 var(--green); +} + +.button-secondary { + border-color: var(--line); + background: rgba(255, 253, 248, 0.68); +} + +.hero-note { + margin: 22px 0 0; + color: var(--muted); + font-size: 0.86rem; +} + +.hero-note code { + color: var(--ink); + font-family: var(--mono); +} + +.hero-visual { + position: relative; + padding: 18px; + border: 1px solid var(--line); + border-radius: 30px 14px 28px 16px; + background: var(--surface); + box-shadow: var(--shadow); + transform: rotate(1.2deg); +} + +.hero-visual::before, +.hero-visual::after { + position: absolute; + z-index: 2; + width: 82px; + height: 24px; + background: rgba(223, 205, 142, 0.5); + content: ""; +} + +.hero-visual::before { + top: -10px; + left: 18%; + transform: rotate(-4deg); +} + +.hero-visual::after { + right: 12%; + bottom: -9px; + transform: rotate(3deg); +} + +.hero-visual img { + width: 100%; + border-radius: 18px 8px 16px 10px; +} + +.hero-visual figcaption { + margin-top: 12px; + color: var(--muted); + font-family: var(--mono); + font-size: 0.72rem; +} + +.section-rule { + border-top: 1px solid var(--line); +} + +.section-heading { + max-width: 760px; + margin-bottom: 52px; +} + +.section-heading h2 { + margin-bottom: 16px; + font-size: clamp(2.1rem, 3.8vw, 3.8rem); + line-height: 1.08; + letter-spacing: -0.045em; + text-wrap: balance; +} + +.section-heading p { + max-width: 760px; + margin-bottom: 0; + color: var(--muted); + font-size: 1.05rem; +} + +[lang="zh-CN"] .section-heading { + max-width: 940px; +} + +[lang="zh-CN"] .section-heading h2, +[lang="zh-CN"] .resume-copy h2 { + font-size: clamp(2rem, 3.5vw, 3.65rem); + line-height: 1.12; + letter-spacing: -0.035em; +} + +.keep-together { + white-space: nowrap; +} + +.card-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 18px; +} + +.card { + position: relative; + min-height: 250px; + padding: 28px; + overflow: hidden; + border: 1px solid var(--line); + border-radius: var(--radius); + background: var(--surface); +} + +.card::after { + position: absolute; + right: -24px; + bottom: -24px; + width: 96px; + height: 96px; + border-radius: 50%; + background: var(--accent-soft, var(--blue-soft)); + content: ""; +} + +.card:nth-child(2) { + --accent-soft: var(--green-soft); +} + +.card:nth-child(3) { + --accent-soft: var(--violet-soft); +} + +.card-index { + display: block; + margin-bottom: 54px; + color: var(--accent, var(--blue)); + font-family: var(--mono); + font-size: 0.76rem; + font-weight: 700; +} + +.card:nth-child(2) .card-index { + color: var(--green); +} + +.card:nth-child(3) .card-index { + color: var(--violet); +} + +.card h3 { + margin-bottom: 10px; + font-size: 1.35rem; + letter-spacing: -0.025em; +} + +.card p { + margin: 0; + color: var(--muted); +} + +.steps { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 10px; + margin-bottom: 34px; +} + +.step { + position: relative; + min-height: 180px; + padding: 24px 22px; + border: 1px solid var(--line); + border-radius: 18px; + background: rgba(255, 253, 248, 0.68); +} + +.step:not(:last-child)::after { + position: absolute; + top: 28px; + right: -9px; + z-index: 2; + width: 16px; + color: var(--orange); + background: var(--paper); + font-family: var(--mono); + font-weight: 800; + text-align: center; + content: "→"; +} + +.step-number { + display: block; + margin-bottom: 28px; + color: var(--muted); + font-family: var(--mono); + font-size: 0.72rem; +} + +.step h3 { + margin-bottom: 8px; + font-size: 1.08rem; +} + +.step p { + margin: 0; + color: var(--muted); + font-size: 0.91rem; +} + +.diagram-frame { + padding: clamp(12px, 2vw, 24px); + border: 1px solid var(--line); + border-radius: var(--radius); + background: #fff; + box-shadow: 0 16px 42px rgba(35, 42, 54, 0.08); +} + +.diagram-frame img { + width: 100%; +} + +.architecture-preview { + display: block; + color: var(--ink); + text-decoration: none; +} + +.preview-link { + display: inline-flex; + min-height: 44px; + align-items: center; + margin: 12px 4px 0; + color: var(--blue); + font-size: 0.88rem; + font-weight: 720; +} + +.resume-layout { + display: grid; + grid-template-columns: minmax(290px, 0.72fr) minmax(0, 1.28fr); + align-items: center; + gap: clamp(40px, 7vw, 84px); +} + +.resume-copy h2 { + margin-bottom: 18px; + font-size: clamp(2.1rem, 3.2vw, 3.2rem); + line-height: 1.08; + letter-spacing: -0.045em; + text-wrap: balance; +} + +.resume-copy > p { + color: var(--muted); +} + +.repo-path { + display: inline-flex; + margin: 8px 0 22px; + padding: 8px 12px; + border: 1px solid rgba(47, 103, 216, 0.24); + border-radius: 9px; + color: var(--blue); + background: var(--blue-soft); + font-family: var(--mono); + font-size: 0.85rem; +} + +.host-list { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin: 0; + padding: 0; + list-style: none; +} + +.host-list li { + padding: 7px 10px; + border: 1px solid var(--line); + border-radius: 999px; + background: rgba(255, 253, 248, 0.74); + font-family: var(--mono); + font-size: 0.75rem; +} + +.host-list .baseline { + color: var(--muted); + border-style: dashed; +} + +.install-panel { + display: grid; + grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.7fr); + gap: 22px; + align-items: stretch; +} + +.terminal { + position: relative; + min-width: 0; + padding: 20px; + border-radius: var(--radius); + color: #e8edf8; + background: #172033; + box-shadow: var(--shadow); +} + +.terminal-bar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + margin-bottom: 22px; +} + +.terminal-dots { + display: inline-flex; + gap: 6px; +} + +.terminal-dots span { + width: 9px; + height: 9px; + border-radius: 50%; + background: #e98a65; +} + +.terminal-dots span:nth-child(2) { + background: #e6bc5c; +} + +.terminal-dots span:nth-child(3) { + background: #62b78d; +} + +.copy-button { + min-height: 44px; + min-width: 72px; + padding: 7px 10px; + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 8px; + color: #fff; + background: rgba(255, 255, 255, 0.08); + font: 650 0.76rem var(--sans); + cursor: pointer; +} + +.copy-button:hover { + background: rgba(255, 255, 255, 0.15); +} + +.command { + display: block; + overflow-x: auto; + color: #d9e4ff; + font: 0.9rem/1.75 var(--mono); + white-space: pre-wrap; + overflow-wrap: anywhere; +} + +.prompt { + color: #6bd3aa; +} + +.install-note { + padding: 26px; + border: 1px solid var(--line); + border-radius: var(--radius); + background: var(--surface); +} + +.install-note h3 { + margin-bottom: 12px; +} + +.install-note ul { + margin: 0 0 20px; + padding-left: 20px; + color: var(--muted); +} + +.install-trust { + margin: 0 0 16px; + color: var(--ink); + font-size: 0.92rem; +} + +.install-links { + display: flex; + flex-wrap: wrap; + gap: 8px 18px; +} + +.install-links .text-link { + min-height: 44px; + display: inline-flex; + align-items: center; +} + +.text-link { + color: var(--blue); + font-weight: 700; + text-underline-offset: 4px; +} + +.companion { + display: grid; + grid-template-columns: auto minmax(0, 1fr) auto; + align-items: center; + gap: 18px; + margin-top: 28px; + padding: 22px 24px; + border: 1px dashed rgba(115, 87, 182, 0.55); + border-radius: 18px; + background: rgba(238, 232, 248, 0.5); +} + +.companion-mark { + display: grid; + width: 42px; + height: 42px; + place-items: center; + border-radius: 12px; + color: var(--violet); + background: var(--violet-soft); + font-family: var(--mono); + font-weight: 800; +} + +.companion h3, +.companion p { + margin: 0; +} + +.companion p { + color: var(--muted); + font-size: 0.92rem; +} + +.companion .text-link { + min-height: 44px; + display: inline-flex; + align-items: center; +} + +.faq-list { + max-width: 880px; + border-top: 1px solid var(--line); +} + +.faq-list details { + border-bottom: 1px solid var(--line); +} + +.faq-list summary { + position: relative; + padding: 24px 42px 24px 0; + font-weight: 730; + cursor: pointer; + list-style: none; +} + +.faq-list summary::-webkit-details-marker { + display: none; +} + +.faq-list summary::after { + position: absolute; + top: 22px; + right: 8px; + color: var(--green); + font-family: var(--mono); + font-size: 1.2rem; + content: "+"; +} + +.faq-list details[open] summary::after { + content: "−"; +} + +.faq-list details p { + max-width: 720px; + padding: 0 0 24px; + color: var(--muted); +} + +.site-footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; + padding-block: 36px; + border-top: 1px solid var(--line); + color: var(--muted); + font-size: 0.86rem; +} + +.footer-links { + display: flex; + flex-wrap: wrap; + gap: 18px; +} + +.footer-links a { + text-underline-offset: 4px; +} + +.visually-hidden { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +@media (max-width: 1080px) { + .steps { + grid-template-columns: repeat(2, 1fr); + } + + .step:nth-child(2)::after { + display: none; + } +} + +@media (max-width: 900px) { + .nav-links { + display: none; + } + + .hero, + .resume-layout, + .install-panel { + grid-template-columns: 1fr; + } + + .hero { + min-height: auto; + padding-top: 72px; + } + + .hero-copy { + max-width: 760px; + } + + .hero-visual { + width: min(650px, 92%); + margin-inline: auto; + } + + .card-grid { + grid-template-columns: 1fr; + } + + .card { + min-height: 210px; + } + + .card-index { + margin-bottom: 32px; + } + +} + +@media (max-width: 620px) { + .nav, + .section, + .site-footer { + width: min(100% - 28px, 1160px); + } + + .nav { + min-height: 64px; + gap: 12px; + } + + .brand span { + display: none; + } + + .language-switcher { + padding-left: 12px; + } + + .section { + padding-block: 78px; + } + + .hero { + padding-block: 60px 72px; + } + + h1 { + font-size: clamp(2.75rem, 14vw, 4.15rem); + } + + [lang="zh-CN"] h1 { + font-size: clamp(2.55rem, 12vw, 3.5rem); + } + + .keep-together { + white-space: normal; + } + + [lang="zh-CN"] .section-heading h2, + [lang="zh-CN"] .resume-copy h2 { + font-size: clamp(2rem, 8.8vw, 2.6rem); + } + + .hero-actions { + align-items: stretch; + flex-direction: column; + } + + .button { + width: 100%; + } + + .hero-visual { + width: 100%; + padding: 10px; + border-radius: 20px 10px; + transform: none; + } + + .section-heading { + margin-bottom: 34px; + } + + .steps { + grid-template-columns: 1fr; + } + + .step:not(:last-child)::after { + top: auto; + right: 22px; + bottom: -13px; + transform: rotate(90deg); + } + + .step:nth-child(2)::after { + display: block; + } + + .terminal { + padding: 16px; + } + + .command { + font-size: 0.8rem; + } + + .companion { + grid-template-columns: auto 1fr; + } + + .companion .text-link { + grid-column: 1 / -1; + } + + .site-footer { + align-items: flex-start; + flex-direction: column; + } +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + + *, + *::before, + *::after { + scroll-behavior: auto !important; + transition-duration: 0.01ms !important; + } +} diff --git a/assets/sopify-site.js b/assets/sopify-site.js new file mode 100644 index 00000000..6f3247e8 --- /dev/null +++ b/assets/sopify-site.js @@ -0,0 +1,52 @@ +(function () { + "use strict"; + + async function copyText(text) { + if (navigator.clipboard && window.isSecureContext) { + try { + await navigator.clipboard.writeText(text); + return; + } catch (error) { + // Permission may be denied even when the API exists; use the local fallback. + } + } + + const textarea = document.createElement("textarea"); + textarea.value = text; + textarea.setAttribute("readonly", ""); + textarea.style.position = "fixed"; + textarea.style.opacity = "0"; + document.body.appendChild(textarea); + textarea.select(); + const copied = document.execCommand("copy"); + textarea.remove(); + + if (!copied) { + throw new Error("Copy command was not available"); + } + } + + document.querySelectorAll("[data-copy-target]").forEach(function (button) { + const defaultLabel = button.textContent.trim(); + const successLabel = button.getAttribute("data-copy-success") || "Copied"; + const errorLabel = button.getAttribute("data-copy-error") || "Select command"; + + button.addEventListener("click", async function () { + const target = document.getElementById(button.getAttribute("data-copy-target")); + if (!target) { + return; + } + + try { + await copyText(target.textContent.trim()); + button.textContent = successLabel; + } catch (error) { + button.textContent = errorLabel; + } + + window.setTimeout(function () { + button.textContent = defaultLabel; + }, 1800); + }); + }); +})(); diff --git a/assets/sopify-workflow-cn.svg b/assets/sopify-workflow-cn.svg index 8fd79cee..4b0a205c 100644 --- a/assets/sopify-workflow-cn.svg +++ b/assets/sopify-workflow-cn.svg @@ -1,101 +1,99 @@ - - - - - - - - - -Sopify — 工作流与检查点 -(Evidence-driven · Checkpoint-based) - -用户输入 - -协议入口 - -路由 - -咨询 / 问答 - -代码任务 - -复杂度 - -快速修复 - -轻量迭代 - -完整三阶段流程 - -需求分析 - -方案设计 - -实现 -↓ 检查点详情 - -输出 + 交接 - -.sopify/state/ - - - - - - - - - - - - - - - - -检查点详情 — 完整三阶段流程 - -需求分析 - - -缺少 -事实? - -No - -方案设计 - - -设计 -分支? - -No - -实现 - -Yes - -Yes - -answer_questions - -confirm_decision - -恢复 - -恢复 - -核心规则: -缺少事实 → 停下来问(不猜测)· 设计分支 → 暂停等待确认 - -图例 - -协议 - -汇聚 - -检查点 - \ No newline at end of file + + Sopify 请求路由与托管任务恢复流程 + 只读咨询给出结论和证据后停车,快速修复保持局部,托管方案经过分析、设计、开发和收口,并从项目证据恢复。 + + + + + + + + + + 一个请求,匹配刚刚好的工作流 + Sopify 按当前请求路由,不被旧方案状态带偏。 + + + + + + + + + 你的当前请求 + + + 按当前请求路由,不被旧方案状态带偏 + + + 直接请求 · 只读 + 咨询 / 查看 + 给出结论和证据,然后停车。 + + 不写方案 · state · Git index + + + 局部修改 + 快速修复 + 修改 → 聚焦验证 → 报告 + + 不自动接续旧方案 + + + 托管任务 + 新建或继续方案 + + + + + + 分析 + 设计 + 开发 + 收口 + + + 缺事实或待决策时先停车 + + + 托管任务恢复链 · 仅继续 / 收口时读取 + + + + + + active_plan + 可选本地指针 + plan.md + 语义真相 + current_handoff + 可选恢复提示 + receipts/ + 已验证证据 + + + + + 方案与收据纳入 Git;state 指针仅在本地,缺失也可恢复。 + diff --git a/assets/sopify-workflow.svg b/assets/sopify-workflow.svg index ab2608b5..2f16002d 100644 --- a/assets/sopify-workflow.svg +++ b/assets/sopify-workflow.svg @@ -1,102 +1,99 @@ - - - - - - - - - -Sopify — Workflow & Checkpoints -(Evidence-driven task lifecycle · Checkpoint-based execution) - -User Input - -Protocol Entry - -Route - -Consult / Q&A - -Code Task - -Complexity - -Quick Fix - -Light Iteration - -Full Three-Phase Flow - -Requirements - -Solution Design - -Implementation -↓ Checkpoint detail - -Output + Handoff - -.sopify/state/ - - - - - - - - - - - - - - - - -Checkpoint Detail — Full Three-Phase Flow - -Requirements -Analysis - - -Missing -facts? - -No - -Solution Design - - -Design -branch? - -No - -Implementation - -Yes - -Yes - -answer_questions - -confirm_decision - -resume - -resume - -Core Rule: -Missing facts → stop and ask (never guess) · Design branch → pause for confirmation - -Legend - -Protocol - -Converge - -Checkpoint - \ No newline at end of file + + Sopify request routing and managed resume workflow + Direct read-only questions stop after an evidence-based answer. Quick fixes stay scoped. Managed plans pass through analyze, design, develop, and finalize, and resume from repository evidence. + + + + + + + + + + One request. The right amount of workflow + Sopify routes by what you ask now—not by stale task state. + + + + + + + + + Your request + + + Route by the request — not by stale plan state + + + DIRECT · READ ONLY + Consult / inspect + Answer with evidence, then stop. + + No plan · no state · no Git index + + + SCOPED CHANGE + Quick Fix + Change → focused verify → report + + Does not resume an old plan + + + MANAGED WORK + Plan or continue + + + + + + Analyze + Design + Develop + Finalize + + + Pauses for missing facts or decisions + + + MANAGED RESUME · CONTINUE / FINALIZE ONLY + + + + + + active_plan + optional local pointer + plan.md + semantic truth + current_handoff + optional resume hint + receipts/ + verified evidence + + + + + Plans and receipts are Git tracked. State pointers are local and may be absent. + diff --git a/index.html b/index.html new file mode 100644 index 00000000..d30e065b --- /dev/null +++ b/index.html @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + Sopify — Resumable, traceable AI coding + + + + + + + +

+ +
+
+
+

Sopify / workflow protocol

+

Resumable, traceable AI coding

+

+ Ask before writing. Resume after approval. Plans, decisions, and verification evidence stay + with your repo—even when you switch AI coding tools. +

+ +

No new editor. No new CLI. Start with ~go in the host you already use.

+
+ +
+ Hand-drawn Sopify workspace showing an AI workflow that pauses, records a plan, and resumes +
plan → checkpoint → handoff → resume
+
+
+ +
+
+

What it prevents

+

Move fast without avoidable rework

+

Sopify keeps fast AI coding from outrunning the facts, the decision, or the project history.

+
+ +
+
+ 01 / ASK +

Premature coding

+

When a requirement or key choice is unresolved, Sopify pauses instead of guessing.

+
+
+ 02 / RESUME +

Lost context

+

Plans and evidence live with the repo, so a new session, tool, machine, or teammate can continue from the same record.

+
+
+ 03 / TRACE +

Forgotten decisions

+

Requirements, tradeoffs, reviews, and verification evidence remain inspectable project assets.

+
+
+
+ +
+
+

How it works

+

A workflow with deliberate stopping points

+

Simple requests stay simple. Work that needs a plan moves through four explicit stages and pauses when you need to decide.

+
+ +
+
+ STEP 01 +

Analyze

+

Clarify the outcome, evidence, and unresolved boundaries.

+
+
+ STEP 02 +

Design

+

Choose the smallest sufficient path and make decisions visible.

+
+
+ STEP 03 +

Develop

+

Implement the approved tasks and attach focused verification.

+
+
+ STEP 04 +

Finalize

+

Close the plan only when delivery evidence is ready.

+
+
+ +
+ Sopify workflow showing direct requests, managed plans, checkpoints, and finalization +
+
+ +
+
+
+

Product form

+

The host executes. Sopify keeps the work resumable

+

+ Sopify is a workflow protocol layer for the AI coding host you already use. It supplies shared rules and + preserves plans, decisions, and verification evidence as project files in .sopify/. +

+

+ Ask to continue or run ~go in a supported host to resume an unfinished plan. A local handoff pointer + provides a same-workspace resume hint. +

+ .sopify/plan/… +
    +
  • Codex · verified
  • +
  • Claude · verified
  • +
  • Qoder · verified
  • +
  • Copilot · baseline
  • +
+
+ + Sopify architecture showing host adapters, shared workflow skills, writer boundaries, and repository state + Open the technical architecture → + +
+
+ +
+
+

Install

+

Add Sopify to the host you already use

+

The installer checks for Python 3.11 or newer before downloading. You can inspect the script before running it.

+
+ +
+
+
+ + +
+
curl -fsSL https://github.com/evidentloop/sopify/releases/latest/download/install.sh | bash -s -- --target codex:en-US
+
+ + +
+ + +
+ +
+
+

FAQ

+

The short version

+
+ +
+
+ Is Sopify another editor or agent CLI? +

No. Sopify installs workflow instructions and project conventions into supported AI coding hosts.

+
+
+ Does every question start a plan? +

No. Ordinary questions and small fixes are handled directly. Sopify resumes an unfinished plan only when you ask to continue or use ~go.

+
+
+ What actually travels with the repo? +

Plans, decisions, and verification receipts can be tracked under .sopify/. The active-plan and handoff pointers stay gitignored by design.

+
+
+ Does switching hosts give every host identical capabilities? +

Codex, Claude, and Qoder have protocol-verified paths. Copilot currently has baseline prompt support; its payload path is more limited.

+
+
+ Is EvidentLoop required? +

No. Sopify works on its own. EvidentLoop is an optional companion for auditable reviews of local Git changes.

+
+
+
+
+ + + + diff --git a/installer/hosts/base.py b/installer/hosts/base.py index eea23dc1..c6c8b341 100644 --- a/installer/hosts/base.py +++ b/installer/hosts/base.py @@ -257,6 +257,30 @@ def _install_single_file_assets( _TEXT_SUFFIXES = {".md", ".py", ".yaml", ".yml", ".txt", ".json", ".toml"} _SKILL_DIRS_ORDER = ("analyze", "design", "develop", "kb", "templates") +_SINGLE_FILE_SCRIPT_HEADINGS = { + "## 确定性逻辑(脚本优先)", + "## Deterministic logic first", +} + + +def _render_single_file_skill_entry(content: str) -> str: + """Remove tree-only script navigation from a flattened skill entry.""" + rendered: list[str] = [] + skipping_script_section = False + for line in content.splitlines(): + if line in _SINGLE_FILE_SCRIPT_HEADINGS: + skipping_script_section = True + continue + if skipping_script_section: + if line.startswith("## "): + skipping_script_section = False + else: + continue + if "`scripts/" in line: + continue + line = line.replace("references/assets/scripts", "references/assets") + rendered.append(line) + return "\n".join(rendered).rstrip("\n") def render_single_file( @@ -294,10 +318,13 @@ def render_single_file( skill_md = skill_dir / "SKILL.md" if not skill_md.is_file(): continue - skill_content = skill_md.read_text(encoding="utf-8").rstrip("\n") + skill_content = _render_single_file_skill_entry( + skill_md.read_text(encoding="utf-8") + ) parts.append(skill_content) - # Inline text assets from references/, assets/, scripts/ - for subdir_name in ("references", "assets", "scripts"): + # Scripts are tree-only executable helpers. The flattened product keeps + # the equivalent rules from references/ and the user-facing assets. + for subdir_name in ("references", "assets"): subdir = skill_dir / subdir_name if not subdir.is_dir(): continue diff --git a/skills/en/header.md.template b/skills/en/header.md.template index 1e7839a8..dca8afb8 100644 --- a/skills/en/header.md.template +++ b/skills/en/header.md.template @@ -90,6 +90,7 @@ Next: {Next step hint} - Detailed content in files - Avoid redundant descriptions - The title line can be lightly colored via `title_color` (title line only); fallback to plain text when color is unsupported +- `consult_readonly` gives the conclusion and necessary evidence, includes blockers or decisions only when they exist, then stops. It writes no code, plan, state, knowledge base, audit, receipt, or Git index. ### C3 | Workflow Modes @@ -244,99 +245,9 @@ progressive: Create files as needed (default) --- -## Phase Execution +## Phase Routing -### P1 | Requirements Analysis - -**Goal:** Verify requirement completeness, analyze code status - -**Execution Flow:** -``` -1. Check knowledge base status -2. Acquire project context -3. Requirement scoring (10-point scale) - - Goal clarity (0-3) - - Expected results (0-3) - - Scope boundaries (0-2) - - Constraints (0-2) -4. Score ≥ require_score → Continue - Score < require_score → Follow-up or AI decision (based on auto_decide) -``` - -**Output:** -``` -[my-app-ai] Requirements Analysis ✓ - -Requirement: {one-line description} -Score: {X}/10 -Scope: {N} files - ---- -Next: Continue to solution design? (Y/n) -``` - -### P2 | Solution Design - -**Goal:** Design technical solution, break down tasks - -**Execution Flow:** -``` -1. Read design Skill -2. Determine plan package level (light/standard/architecture) -3. Generate plan files -4. Output summary -``` - -**Output:** -``` -[my-app-ai] Solution Design ✓ - -Plan: .sopify/plan/20260115_feature/ -Summary: {one-line technical solution} -Tasks: {N} items -Solution quality: {X}/10 -Implementation readiness: {Y}/10 -Scoring rationale: {1 line} - ---- -Changes: 3 files - - .sopify/plan/20260115_feature/plan.md - - .sopify/plan/20260115_feature/tasks.md - - .sopify/plan/20260115_feature/design.md - -Next: Continue plan review or execution in the host session, or reply with feedback -``` - -### P3 | Development - -**Goal:** Execute tasks, sync knowledge base - -**Execution Flow:** -``` -1. Read develop Skill -2. Execute in tasks.md order -3. Update knowledge base -4. Mark the plan ready_to_archive and keep it in plan/ -5. Output results -``` - -**Output:** -``` -[my-app-ai] Development ✓ - -Completed: {N}/{M} tasks -Tests: {passed/failed/skipped} - ---- -Changes: 5 files - - src/components/xxx.vue - - src/types/index.ts - - src/hooks/useXxx.ts - - .sopify/blueprint/design.md - - .sopify/plan/20260115_feature/plan.md - -Next: Please verify the functionality; run ~go finalize explicitly when the plan should be archived -``` +The host selects the current entry and loads the matching skill. Phase decisions, output shape, and resource navigation come from that skill. The header keeps routing, protocol, authorization, and the shared footer contract without duplicating phase procedures or templates. --- @@ -348,9 +259,9 @@ Next: Please verify the functionality; run ~go finalize explicitly when the plan | `design` | Enter solution design | Plan generation, task breakdown | | `develop` | Enter development | Code execution, KB sync | | `kb` | Knowledge base operations | Init, update strategies | -| `templates` | Create documents | All template definitions | +| `templates` | Create KB documents | Knowledge-base templates and navigation | -**Loading:** The above are all current builtin skills — workflow skills consumed as prompt/skill assets by the host. Standalone invocation is not supported. The authoritative skill catalog is `skills/catalog/builtin_catalog.generated.json`. +**Loading:** These are the current builtin skills consumed by the host. The host may also route a request directly to one skill. They share Sopify's protocol and writing boundaries; they are not five standalone products. The authoritative skill catalog is `skills/catalog/builtin_catalog.generated.json`. --- diff --git a/skills/en/skills/sopify/analyze/SKILL.md b/skills/en/skills/sopify/analyze/SKILL.md index 52a89f44..d46db9f1 100644 --- a/skills/en/skills/sopify/analyze/SKILL.md +++ b/skills/en/skills/sopify/analyze/SKILL.md @@ -5,7 +5,7 @@ description: Analyze phase entry. Aggregates scoring, follow-up, and scope-check # Analyze (Entry) -> Core philosophy: Distinguish the user's "goal" from their "implementation path" — only commit to the goal. +> Read the evidence first, then separate the objective, deliverable, and candidate path. ## When to activate @@ -15,11 +15,11 @@ description: Analyze phase entry. Aggregates scoring, follow-up, and scope-check ## Execution skeleton 1. Load `references/analyze-rules.md` first. -2. Run Phase A (KB check, context acquisition, requirement typing, completeness scoring). +2. Read user-supplied material and relevant code, separate the objective, deliverable, and candidate path, then score completeness. 3. If the score is below threshold, follow `auto_decide`: - `false`: ask follow-up questions with `assets/question-output.md`. - `true`: state explicit assumptions, then continue. -4. After the score passes, run Phase B (objective extraction, code analysis, technical prep). +4. After the score passes, hand off confirmed success criteria, scope, evidence, and unknowns that could still affect the result. 5. Render the phase summary with `assets/success-output.md`. ## Resource navigation diff --git a/skills/en/skills/sopify/analyze/assets/success-output.md b/skills/en/skills/sopify/analyze/assets/success-output.md index 2a1f8776..365aada3 100644 --- a/skills/en/skills/sopify/analyze/assets/success-output.md +++ b/skills/en/skills/sopify/analyze/assets/success-output.md @@ -1,19 +1,22 @@ [{BRAND_NAME}] Requirements Analysis ✓ -Requirement: {one-line description} -Type: {requirement type} +Objective: {one-line description} +Deliverable: {current deliverable} Score: {X}/10 Scope: {estimated file count} -Assumptions: - - {assumption} (source: {code analysis / user input / AI supplement}) +Confirmed evidence: + - {evidence} (source: {user material / code / governing contract}) -Identified gaps: +Assumptions used to continue (omit when none): + - {assumption} (safe to proceed because: {low-risk and reversible basis}) + +Material gaps (omit when none): - {gap} (impact: {impact}, recommendation: {action}) -Next step rationale: {why proceed to design / need follow-up / can execute directly} +Next step rationale: {why proceed to Design / ask a follow-up / handle as a quick fix or consult} --- Changes: 0 files -Next: Continue to solution design? (Y/n) +Next: {next action} diff --git a/skills/en/skills/sopify/analyze/references/analyze-rules.md b/skills/en/skills/sopify/analyze/references/analyze-rules.md index 17de5da0..da8d6831 100644 --- a/skills/en/skills/sopify/analyze/references/analyze-rules.md +++ b/skills/en/skills/sopify/analyze/references/analyze-rules.md @@ -1,104 +1,55 @@ -# Analyze Detailed Rules +# Analyze Rules ## Goal -Verify requirement completeness, analyze the current codebase, and provide stable input for downstream design. +Turn the request and accessible evidence into a stable objective, deliverable, and boundary for host routing or Design. Analyze decides what must be solved; it does not choose the implementation. -## Overall flow +## 1. Read evidence first -```text -Phase A (steps 1-4) -> check score >= require_score? - ├─ yes -> Phase B (steps 5-6) -> render summary - └─ no -> check auto_decide - ├─ true -> continue with explicit assumptions - └─ false -> ask follow-up questions and wait for user input -``` +1. Read the current request, material and links the user supplied, and confirmed long-term preferences. +2. As the task requires, read relevant evidence supplied by the user or available in the current environment, such as documents, API material, designs, code, tests, previous plans, and governing protocols. These examples are not an exhaustive source list. Do not ask for an answer already present in accessible evidence. +3. Separate the desired outcome, the deliverable for this task, and any suggested implementation path. A suggested path becomes a boundary only when the user states it as one. +4. When sources conflict, state the conflict, its effect on this delivery, and a recommendation. Do not block on differences that cannot change the result. -## Phase A: Requirement assessment +The `kb` skill owns knowledge-base loading and materialization. Analyze consumes only the context relevant to the current objective. -### Step 1: Check knowledge-base status +## 2. Assess completeness -- Condition: project code exists and the task is not "new project bootstrap". -- Action: check whether `.sopify/` exists. -- Mark the KB as missing when the directory does not exist. +The score totals 10 points: goal clarity 0–3, expected outcome 0–3, scope boundary 0–2, and constraints 0–2. -### Step 2: Acquire project context +- `score >= require_score`: continue and prepare the handoff. +- Below the threshold with `auto_decide=true`: make only explicit assumptions that are low-risk, reversible, and do not change the objective. +- Below the threshold with `auto_decide=false`: stop and ask. -- Read `.sopify/user/preferences.md` and KB files first. -- Scan the codebase only when KB context is insufficient. -- Follow the `kb` skill for KB-specific rules. +Ask only when the answer can change the objective, deliverable, scope, success criteria, or whether the current path is safe to execute. Explain the impact of each question. Let the evidence determine the number of questions. -Preference rules: +## 3. Prepare the handoff -1. Use only explicit long-term user preferences. -2. Current-task instructions override historical preferences. -3. Fall back to defaults when no preference matches. +Analyze returns: -### Step 3: Determine requirement type +- A one-sentence objective and the current deliverable. +- Confirmed success criteria, scope, and constraints. +- The key material or code evidence behind the conclusion. +- Unknowns that can still change the result; omit this section when there are none. +- The reason to continue as a consult, quick fix, or Design task. -Candidate types: +If the suggested path clearly adds cost or risk, Analyze may identify a safer direction and its tradeoff. Design still owns the technical choice. -1. New project bootstrap -2. New feature development -3. Feature modification / enhancement -4. Bug fix -5. Refactor / optimization -6. Technical change +## 4. Routing signal -### Step 4: Score requirement completeness +- Clear, simple work, usually no more than 2 files: quick fix may be enough. +- Local work that needs a plan, usually 3–5 files: light plan. +- More than 5 files, a new feature, cross-module work, or architecture change: standard or architecture Design. -Scoring dimensions (10 total): +File count is a signal, not an override for safety, protocol, or actual complexity. -- Goal clarity: 0-3 -- Expected outcome: 0-3 -- Scope boundary: 0-2 -- Constraints: 0-2 +Workflow transition: -Scoring rules: +- In `strict` mode, render the Analyze summary and wait for confirmation before Design. +- In `adaptive` mode, return the routing signal to the host, which follows the current request and protocol state. -- `score >= require_score`: continue to Phase B. -- `score < require_score` and `auto_decide=true`: continue with explicit assumptions. -- `score < require_score` and `auto_decide=false`: ask follow-up questions with `assets/question-output.md`. +## Boundaries -Follow-up rules: - -1. Do not ask for information that code can already provide. -2. Ask only for user-facing gaps: business logic, target behavior, constraints. -3. Ask 3-5 questions. -4. Do not re-ask preferences that are already captured as long-term preferences. - -## Phase B: Code analysis - -### Step 5: Extract key objectives - -- Compress the request into one core objective sentence. -- Distinguish whether the user provided a real goal or only an implementation path. -- When the input is mostly a path, treat that path as a candidate approach rather than the success criterion itself. -- Define verifiable success criteria, and close them in a SMART-style form: deliverable, boundary, constraints, verification, and next stop-point. - -### Step 6: Code analysis and technical preparation - -- Estimate project and change scale. -- Locate related modules and key files. -- Run baseline quality checks (stale information, security risks). -- Pull external documentation only when necessary. - -Stable subset rules: - -1. When the goal is still fuzzy, clarify key facts first; only continue with explicit assumptions when `auto_decide=true`. -2. When the current path is clearly suboptimal, include at least one lower-cost or lower-risk alternative in the analysis summary. -3. Every alternative path should state the tradeoff instead of giving a bare conclusion. -4. Do not force deep challenge mode for `quick_fix`, pure state explanation, or lightweight consult flows. - -## Adaptive routing - -- Simple task (`<=2` files and clear scope): go straight to quick fix. -- Medium task (`3-5` files): enter the light plan path. -- Complex task (`>5` files or architectural change): enter full design. - -## Phase transitions - -- Score below threshold and no auto-decide: keep asking until the score passes or the user cancels. -- `workflow.mode=strict`: render summary and wait for confirmation. -- `workflow.mode=adaptive`: continue automatically according to complexity. -- User says `cancel`: terminate with the cancellation path. +- Do not generate a plan package or modify code. +- Do not add host intent types, keyword rules, or regex routing. +- The host handles `consult_readonly` through the existing protocol; Analyze does not turn a read-only request into a write path. diff --git a/skills/en/skills/sopify/design/SKILL.md b/skills/en/skills/sopify/design/SKILL.md index 45d97daa..86dcba59 100644 --- a/skills/en/skills/sopify/design/SKILL.md +++ b/skills/en/skills/sopify/design/SKILL.md @@ -5,7 +5,7 @@ description: Design phase entry. Aggregates plan-level selection, task breakdown # Design (Entry) -> Core philosophy: A plan's value lies in the clarity of its trade-offs, not in its coverage. +> Check the current system first, then choose the smallest sufficient path. ## When to activate @@ -15,10 +15,11 @@ description: Design phase entry. Aggregates plan-level selection, task breakdown ## Execution skeleton 1. Load `references/design-rules.md`. -2. Decide `light/standard/architecture` from explicit change signals. -3. Generate the plan files from the matching templates in `assets/`. -4. Produce the task list and validate task granularity. -5. Add the scoring block to the formal plan package and render the scored summary with `assets/output-summary.md`. +2. Check existing implementation, governing contracts, applicable platform capabilities, and installed dependencies. +3. Choose the smallest sufficient path and select `light/standard/architecture`. +4. Generate the plan files from the matching `assets/` templates. +5. Produce tasks with explicit dependencies and verification. +6. Report `Ready` or `Needs decision` with evidence using `assets/output-summary.md`. ## Resource navigation diff --git a/skills/en/skills/sopify/design/assets/output-summary.md b/skills/en/skills/sopify/design/assets/output-summary.md index f1f6a42b..909fe460 100644 --- a/skills/en/skills/sopify/design/assets/output-summary.md +++ b/skills/en/skills/sopify/design/assets/output-summary.md @@ -1,14 +1,13 @@ -[{BRAND_NAME}] Solution Design ✓ +[{BRAND_NAME}] Solution Design {status symbol} Plan: .sopify/plan/{YYYYMMDD}_{feature}/ -Summary: {one-line technical solution} -Tasks: {N} items -Solution quality: {X}/10 -Implementation readiness: {Y}/10 -Scoring rationale: {1 line} +Approach: {one-sentence solution} +Tasks: {N} +Readiness: {Ready / Needs decision} +Evidence: {why the path is settled, or which choice can still change scope, the solution path, or acceptance} --- Changes: {N} files - .sopify/plan/... -Next: Continue the review or execution flow in the host session, or reply with feedback +Next: {continue review or implementation; name the required choice for Needs decision} diff --git a/skills/en/skills/sopify/design/assets/plan-template.md b/skills/en/skills/sopify/design/assets/plan-template.md index e6913a35..89364b47 100644 --- a/skills/en/skills/sopify/design/assets/plan-template.md +++ b/skills/en/skills/sopify/design/assets/plan-template.md @@ -11,13 +11,8 @@ archive_ready: false # {Feature Name} -Scoring: -- Solution quality: {X}/10 -- Implementation readiness: {Y}/10 - -Scoring rationale: -- Strengths: {1 line} -- Deductions: {1 line} +Readiness: {Ready / Needs decision} +Evidence: {why the path is settled, or which choice can still change scope, the solution path, or acceptance} ## Context / Why diff --git a/skills/en/skills/sopify/design/references/design-rules.md b/skills/en/skills/sopify/design/references/design-rules.md index 3278f650..d121ed88 100644 --- a/skills/en/skills/sopify/design/references/design-rules.md +++ b/skills/en/skills/sopify/design/references/design-rules.md @@ -1,84 +1,48 @@ -# Design Detailed Rules +# Design Rules ## Goal -Design the technical solution, break work into executable tasks, and generate a replayable plan package. +Turn the objective and boundaries confirmed by Analyze into the smallest executable, verifiable solution. Design owns technical tradeoffs and task breakdown. It does not manage protocol state or implement code. -## Overall flow +## 1. Check the current system -1. Decide the plan level (`light/standard/architecture`). -2. Generate the plan file scaffold. -3. Break down tasks and mark verification criteria. -4. Render the summary and wait for the next host action. +Before proposing new implementation, inspect the existing code, callers, and tests; governing protocol, public contracts, and compatibility boundaries; applicable language or platform capabilities; and dependencies already installed and used by the project. -## Step 1: Decide the plan level +This is not a fixed technology ladder. The goal is to avoid duplicate capability and unnecessary dependencies without weakening correctness, safety, or user value. -Auto-detection rules (`plan.level=auto`): +## 2. Choose the smallest sufficient solution -- `light`: 3-5 files, no architectural change, scope is explicit. -- `standard`: more than 5 files, or a new feature, or a cross-module change. -- `architecture`: architectural change, major refactor, or new system design. +- State the recommended path, its material tradeoffs, and explicit non-goals. +- Prefer the narrowest shared boundary; explain why a cross-module change is necessary when it is. +- Do not build frameworks, state, or extension points for hypothetical future work. +- Ask the user only about choices that can change scope, the solution path, or acceptance. Develop may decide reversible implementation details within the approved boundary. -## Step 2: Generate plan files +## 3. Select the plan level -- `light`: generate `plan.md`. -- `standard`: generate `plan.md + tasks.md`. -- `architecture`: generate `plan.md + tasks.md + design.md`. -- Every formal package puts its `level` frontmatter, semantic entry, and scoring block in `plan.md`. -- Create ADRs, diagrams, assets, and receipts only when evidence requires them; no level requires empty supporting directories. -- the plan summary must also surface: - - `Solution quality` - - `Implementation readiness` - - `Scoring rationale` +- `light`: `plan.md` for clear local work. +- `standard`: `plan.md + tasks.md` for a feature, cross-module work, or substantial delivery. +- `architecture`: `plan.md + tasks.md + design.md` only for an actual architecture change, new system, or major refactor. -Template sources live in `assets/`: +Create ADRs, diagrams, assets, and receipts only when evidence requires them. Plan-body templates come only from this skill's `assets/` directory. -1. `assets/plan-template.md` -2. `assets/tasks-template.md` -3. `assets/design-template.md` -4. `assets/adr-template.md` (only for an actual architecture decision) +## 4. Determine readiness -## Step 3: Break down tasks +- `Ready`: no unresolved user choice can still change scope, the solution path, or acceptance. State the supporting evidence. +- `Needs decision`: list the concrete options, their impact, and a recommendation, then stop. -Task constraints: +A dynamic version, Git delivery, release, or another irreversible action is an execution checkpoint. It does not make a settled plan `Needs decision` by itself. -1. Each task should fit within about 30 minutes. -2. Each task must have a verifiable completion criterion. -3. Dependencies must be explicit. +Workflow transition: -Suggested categories: +- In `strict` mode, render the Design summary and wait for confirmation before Develop. +- In `adaptive` mode, `~go` may continue through the host workflow; `~go plan` stops after the summary. -1. Core feature work -2. Supporting work -3. Security checks -4. Testing -5. Documentation updates (`project.md / blueprint/*`) +## 5. Break down tasks -Task markers: +Each task needs a clear deliverable, dependency, and acceptance method. Follow real boundaries instead of splitting work to fit an arbitrary duration. Include documentation and knowledge sync only when the plan's `knowledge_sync` requires them. -- `[ ]` pending -- `[x]` completed -- `[-]` skipped -- `[!]` blocked +Task markers: `[ ]` pending, `[x]` completed, `[-]` skipped, `[!]` blocked. -## Phase transitions +## Protocol boundary -- `workflow.mode=strict`: render the summary and wait for confirmation. -- `workflow.mode=adaptive`: - - `~go`: continue into execution confirmation or the downstream host flow. - - `~go plan`: stop after rendering the plan summary. -- If the user gives plan feedback, stay in this phase, update the files, and render again. - -## Protocol entry boundary - -Plan structure and task splitting are owned by this skill; protocol state writes (active_plan / current_handoff / receipts) go through `sopify_writer`, not this skill directly. - -## Naming rules - -Plan directory format: `YYYYMMDD_feature_name` - -Examples: - -- `20260115_user_auth` -- `20260115_fix_login_bug` -- `20260115_refactor_api` +Design creates or updates plan semantic files only. The host writes `active_plan`, handoff, and receipts through `sopify_writer` under the governing protocol. diff --git a/skills/en/skills/sopify/develop/references/develop-rules.md b/skills/en/skills/sopify/develop/references/develop-rules.md index 0a335c92..8bab4015 100644 --- a/skills/en/skills/sopify/develop/references/develop-rules.md +++ b/skills/en/skills/sopify/develop/references/develop-rules.md @@ -46,6 +46,9 @@ Hard requirements: - No verification evidence means the task is not complete. - Subjective claims such as `overbuild`, `underbuild`, or "it should be fine" never replace verification or review evidence. - Do not silently skip verification and do not retry indefinitely. +- For a bug or shared-boundary change, inspect affected callers, fix the narrowest common root cause, and verify equivalent paths. +- Develop decides reversible implementation details inside the approved boundary. Replan only when new facts change scope, the solution path, or acceptance. +- When a Quick Fix has no Design artifact, make only the local choices required for the request. Do not create a plan or copy the full Design rules. ### 2.2 Minimum verify contract @@ -160,37 +163,7 @@ After completing the two-stage review, before outputting the final summary: ## Step 3: Sync the knowledge base -Sync timing: - -1. After each module-level task batch. -2. Once again during phase close-out. - -Sync targets: - -- `project.md` -- `blueprint/background.md` -- `blueprint/design.md` -- `blueprint/tasks.md` -- `user/preferences.md` (long-term preferences only) -- `user/feedback.jsonl` - -Formal rule: - -- `knowledge_sync.skip`: no sync required -- `knowledge_sync.review`: at least review before finalize -- `knowledge_sync.required`: finalize must block until updated - -Conservative preference writes: - -Allowed: - -- Explicit long-term user preferences such as "use this by default going forward". - -Disallowed: - -- One-off instructions. -- Guesses from incomplete context. -- Generalized conclusions unrelated to the task. +During implementation close-out, invoke KB, apply the current plan's declared `knowledge_sync`, and record the result. KB is the sole owner of sync targets, long-lived knowledge criteria, and preference-write policy; Develop does not redefine them here. ## Step 4: Plan completion state diff --git a/skills/en/skills/sopify/kb/SKILL.md b/skills/en/skills/sopify/kb/SKILL.md index e8b2ac9d..060fe2ca 100644 --- a/skills/en/skills/sopify/kb/SKILL.md +++ b/skills/en/skills/sopify/kb/SKILL.md @@ -1,126 +1,61 @@ --- name: kb -description: Knowledge base management skill; read during KB operations; includes init, update, sync strategies +description: Manage long-lived `.sopify/` knowledge, including bootstrap, progressive materialization, reads, retention, and knowledge_sync policy. --- -# Knowledge Base Management - V2 Rules +# Knowledge Base Management -**Goal:** manage the V2 layers in `.sopify/` so long-lived knowledge, the active plan, and finalized archives stay clearly separated. +KB owns long-lived knowledge. It does not make Analyze, Design, or Develop decisions, and it does not manage the active plan, handoff, receipts, or finalize directly. Document structures come from Templates; protocol state is managed through `sopify_writer`. -## Knowledge Base Structure +## Directory responsibilities ```text .sopify/ -├── blueprint/ -│ ├── README.md # Pure index page with index-required sections only -│ ├── background.md # Long-term goals, scope, non-goals -│ ├── design.md # Module / host / directory / consumption contracts -│ └── tasks.md # Unfinished long-term items and explicit deferrals -├── project.md # Project technical conventions -├── user/ -│ ├── preferences.md # Long-term user preferences -│ └── feedback.jsonl # Raw feedback events -├── plan/ -│ └── YYYYMMDD_feature/ # Current active plan -├── history/ -│ ├── index.md # Archive index -│ └── YYYY-MM/ -└── state/ # Runtime machine truth +├── project.md # reusable technical conventions +├── user/ # long-term preferences and raw feedback +├── blueprint/ # long-term goals, design boundaries, open work, and index +├── plan/ # current plan semantic files +├── history/ # archived plans and index +└── state/ # local protocol state ``` -## Initialization Strategy +`blueprint/README.md` keeps only status, maintenance guidance, current goal, current focus, and reading links. Put detailed content in the relevant blueprint file. -### Full mode (`kb_init: full`) +## Bootstrap and progressive materialization -Create on the first bootstrap: +`kb_init: full` creates `project.md`, `user/preferences.md`, `user/feedback.jsonl`, and the four blueprint files on first use. It does not pre-create plan content, history, or empty directories. -```yaml -Create: - - .sopify/project.md - - .sopify/user/preferences.md - - .sopify/user/feedback.jsonl - - .sopify/blueprint/README.md - - .sopify/blueprint/background.md - - .sopify/blueprint/design.md - - .sopify/blueprint/tasks.md -``` - -Notes: - -- Do not pre-create `plan/` content. -- Do not pre-create `history/index.md` or any archive. +`kb_init: progressive` is the default: -### Progressive mode (`kb_init: progressive`) [default] +- First real project use: create `project.md`, `user/preferences.md`, and `blueprint/README.md`. +- First plan lifecycle: add `blueprint/background.md`, `blueprint/design.md`, `blueprint/tasks.md`, and the current plan directory. +- First explicit `~go finalize`: let the protocol flow create `history/index.md` and the archive directory. +- First explicit long-term feedback: create `user/feedback.jsonl` when needed. -Materialize by lifecycle: +## Knowledge context reads -```yaml -First real-project trigger: - - .sopify/project.md - - .sopify/user/preferences.md - - .sopify/blueprint/README.md - -First plan lifecycle: - - .sopify/blueprint/background.md - - .sopify/blueprint/design.md - - .sopify/blueprint/tasks.md - - .sopify/plan/YYYYMMDD_feature/ - -First explicit ~go finalize: - - .sopify/history/index.md - - .sopify/history/YYYY-MM/YYYYMMDD_feature/ - -First explicit long-term preference: - - .sopify/user/feedback.jsonl -``` - -## Read Order +The host completes the governing Protocol entry for a managed plan, handoff, and receipts before invoking KB. This section defines only KB's long-lived context order: 1. `project.md` 2. `user/preferences.md` 3. `blueprint/README.md` -4. `blueprint/background.md` -5. `blueprint/design.md` -6. `blueprint/tasks.md` -7. `state/active_plan.json` → `plan//plan.md` - -Rules: +4. Relevant parts of `blueprint/background.md`, `design.md`, and `tasks.md` -- consult / clarification routes prefer `L0/L1` and must not require deep blueprint files -- planning / develop may enter `L2 active plan` -- `active_plan.json` provides only `plan_id`; `plan.md` is the active plan's semantic entry. Read handoff and receipts only when continuation needs them, and never fall back to the retired current-plan projection. -- `history/` is not the default long-lived context source; read it only for finalize lookups or human traceability +Consult and quick fix do not fail when deep blueprint files are absent. Read `history/` only for trace-back or finalize. -## Update Rules +## Retention and updates -### L0 Index Guardrails +Keep information only when it remains useful across tasks: -- `blueprint/README.md` keeps only `status / maintenance / current goal / current focus / read next`. -- Do not write absolute workspace paths, long-form architecture prose, or formal contract bodies into `blueprint/README.md`. -- If extra long-lived topic docs exist at the `blueprint/` root, `blueprint/README.md` must list them explicitly. +- `project.md`: reusable technical conventions. +- `background.md`: long-term goals, scope, and non-goals. +- `design.md`: module, host, directory, and consumption contracts. +- `tasks.md`: unfinished long-term work and explicit deferrals with a revisit condition. +- `preferences.md`: explicit long-term user preferences. -### `blueprint/tasks.md` Boundaries +Do not store one-off implementation details, current-plan task breakdowns, temporary tradeoffs, completed tasks, or copies of history content. When code and documentation conflict, verify the code and then correct the documentation. Current user instructions override historical preferences. -- Keep only unfinished long-term items and explicit deferrals. -- `[x]` completed items must not remain in `blueprint/tasks.md`. - -### Must update - -- `project.md`: reusable technical conventions changed -- `blueprint/background.md`: long-term goals, scope, or non-goals changed -- `blueprint/design.md`: module, host, directory, or consumption contracts changed -- `blueprint/tasks.md`: unfinished long-term items or explicit deferrals changed -- `user/preferences.md`: the user explicitly stated a long-term preference - -### Must not be written into long-lived knowledge - -- one-off implementation details -- short-term task breakdown from the current plan -- temporary tradeoffs that belong only to this task -- completed task checklists lingering in `blueprint/tasks.md` -- copying history body text back into blueprint - -## `knowledge_sync` Sync Contract +## `knowledge_sync` ```yaml knowledge_sync: @@ -130,48 +65,12 @@ knowledge_sync: tasks: skip|review|required ``` -Execution rules: - -- `skip`: no sync required for this round -- `review`: at least review before finalize -- `required`: finalize must block until updated - -## Conflict Handling - -- code vs docs: code is the source of truth, then update docs -- current task vs long-term preference: current explicit task > `user/preferences.md` > default rules - -## Output Format - -**Initialization complete:** - -```text -[{BRAND_NAME}] Knowledge Base Init ✓ - -Created: {N} files -Strategy: {full/progressive} - ---- -Changes: {N} files - - .sopify/project.md - - .sopify/blueprint/README.md - - ... - -Next: KB is ready -``` - -**Sync complete:** +- `skip`: do not inspect that file for this plan. +- `review`: decide whether it needs an update before finalize. +- `required`: update it before the delivery candidate; block finalize while incomplete. -```text -[{BRAND_NAME}] Knowledge Base Sync ✓ +KB applies the plan's sync policy without changing the plan lifecycle. Update the narrowest long-lived location and avoid duplicating the same content across files. -Updated: {N} files +## Output ---- -Changes: {N} files - - .sopify/project.md - - .sopify/blueprint/design.md - - ... - -Next: Docs updated -``` +After bootstrap or sync, state the actual result, list `Changes`, and end with `Next:`. Use `Changes: 0 files` when nothing changed. diff --git a/skills/en/skills/sopify/references/output-contract.md b/skills/en/skills/sopify/references/output-contract.md index 38946dca..5f9ac00d 100644 --- a/skills/en/skills/sopify/references/output-contract.md +++ b/skills/en/skills/sopify/references/output-contract.md @@ -1,74 +1,38 @@ # Sopify Output Contract -All stages (analyze / design / develop / consult) must follow this contract for final replies. Each section governs one output decision dimension. +The final response should make the result, evidence, and next step easy to find. Phase templates define required information, not empty sections that must always be rendered. -## 1. Output Path Responsibilities +## Output path -- **Gate summary**: Routing status from the gate/routing phase. Contains phase title, status line, Context, Changes, Next. Does not contain verification tables, review conclusions, or other skill-level content. -- **Host completion reply**: The final summary after skill execution. Must follow the corresponding template, including required sections and enhancements when triggered. -- Gate summary ≠ final reply. The gate tells the host what to do; the host outputs results per template after completing the work. +- A gate summary reports routing, current state, and the next action only. +- After a skill or consult finishes, the host renders the final response from the actual outcome. Gate text is not a delivery report. -## 2. Required Sections +## Required content -| Output Type | Required Sections | Required Tables | Status Symbol | -|------------|------------------|----------------|---------------| -| develop/success | Review conclusion, verification summary, Changes, Next | Verification table | ✓ only when all passed | -| develop/partial | Incomplete items, verification summary, Changes, Next | Incomplete table + verification table | Must use ! | -| develop/quick-fix | Verification summary, Changes, Next | Simplified verification table | ✓ only when all passed | -| analyze/success | Assumptions, identified gaps, next-step rationale, Changes, Next | — | — | -| analyze/question | Question list, Next | — | Must use ? | -| design/summary | Score lines, Changes, Next | — | — | -| consult | Changes, Next | — (adaptive) | — | +| Output | Required content | Status rule | +|--------|------------------|-------------| +| `analyze/success` | Objective, deliverable, completeness score, confirmed evidence, explicit assumptions when used, material gaps, next step | Do not mark incomplete input as complete | +| `analyze/question` | A few decision-relevant questions, their impact, `Next` | `?` | +| `design/summary` | Approach, task count, `Ready` or `Needs decision` with evidence, `Changes`, `Next` | Do not use `Ready` while a material choice remains | +| `develop/success` | Result, review conclusion, verification summary, `Changes`, `Next` | Use `✓` only when all checks pass | +| `develop/partial` | Incomplete work, reason, completed verification, `Changes`, `Next` | `!` | +| `develop/quick-fix` | Result, relevant verification, `Changes`, `Next` | Use `✓` only when all checks pass | +| `consult` | Conclusion, necessary evidence, `Changes`, `Next` | Match the actual state | -Table column rule: only show columns that carry meaningful information for the current scenario. Column omission only affects final display, not internal verification logic. `reason_code` is an internal verification field and is not shown in user-facing output. +`consult_readonly` writes no code, plan, state, knowledge base, audit, receipt, or Git index. Give the conclusion and necessary evidence first; include blockers or decisions only when they exist, then stop. -## 3. Conditional Enhancement & Format Selection +## Structure and density -Do not force structure on every scenario. Decide whether and how to enhance based on information shape and trigger conditions: +- Use short paragraphs for a simple answer or one-file change. Do not add a table merely to fill a template. +- Use a comparison table for several options, numbered steps for a process, or a tree for a directory relationship. Choose at most one main structure per response. +- Group repeated results by deliverable instead of listing the same “passed” line for every task. +- Put `Changes` before the final `Next:` line. Use `Changes: 0 files` when nothing changed. -| Trigger Condition | Recommended Format | Typical Scenarios | -|------------------|-------------------|-------------------| -| Multi-item comparison/tradeoff (>2 options) | Table | Solution tradeoffs, risk comparison, host capability comparison | -| Flow/invocation/lifecycle | Numbered sequence | SDK flows, gate → route → handoff | -| File/component/module composition | Tree structure | Component breakdown, module structure, plan file organization | -| Score dimensions need visibility | Score table | analyze scoring | -| Simple Q&A/status confirmation | Keep concise | Single question answers, status confirmations | +## Before sending -Constraint: use at most one primary structure per reply; avoid stacking table + tree + flow. - -### 3.1 Output Density Gradient - -Select output density based on scenario complexity. Avoid heavy output for simple tasks: - -| Density Level | Applicable Scenarios | Verification Summary | -|--------------|---------------------|---------------------| -| Minimal | quick-fix, single-file change, Q&A | Simplified table (≤3 columns), omit review conclusion | -| Standard | 3-5 task regular develop | Table, omit zero-info columns | -| Full | 6+ tasks or cross-module delivery | Full table + phased review conclusions | - -Density level is auto-inferred from task count and change scope; no user specification needed. - -**DO:** -- Use a comparison table when multi-option tradeoffs are present — make differences visible at a glance -- Simplify verification summary on success when all passed — omit columns with no information -- Keep plain text when information shape does not match any structure -- Trim output by density gradient: quick-fix should not produce a full verification table -- Group by deliverable when completing 3+ independent tasks; merge same conclusions into one line -- No decorative emoji in body text (verification summaries, review conclusions, Changes section) - -**DON'T:** -- Multi-option tradeoffs without comparison structure = missed enhancement -- Forcing tables on simple Q&A = over-enhancement -- Mixing two or more primary structures in one reply = cognitive overload -- Expanding 5 identical `passed` conclusions item-by-item = information dilution - -## 4. Pre-output Self-check - -Before outputting the final reply, verify: - -1. Required sections present: check §2 for the current output type. -2. Status symbol correct: `✓` only when all verifications passed with no degradation or skips; otherwise `!`. -3. Footer complete: `Changes:` + `Next:` must be present. -4. Conditional enhancement applied: if the reply meets a §3 trigger condition, use the corresponding structured format. -5. Density level matched: quick-fix should not produce a full verification table; complex delivery should not lack review conclusions. -6. Desensitization: rewrite raw `root_cause` enums as human descriptions; do not expose internal scoring weights; do not display gate/handoff JSON fields (`resolution_id`, `run_stage`, etc.). +1. Does the opening answer the current question? +2. Does the status symbol match the verification result? +3. Does `Ready / Needs decision` follow the Design rule? +4. Have empty sections, repeated conclusions, and internal fields been removed? +5. Are paths, commands, numbers, and references verifiable? +6. Are `Changes` and the final `Next:` line present? diff --git a/skills/en/skills/sopify/references/shared-writing-dna.md b/skills/en/skills/sopify/references/shared-writing-dna.md index 68d5ea60..d5539750 100644 --- a/skills/en/skills/sopify/references/shared-writing-dna.md +++ b/skills/en/skills/sopify/references/shared-writing-dna.md @@ -1,36 +1,28 @@ -# Sopify Shared Writing Standards +# Sopify Shared Writing Rules -All skills (analyze / design / develop) must follow these 6 rules. Each prevents one class of LLM output accident. +These rules apply to every skill and consult response. They shape the writing; they do not make phase-specific decisions. -## Rule 1: Separate Facts from Inference +## Lead with the result -- Inferences must be labeled "inferred" or "likely" -- Quantitative claims need a source or calculation method; otherwise use "approximately N" or omit -- Never present guesses as conclusions +- Answer the user's immediate question before adding evidence or next steps. +- Name the actor and action: what changed, who must decide, and why. Avoid abstract updates such as “optimization completed” or “closure advanced.” +- Separate facts, inferences, and recommendations. State the basis for an inference instead of presenting it as fact. -## Rule 2: One Concept, One Term +## Keep only useful information -- Use the same name for the same entity throughout; no synonym switching -- Use backticks for code identifiers: ✅ `app_access_token` ❌ application access token +- Match the response to the task. Do not add sections the user did not ask for. +- Omit empty optional sections instead of leaving headings or boilerplate. +- Use one term for one concept. Preserve exact identifiers, paths, and commands, and verify references before citing them. +- Give a source or calculation for numbers. Label estimates as estimates. -## Rule 3: Minimize Output Scope +## Write naturally -- Output scope = task scope; do not add unrequested sections -- No speculative abstractions — do not expand extension points that are not currently needed -- Optional template blocks with no content should be omitted entirely, not left as empty shells +- Prefer concrete subjects and verbs. Avoid noun stacks, corporate filler, slogans, and forced conversational phrasing. +- Chinese and English outputs share facts, boundaries, and conclusions, but should each follow their own language rather than mirror sentence structure. +- Keep one point per paragraph. Use a table or extra headings only when the information is easier to scan that way. -## Rule 4: Formatting +## Formatting -- Use consistent capitalization for proper nouns: ✅ `GitHub` `JavaScript` -- Use standard punctuation consistently -- Code identifiers in backticks - -## Rule 5: Paragraph Constraints - -- Paragraphs must not exceed 7 lines; one point per paragraph -- Use at most three heading levels (`#` `##` `###`); do not use `####` - -## Rule 6: Verifiable References - -- File paths, function names, and class name references must actually exist -- Do not reference fabricated APIs, configuration keys, or documentation sections +- Preserve official capitalization such as `GitHub` and `JavaScript`. +- Use no more than three heading levels. +- Do not use decorative emoji in the body. diff --git a/skills/en/skills/sopify/templates/SKILL.md b/skills/en/skills/sopify/templates/SKILL.md index 1fa1bcc4..04603d36 100644 --- a/skills/en/skills/sopify/templates/SKILL.md +++ b/skills/en/skills/sopify/templates/SKILL.md @@ -1,223 +1,125 @@ --- name: templates -description: Document template collection; read when creating docs; includes all KB templates and plan file templates +description: Knowledge-base document templates, loaded when long-lived knowledge files are created or materialized. --- -# Document Template Collection +# Knowledge Base Templates -**Usage notes:** -1. Replace `{...}` with actual content. -2. Formal plan packages include the scoring block by default. -3. `blueprint/README.md` stays as a lightweight index only. -4. If extra long-lived topic docs exist at the `blueprint/` root, they must be linked explicitly from `blueprint/README.md`. -5. `blueprint/tasks.md` keeps only unfinished long-term items and explicit deferrals; completed items do not remain in that file. +The Templates skill defines stable knowledge-base document structures. It does not decide when to write, how to apply `knowledge_sync`, or how a plan moves through its lifecycle. -## A1 | Knowledge Base Templates +- For knowledge-base policy and `knowledge_sync`, read the `kb` skill. +- For `light / standard / architecture` levels and plan-body templates, read Design `assets/`. +- For active-plan, handoff, and receipt reads and writes, follow the governing Protocol. -### project.md +Replace placeholders and remove empty optional sections. Do not store one-off implementation detail as long-lived knowledge. + +## `project.md` ```markdown -# Project Technical Conventions +# Project Conventions -## Tech Stack -- Core: {language version} / {framework version} +## Technology +- Core: {language or framework version} - Build: {build tool} - Test: {test framework} -## Working Agreement -- Keep this file focused on reusable technical conventions. -- Do not treat one-off implementation choices as project-wide rules. +## Conventions +- {reusable technical convention} -## Document Boundaries -- `project.md`: reusable conventions -- `blueprint/background.md`: long-term goals, scope, non-goals -- `blueprint/design.md`: module / host / directory / consumption contracts -- `blueprint/tasks.md`: unfinished long-term items and explicit deferrals +## Document boundaries +- `project.md`: technical conventions +- `blueprint/background.md`: long-term goals, scope, and non-goals +- `blueprint/design.md`: module, host, directory, and consumption contracts +- `blueprint/tasks.md`: unfinished long-term work and explicit deferrals ``` -### blueprint/README.md +## `blueprint/README.md` ```markdown # Project Blueprint Index Status: {current status} -Maintenance: keep only status, current goal, current focus, and read-next links on this page; move long explanations into other blueprint files - -## Current Goal -- Project: `{project_name}` -- Long-term goals and scope live in `./background.md` - -## Current Focus -- Active plan: {present/none} -- History archive: {status} - -## Read Next -- [Technical Conventions](../project.md) -- [Blueprint Background](./background.md) -- [Blueprint Design](./design.md) -- [Blueprint Tasks](./tasks.md) -- [Blueprint Topic](./{extra_blueprint_doc}.md) # list each additional long-lived topic doc when present -- [Change History](../history/index.md) +Maintenance: keep only status, current goal, current focus, and reading links + +## Current goal +- {long-term goal summary} + +## Current focus +- Active plan: {none / link to plan.md} +- Archive status: {status} + +## Read next +- [Project conventions](../project.md) +- [Background](./background.md) +- [Design](./design.md) +- [Tasks](./tasks.md) +- [History](../history/index.md) ``` -### blueprint/background.md +List each long-lived topic document in “Read next” when the `blueprint/` root contains one. + +## `blueprint/background.md` ```markdown # Blueprint Background -## Long-Term Goals -- {goal1} -- {goal2} +## Long-term goals +- {goal} ## Scope - In scope: {content} - Out of scope: {content} -## Non-Goals +## Non-goals - {content} ``` -### blueprint/design.md +## `blueprint/design.md` ```markdown # Blueprint Design -## Formal Contracts -- `knowledge_sync` is the only formal sync contract. -- `state/active_plan.json` provides only `plan_id`; the active plan semantic entry is always `plan//plan.md`. - -## Consumption Contract +## Governing contracts +- {contract that remains valid across plans} -| Context Profile | Reads | Fail-open Rule | Notes | -|-----|------|------|------| -| `consult` | `project.md`, `preferences.md`, `blueprint/README.md` | missing deep blueprint does not fail | do not force plan materialization | -| `plan` | `L1` + `active_plan.json → plan.md` | materialize deep blueprint by lifecycle when missing | history is not default context | -| `finalize` | `active_plan.json → plan.md`, `knowledge_sync`, `blueprint/*`, `history/index.md` | create `history/index.md` on demand when missing | block when `required` sync is not satisfied | +## Module and consumption boundaries +- {module, host, or directory responsibility} ``` -### blueprint/tasks.md +## `blueprint/tasks.md` ```markdown # Blueprint Tasks -Status: keep only unfinished long-term items and explicit deferrals; completed items do not remain in this file. +## Unfinished long-term work +- [ ] {item} -## Unfinished Long-Term Items -- [ ] {long-term item} - -## Explicit Deferrals -- [-] {deferred item} +## Explicit deferrals +- [-] {item and revisit condition} ``` -### history/index.md +Keep only unfinished long-term work and explicit deferrals. Remove `[x]` items. + +## `history/index.md` ```markdown # Change History Index -| Timestamp | Feature | Status | Plan Package | -|-----------|---------|--------|--------------| -| {YYYYMMDD} | {feature} | ✓ | [Link](YYYY-MM/...) | +| Date | Feature | Status | Plan package | +|------|---------|--------|--------------| +| {YYYY-MM-DD} | {feature} | {status} | [link](YYYY-MM/...) | ``` -### user/preferences.md +## `user/preferences.md` ```markdown -# Long-Term User Preferences - -> Record only explicitly stated long-term preferences. One-off instructions stay out of this file. +# Long-term User Preferences -No confirmed long-term preferences yet. +- {explicit preference that applies across tasks} ``` -### user/feedback.jsonl +## `user/feedback.jsonl` ```json -{"timestamp":"2026-01-15T10:30:00Z","source":"chat","message":"Use the smallest change list by default going forward","scope":"planning","promote_to_preference":true,"preference_id":"pref-002"} -{"timestamp":"2026-01-15T11:10:00Z","source":"chat","message":"Make the output more detailed for this task","scope":"current_task","promote_to_preference":false} +{"timestamp":"{ISO-8601}","source":"chat","message":"{raw feedback}","scope":"{scope}","promote_to_preference":false} ``` - -## A2 | Plan Package Templates - -Every level starts with a `plan.md` carrying `level` frontmatter. Standard adds `tasks.md`; architecture adds `design.md`. Create supporting ADRs, diagrams, and evidence only when needed, without empty directories. - -### All Levels - plan.md - -```markdown ---- -title: {Feature Name} -plan_id: {YYYYMMDD_feature} -level: {light|standard|architecture} ---- - -# {Feature Name} - -Scoring: -- Solution quality: {X}/10 -- Implementation readiness: {Y}/10 - -## Context / Why -{Why this change is needed} - -## Scope -{What this plan includes} - -## Approach -{Smallest viable approach} - -## Waves / Steps -- [ ] {Step 1} - -## Key Decisions -- {Confirmed decision} - -## Constraints / Not-in-scope -- {Explicit exclusion} - -## Status / Progress -- [ ] {Current status} - -## Next -{Next action or decision checkpoint} -``` - -### Standard / Architecture - tasks.md - -```markdown -# Task List: {Feature Name} - -Directory: `.sopify/plan/{YYYYMMDD}_{feature}/` - -## 1. {Module Name} -- [ ] 1.1 Implement {feature} in `{file path}` -- [ ] 1.2 Implement {feature} in `{file path}` - -## 2. Testing -- [ ] 2.1 {test task} - -## 3. Documentation Update -- [ ] 3.1 Update `project.md / blueprint/background.md / blueprint/design.md / blueprint/tasks.md` -``` - -### Architecture - design.md - -```markdown -# Technical Design: {Feature Name} - -## Technical Solution -- {Implementation point} - -## Architecture Boundaries -{Module relationships and responsibilities} - -## Verification Strategy -- {Verification method} -``` - -## A3 | Task Markers - -| Marker | Meaning | -|--------|---------| -| `[ ]` | Pending | -| `[x]` | Completed | -| `[-]` | Skipped | -| `[!]` | Blocked | diff --git a/skills/zh/header.md.template b/skills/zh/header.md.template index 73db5226..f64c83e0 100644 --- a/skills/zh/header.md.template +++ b/skills/zh/header.md.template @@ -90,6 +90,7 @@ Next: {下一步提示} - 详细内容写入文件 - 避免冗余描述 - 标题行可根据 `title_color` 轻量着色(仅标题行),不支持颜色时自动回退纯文本 +- `consult_readonly` 只给结论和必要证据;阻塞项或待决策项仅在存在时展示,然后停车。不得写代码、方案、state、知识库、audit、receipt 或 Git index。 ### C3 | 工作流模式 @@ -244,99 +245,9 @@ progressive: 按需创建文件 (默认) --- -## 阶段执行 +## 阶段路由 -### P1 | 需求分析 - -**目标:** 验证需求完整性,分析代码现状 - -**执行流程:** -``` -1. 检查知识库状态 -2. 获取项目上下文 -3. 需求评分 (10分制) - - 目标清晰 (0-3) - - 预期结果 (0-3) - - 边界范围 (0-2) - - 约束条件 (0-2) -4. 评分 ≥ require_score → 继续 - 评分 < require_score → 追问或 AI 决策 (看 auto_decide) -``` - -**输出:** -``` -[my-app-ai] 需求分析 ✓ - -需求: {一句话描述} -评分: {X}/10 -范围: {N} files - ---- -Next: 继续方案设计?(Y/n) -``` - -### P2 | 方案设计 - -**目标:** 设计技术方案,拆分任务 - -**执行流程:** -``` -1. 读取 design Skill -2. 确定方案包级别 (light/standard/architecture) -3. 生成方案文件 -4. 输出摘要 -``` - -**输出:** -``` -[my-app-ai] 方案设计 ✓ - -方案: .sopify/plan/20260115_feature/ -概要: {一句话技术方案} -任务: {N} 项 -方案质量: {X}/10 -落地就绪: {Y}/10 -评分理由: {1 行} - ---- -Changes: 3 files - - .sopify/plan/20260115_feature/plan.md - - .sopify/plan/20260115_feature/tasks.md - - .sopify/plan/20260115_feature/design.md - -Next: 在宿主会话中继续评审或执行方案,或直接回复修改意见 -``` - -### P3 | 开发实施 - -**目标:** 执行任务,同步知识库 - -**执行流程:** -``` -1. 读取 develop Skill -2. 按 tasks.md 顺序执行 -3. 更新知识库 -4. 将方案更新为 ready_to_archive,保留在 plan/ -5. 输出结果 -``` - -**输出:** -``` -[my-app-ai] 开发实施 ✓ - -完成: {N}/{M} 任务 -测试: {通过/失败/跳过} - ---- -Changes: 5 files - - src/components/xxx.vue - - src/types/index.ts - - src/hooks/useXxx.ts - - .sopify/blueprint/design.md - - .sopify/plan/20260115_feature/plan.md - -Next: 请验证功能;需要归档时显式运行 ~go finalize -``` +宿主选择当前入口并加载对应 Skill。阶段判断、输出结构和资源导航以该 Skill 为准;header 只保留路由、协议、授权和通用 footer 契约,不复制阶段流程或模板。 --- @@ -348,9 +259,9 @@ Next: 请验证功能;需要归档时显式运行 ~go finalize | `design` | 进入方案设计 | 方案生成、任务拆分 | | `develop` | 进入开发实施 | 代码执行、KB同步 | | `kb` | 知识库操作 | 初始化、更新策略 | -| `templates` | 创建文档 | 所有模板定义 | +| `templates` | 创建知识库文档 | 知识库模板与导航 | -**读取方式:** 以上为当前全部 builtin skill,均为 host 消费的工作流 prompt/skill 资产,不支持独立调用。权威技能清单以 `skills/catalog/builtin_catalog.generated.json` 为准。 +**读取方式:** 以上为当前全部 builtin skill,均由宿主消费;宿主也可按请求直接路由单个 Skill。它们共享 Sopify 的协议与表达边界,不是五个独立产品。权威技能清单以 `skills/catalog/builtin_catalog.generated.json` 为准。 --- diff --git a/skills/zh/skills/sopify/analyze/SKILL.md b/skills/zh/skills/sopify/analyze/SKILL.md index ec9a1266..72b22887 100644 --- a/skills/zh/skills/sopify/analyze/SKILL.md +++ b/skills/zh/skills/sopify/analyze/SKILL.md @@ -5,7 +5,7 @@ description: 需求分析阶段入口;聚合评分、追问与范围判定规 # Analyze(入口文档) -> 核心哲学:区分用户给的"目标"与"实现路径"——只对目标负责。 +> 先读证据,再把目标、交付物和候选路径分开。 ## 何时激活 @@ -15,11 +15,11 @@ description: 需求分析阶段入口;聚合评分、追问与范围判定规 ## 执行骨架 1. 先加载 `references/analyze-rules.md`。 -2. 执行 Phase A(知识库检查、上下文获取、需求类型判定、完整性评分)。 +2. 读取用户提供的材料和相关代码,区分目标、交付物与候选路径,再做完整性评分。 3. 若评分不足,按 `auto_decide` 处理: - `false`:使用 `assets/question-output.md` 追问。 - `true`:显式补充假设后继续。 -4. 评分达标后执行 Phase B(目标提炼、代码分析与技术准备)。 +4. 评分达标后,交接已确认的成功标准、范围、证据和仍会影响结果的未知项。 5. 输出阶段摘要,格式参考 `assets/success-output.md`。 ## 资源导航 diff --git a/skills/zh/skills/sopify/analyze/assets/success-output.md b/skills/zh/skills/sopify/analyze/assets/success-output.md index b58e4e23..48f90abd 100644 --- a/skills/zh/skills/sopify/analyze/assets/success-output.md +++ b/skills/zh/skills/sopify/analyze/assets/success-output.md @@ -1,19 +1,22 @@ [{BRAND_NAME}] 需求分析 ✓ -需求: {一句话描述} -类型: {需求类型} +目标: {一句话描述} +交付物: {本次交付} 评分: {X}/10 范围: {预估文件数} -假设与前提: - - {assumption}(来源:{代码分析 / 用户输入 / AI 补充}) +已确认依据: + - {evidence}(来源:{用户材料 / 代码 / 正式契约}) -已识别信息缺口: +本次采用的假设(没有则省略): + - {assumption}(可继续的依据:{低风险且可逆的理由}) + +仍会影响结果的缺口(没有则省略): - {gap}(影响:{impact},建议:{action}) -下一步理由: {为什么建议进入 design / 需要追问 / 可直接执行} +下一步理由: {为什么建议进入 Design / 需要追问 / 可作为 quick fix 或 consult 处理} --- Changes: 0 files -Next: 继续方案设计?(Y/n) +Next: {下一动作} diff --git a/skills/zh/skills/sopify/analyze/references/analyze-rules.md b/skills/zh/skills/sopify/analyze/references/analyze-rules.md index 0bf45ce3..f6790230 100644 --- a/skills/zh/skills/sopify/analyze/references/analyze-rules.md +++ b/skills/zh/skills/sopify/analyze/references/analyze-rules.md @@ -1,104 +1,55 @@ -# Analyze 详细规则 +# Analyze 规则 ## 目标 -验证需求完整性,分析代码现状,为后续方案设计提供稳定输入。 +把用户的请求和可访问证据整理成稳定的目标、交付物与边界,供宿主路由或 Design 使用。Analyze 判断“要解决什么”,不替 Design 选择实现。 -## 总流程 +## 1. 先读证据 -```text -Phase A (步骤 1-4) -> 检查评分 >= require_score? - ├─ 是 -> Phase B (步骤 5-6) -> 输出摘要 - └─ 否 -> 检查 auto_decide - ├─ true -> 补充假设后继续 - └─ false -> 发起追问并等待用户输入 -``` +1. 读取当前请求、用户明确提供的文档和链接,以及已确认的长期偏好。 +2. 按任务需要读取用户提供或当前可访问的相关证据,例如文档、接口资料、设计稿、代码、测试、历史方案和正式协议。证据来源不限于这些例子;先读能回答当前问题的材料,不把其中已有答案再问用户。 +3. 区分三件事:用户想得到的结果、本次要交付的内容、用户提出的候选实现路径。候选路径只有在用户明确把它设为约束时才是边界。 +4. 发现材料冲突时,说明冲突、对当前交付的影响和推荐处理。不会影响结果的小差异不阻塞。 -## Phase A:需求评估 +知识库的读取和物化规则由 `kb` Skill 负责。Analyze 只消费与当前目标有关的内容。 -### 步骤 1:检查知识库状态 +## 2. 评估完整性 -- 判定条件:存在项目代码,且需求不是“新项目初始化”。 -- 执行方式:检查 `.sopify/` 是否存在。 -- 异常标记:若不存在,标记需初始化知识库。 +评分维度共 10 分:目标清晰 0–3、预期结果 0–3、范围边界 0–2、约束条件 0–2。 -### 步骤 2:获取项目上下文 +- `score >= require_score`:继续分析并形成交接。 +- 分数不足且 `auto_decide=true`:只对低风险、可逆且不改变目标的缺口作显式假设。 +- 分数不足且 `auto_decide=false`:停车追问。 -- 优先读取 `.sopify/user/preferences.md` 与知识库文件。 -- 信息不足时再扫描代码。 -- 详细知识库策略以 `kb` skill 为准。 +只在答案会改变目标、交付物、范围、成功标准,或决定当前路径能否安全落地时追问。问题应说明影响,数量由真实缺口决定,不规定凑满几项。 -偏好应用规则: +## 3. 形成交接 -1. 只使用用户明确声明的长期偏好。 -2. 当前任务明确要求优先于历史偏好。 -3. 无匹配偏好时按默认规则执行。 +Analyze 输出以下事实: -### 步骤 3:需求类型判定 +- 一句话目标和本次交付物。 +- 已确认的成功标准、范围和约束。 +- 支撑结论的关键材料或代码证据。 +- 仍会影响结果的未知项;没有则省略。 +- 建议进入 consult、quick fix 或 Design 的理由。 -候选类型: +若现有候选路径明显增加成本或风险,可以指出更稳妥的方向和取舍,但不在本阶段拍板技术方案。 -1. 新项目初始化 -2. 新功能开发 -3. 功能修改/增强 -4. Bug 修复 -5. 重构优化 -6. 技术变更 +## 4. 路由提示 -### 步骤 4:需求完整性评分 +- 简单且明确、通常不超过 2 个文件:可进入 quick fix。 +- 局部但需要方案、通常涉及 3–5 个文件:进入 light plan。 +- 超过 5 个文件、新功能、跨模块或架构变更:进入 standard 或 architecture Design。 -评分维度(总分 10): +文件数只是信号,不能覆盖安全、协议或真实复杂度。 -- 目标清晰:0-3 -- 预期结果:0-3 -- 边界范围:0-2 -- 约束条件:0-2 +阶段转换: -评分处理规则: +- `strict` 模式在输出 Analyze 摘要后停车,确认后再进入 Design。 +- `adaptive` 模式把路由提示交给宿主,由宿主结合当前请求和协议状态继续。 -- `score >= require_score`:进入 Phase B。 -- `score < require_score` 且 `auto_decide=true`:显式补充假设后继续。 -- `score < require_score` 且 `auto_decide=false`:发起追问(模板见 `assets/question-output.md`)。 +## 边界 -追问规则: - -1. 不问可从代码直接获得的信息。 -2. 只问用户相关关键缺口(业务、目标、约束)。 -3. 问题数量 3-5 个。 -4. 不重复追问已在长期偏好里明确的信息。 - -## Phase B:代码分析 - -### 步骤 5:提取关键目标 - -- 把需求压缩成一句话核心目标。 -- 先区分用户给的是“目标”还是“实现路径”。 -- 若当前输入主要是路径而不是目标,把路径记为候选方案,不直接当成成功标准。 -- 给出可验证成功标准,并按 SMART 风格收口交付物、边界、约束、验证方式与下一停点。 - -### 步骤 6:代码分析与技术准备 - -- 估算项目规模与改动规模。 -- 定位相关模块与关键文件。 -- 做基础质量检查(过时信息、安全风险)。 -- 必要时补充外部文档检索。 - -稳定子规则: - -1. 目标模糊时优先补关键事实;只有 `auto_decide=true` 才允许带显式假设继续。 -2. 若已知当前路径明显次优,在分析摘要中至少给出 1 个更低成本或更低风险的替代路径。 -3. 替代路径必须说明 tradeoff,避免只给结论不给理由。 -4. `quick_fix`、纯状态解释和轻咨询场景不强制展开深度挑战。 - -## 路由判定(adaptive) - -- 简单任务(<=2 文件且需求明确):直入快速修复。 -- 中等任务(3-5 文件):进入 light 方案。 -- 复杂任务(>5 文件或架构变更):进入完整方案设计。 - -## 阶段转换 - -- 评分不足且不可自动决策:循环追问直到达标或取消。 -- `workflow.mode=strict`:达标后输出摘要并等待确认。 -- `workflow.mode=adaptive`:达标后按复杂度自动推进。 -- 用户输入“取消”:按取消模板结束流程。 +- 不生成方案包,不修改代码。 +- 不新增宿主意图类型、关键词或正则路由。 +- `consult_readonly` 由宿主按现有协议处理;Analyze 不把只读请求升级为写入流程。 diff --git a/skills/zh/skills/sopify/design/SKILL.md b/skills/zh/skills/sopify/design/SKILL.md index 08945f43..91551861 100644 --- a/skills/zh/skills/sopify/design/SKILL.md +++ b/skills/zh/skills/sopify/design/SKILL.md @@ -5,7 +5,7 @@ description: 方案设计阶段入口;聚合方案分级、任务拆分与方 # Design(入口文档) -> 核心哲学:方案的价值在取舍的清晰度,不在覆盖面。 +> 先核对现状,再选择最小充分路径。 ## 何时激活 @@ -15,10 +15,11 @@ description: 方案设计阶段入口;聚合方案分级、任务拆分与方 ## 执行骨架 1. 加载 `references/design-rules.md`。 -2. 基于变更信号判定 `light/standard/architecture`。 -3. 按级别选取 `assets/` 中对应模板生成方案文件。 -4. 产出任务清单并做粒度检查(每项可验证、依赖明确)。 -5. 在正式 plan 包中补齐评分区块,并输出带评分的方案摘要,格式参考 `assets/output-summary.md`。 +2. 核对现有实现、正式契约、适用的原生能力和已安装依赖。 +3. 选择最小充分路径,并判定 `light/standard/architecture`。 +4. 按级别选取 `assets/` 中对应模板生成方案文件。 +5. 产出任务清单,确认每项可验证、依赖明确。 +6. 给出 `Ready` 或 `Needs decision` 及依据,格式参考 `assets/output-summary.md`。 ## 资源导航 diff --git a/skills/zh/skills/sopify/design/assets/output-summary.md b/skills/zh/skills/sopify/design/assets/output-summary.md index 59fdbe9d..ebd54ac5 100644 --- a/skills/zh/skills/sopify/design/assets/output-summary.md +++ b/skills/zh/skills/sopify/design/assets/output-summary.md @@ -1,14 +1,13 @@ -[{BRAND_NAME}] 方案设计 ✓ +[{BRAND_NAME}] 方案设计 {状态符} 方案: .sopify/plan/{YYYYMMDD}_{feature}/ -概要: {一句话技术方案} +路径: {一句话方案} 任务: {N} 项 -方案质量: {X}/10 -落地就绪: {Y}/10 -评分理由: {1 行} +就绪状态: {Ready / Needs decision} +依据: {为什么已收敛,或哪项选择仍会改变范围、方案路径或验收标准} --- Changes: {N} files - .sopify/plan/... -Next: 在宿主会话中继续评审或执行方案,或直接回复修改意见 +Next: {继续评审或执行;Needs decision 时写明待确认事项} diff --git a/skills/zh/skills/sopify/design/assets/plan-template.md b/skills/zh/skills/sopify/design/assets/plan-template.md index 1276933f..062ba212 100644 --- a/skills/zh/skills/sopify/design/assets/plan-template.md +++ b/skills/zh/skills/sopify/design/assets/plan-template.md @@ -11,13 +11,8 @@ archive_ready: false # {功能名称} -评分: -- 方案质量: {X}/10 -- 落地就绪: {Y}/10 - -评分理由: -- 优点: {1 行} -- 扣分: {1 行} +就绪状态: {Ready / Needs decision} +依据: {为什么已收敛,或哪项选择仍会改变范围、方案路径或验收标准} ## Context / Why diff --git a/skills/zh/skills/sopify/design/references/design-rules.md b/skills/zh/skills/sopify/design/references/design-rules.md index 8d32456b..2beb2df5 100644 --- a/skills/zh/skills/sopify/design/references/design-rules.md +++ b/skills/zh/skills/sopify/design/references/design-rules.md @@ -1,84 +1,48 @@ -# Design 详细规则 +# Design 规则 ## 目标 -设计技术方案,拆分可执行任务,生成可回放的方案包。 +把 Analyze 确认的目标和边界转成最小、可执行、可验证的方案。Design 负责技术取舍和任务拆分,不管理协议状态,也不执行代码。 -## 总流程 +## 1. 核对现状 -1. 判定方案包级别(`light/standard/architecture`)。 -2. 生成方案文件骨架。 -3. 拆分任务并标注验证标准。 -4. 输出摘要并等待宿主后续动作。 +在提出新实现前,按任务需要检查:项目已有代码、调用方和测试;正式协议、公开契约和兼容边界;适用的语言或平台原生能力;已安装且项目正在使用的依赖。 -## 步骤 1:方案包级别判定 +检查顺序不是固定技术梯子。目标是避免重复能力和不必要依赖,同时保证正确性、安全和用户价值。 -自动判定规则(`plan.level=auto`): +## 2. 选择最小充分方案 -- `light`:文件数 3-5,且无架构级变更,修改范围明确。 -- `standard`:文件数 >5,或新功能开发,或跨模块改动。 -- `architecture`:架构级变更、重大重构、新系统设计。 +- 说明推荐路径、关键取舍和明确非目标。 +- 优先修改最窄的共同边界;需要跨模块时说明原因。 +- 不为未知未来预建框架、状态或扩展点。 +- 只有会改变范围、方案路径或验收标准的选择才交给用户拍板。可逆的实现细节由 Develop 在批准边界内处理。 -## 步骤 2:生成方案文件 +## 3. 判定方案级别 -- `light`:生成 `plan.md`。 -- `standard`:生成 `plan.md + tasks.md`。 -- `architecture`:生成 `plan.md + tasks.md + design.md`。 -- 所有正式 plan 包都在 `plan.md` 中写入 `level` frontmatter、统一语义入口和评分区块。 -- ADR、diagram、assets、receipts 仅在真实需要时创建,不是任何级别的空目录或必备文件。 -- 方案摘要也必须显式输出: - - `方案质量` - - `落地就绪` - - `评分理由` +- `light`:`plan.md`,适合范围明确的局部工作。 +- `standard`:`plan.md + tasks.md`,适合新功能、跨模块或较复杂工作。 +- `architecture`:`plan.md + tasks.md + design.md`,只用于真实架构变更、新系统或重大重构。 -模板来源统一使用 `assets/` 目录: +ADR、图、assets 和 receipts 均按证据创建,不预建空目录。方案正文模板唯一来自本 Skill 的 `assets/`。 -1. `assets/plan-template.md` -2. `assets/tasks-template.md` -3. `assets/design-template.md` -4. `assets/adr-template.md`(仅在确有架构决策时使用) +## 4. 判定 readiness -## 步骤 3:任务拆分 +- `Ready`:没有仍需用户选择、且会改变范围、方案路径或验收标准的事项。给出支撑依据。 +- `Needs decision`:列出具体选择、各自影响和推荐,随后停车。 -任务约束: +动态版本、Git 交付、发布或其他不可逆动作属于执行期 checkpoint;只要方案路径已经确定,它们不自动把方案降为 `Needs decision`。 -1. 每项建议 30 分钟内可完成。 -2. 每项需具备可验证完成标准。 -3. 依赖关系清晰,避免隐藏前置条件。 +阶段转换: -任务分类建议: +- `strict` 模式在输出 Design 摘要后停车,确认后再进入 Develop。 +- `adaptive` 模式下,`~go` 可由宿主继续后续流程;`~go plan` 在摘要后停车。 -1. 核心功能实现 -2. 辅助功能 -3. 安全检查 -4. 测试 -5. 文档更新(`project.md / blueprint/*`) +## 5. 拆分任务 -任务状态符号: +每项任务应有明确产物、依赖和验收方式。按真实边界拆分,不为追求固定时长制造碎片。文档和知识同步只在方案的 `knowledge_sync` 要求时纳入。 -- `[ ]` 待执行 -- `[x]` 已完成 -- `[-]` 已跳过 -- `[!]` 阻塞中 +任务状态:`[ ]` 待执行、`[x]` 已完成、`[-]` 已跳过、`[!]` 阻塞。 -## 阶段转换 +## 协议边界 -- `workflow.mode=strict`:输出方案摘要后等待确认。 -- `workflow.mode=adaptive`: - - `~go` 触发:进入执行前确认或后续宿主链路。 - - `~go plan` 触发:只输出方案摘要并停止。 -- 用户反馈修改意见:留在本阶段,更新文件后再次输出摘要。 - -## 协议入口边界 - -方案结构与任务拆分由本技能负责;协议状态写入(active_plan / current_handoff / receipts)统一走 `sopify_writer`,不在本技能直接写入。 - -## 命名规则 - -方案目录格式:`YYYYMMDD_feature_name` - -示例: - -- `20260115_user_auth` -- `20260115_fix_login_bug` -- `20260115_refactor_api` +Design 只生成或更新方案语义文件。`active_plan`、handoff 和 receipts 由宿主按正式协议通过 `sopify_writer` 写入。 diff --git a/skills/zh/skills/sopify/develop/references/develop-rules.md b/skills/zh/skills/sopify/develop/references/develop-rules.md index bfd05afc..0ca7ffbf 100644 --- a/skills/zh/skills/sopify/develop/references/develop-rules.md +++ b/skills/zh/skills/sopify/develop/references/develop-rules.md @@ -46,6 +46,9 @@ - 没有验证证据,不算完成。 - `overbuild`、`underbuild`、`应该没问题` 这类主观判断不能替代验证或复审结果。 - 不允许静默跳过验证,也不允许无限重试。 +- Bug 或共享边界变更先检查受影响调用方,在最窄的共同根因处修复,并验证同类路径。 +- 批准范围内的可逆实现细节由 Develop 处理;只有新事实会改变范围、方案路径或验收标准时才重新规划。 +- Quick Fix 没有 Design 产物时,只做完成当前请求所需的局部选择,不补建方案或复制 Design 规则。 ### 2.2 最小 verify contract @@ -160,37 +163,7 @@ Stage B `code_quality` 至少检查: ## 步骤 3:知识库同步 -同步时机: - -1. 每完成一个模块任务后。 -2. 阶段收尾时做统一复核。 - -同步目标: - -- `project.md` -- `blueprint/background.md` -- `blueprint/design.md` -- `blueprint/tasks.md` -- `user/preferences.md`(仅长期偏好) -- `user/feedback.jsonl` - -正式判断口径: - -- `knowledge_sync.skip`:本轮不要求同步。 -- `knowledge_sync.review`:finalize 前至少复核。 -- `knowledge_sync.required`:未更新则 finalize 阻断。 - -偏好写入(保守策略): - -允许写入: - -- 用户明确表达长期偏好(如“以后默认...”)。 - -禁止写入: - -- 一次性指令。 -- 上下文不完整的猜测。 -- 与任务无关的泛化结论。 +实施收尾时调用 KB,按当前方案声明的 `knowledge_sync` 执行并记录结果。同步目标、长期知识判据和偏好写入政策由 KB 唯一负责;Develop 不在这里重新定义。 ## 步骤 4:方案完成态 diff --git a/skills/zh/skills/sopify/kb/SKILL.md b/skills/zh/skills/sopify/kb/SKILL.md index d94f805f..53df1f8c 100644 --- a/skills/zh/skills/sopify/kb/SKILL.md +++ b/skills/zh/skills/sopify/kb/SKILL.md @@ -1,126 +1,61 @@ --- name: kb -description: 知识库管理技能;知识库操作时读取;包含初始化、更新、同步策略 +description: 管理 `.sopify/` 长期知识;负责初始化、渐进物化、读取、保留和 knowledge_sync 政策。 --- -# 知识库管理 - V2 规则 +# 知识库管理 -**目标:** 管理 `.sopify/` 的 V2 分层知识,保持长期知识、活动方案与归档层职责清晰。 +KB 负责长期知识,不替 Analyze、Design 或 Develop 做阶段判断,也不直接管理活动方案、handoff、receipt 或 finalize。文档结构来自 Templates,协议状态由 `sopify_writer` 管理。 -## 知识库结构 +## 目录职责 ```text .sopify/ -├── blueprint/ -│ ├── README.md # 纯索引页,只保留索引必需区块 -│ ├── background.md # 长期目标、范围、非目标 -│ ├── design.md # 模块/宿主/目录/消费契约 -│ └── tasks.md # 未完成长期项与明确延后项 -├── project.md # 项目技术约定 -├── user/ -│ ├── preferences.md # 用户长期偏好 -│ └── feedback.jsonl # 原始反馈事件 -├── plan/ -│ └── YYYYMMDD_feature/ # 当前活动方案 -├── history/ -│ ├── index.md # 归档索引 -│ └── YYYY-MM/ -└── state/ # protocol state +├── project.md # 跨任务技术约定 +├── user/ # 长期偏好与原始反馈 +├── blueprint/ # 长期目标、设计边界、未完成长期项及索引 +├── plan/ # 当前方案语义文件 +├── history/ # 已归档方案与索引 +└── state/ # 本地协议状态 ``` -## 初始化策略 +`blueprint/README.md` 只保留状态、维护方式、当前目标、当前焦点和阅读入口。深层内容进入对应 blueprint 文件。 -### Full 模式 (`kb_init: full`) +## 初始化与渐进物化 -首次 bootstrap 直接创建: +`kb_init: full` 首次创建 `project.md`、`user/preferences.md`、`user/feedback.jsonl` 和四个 blueprint 文件;不预建方案正文、history 或空目录。 -```yaml -创建文件: - - .sopify/project.md - - .sopify/user/preferences.md - - .sopify/user/feedback.jsonl - - .sopify/blueprint/README.md - - .sopify/blueprint/background.md - - .sopify/blueprint/design.md - - .sopify/blueprint/tasks.md -``` - -注意: - -- 不预建 `plan/` 正文。 -- 不预建 `history/index.md` 或任何 archive。 +`kb_init: progressive` 为默认策略: -### Progressive 模式 (`kb_init: progressive`) [默认] +- 首次真实项目触发:创建 `project.md`、`user/preferences.md`、`blueprint/README.md`。 +- 首次进入 plan 生命周期:补齐 `blueprint/background.md`、`blueprint/design.md`、`blueprint/tasks.md` 和当前方案目录。 +- 首次显式 `~go finalize`:由协议流程创建 `history/index.md` 和归档目录。 +- 首次出现明确长期反馈:按需要创建 `user/feedback.jsonl`。 -按生命周期创建: +## 知识上下文读取 -```yaml -首次真实项目触发: - - .sopify/project.md - - .sopify/user/preferences.md - - .sopify/blueprint/README.md - -首次进入 plan 生命周期: - - .sopify/blueprint/background.md - - .sopify/blueprint/design.md - - .sopify/blueprint/tasks.md - - .sopify/plan/YYYYMMDD_feature/ - -首次显式 ~go finalize: - - .sopify/history/index.md - - .sopify/history/YYYY-MM/YYYYMMDD_feature/ - -首次出现明确长期偏好: - - .sopify/user/feedback.jsonl -``` - -## 上下文读取顺序 +宿主先按正式 Protocol 完成 managed plan、handoff 和 receipts 的入口读取。本节只规定 KB 自己的长期知识顺序: 1. `project.md` 2. `user/preferences.md` 3. `blueprint/README.md` -4. `blueprint/background.md` -5. `blueprint/design.md` -6. `blueprint/tasks.md` -7. `state/active_plan.json` → `plan//plan.md` - -读取规则: +4. 与当前任务有关的 `blueprint/background.md`、`design.md`、`tasks.md` -- 咨询/澄清优先消费 `L0/L1`,不强制要求 deep blueprint。 -- planning / develop 才进入 `L2 active plan`。 -- `active_plan.json` 只提供 `plan_id`;`plan.md` 是活动方案语义入口。接续时再按协议读取 handoff 与 receipts,不能回退到已退役的 current-plan 投影。 -- `history/` 不是默认长期上下文,只在 finalize 后查询或人工追溯时读取。 +Consult 和 quick fix 不因缺少深层 blueprint 失败。`history/` 只在追溯或 finalize 时读取。 -## 更新规则 +## 保留与更新 -### L0 索引约束 +只保留跨任务仍有价值的信息: -- `blueprint/README.md` 只保留 `状态 / 维护方式 / 当前目标 / 当前焦点 / 深入阅读入口`。 -- 不把绝对工作目录、架构正文、正式契约正文写进 `blueprint/README.md`。 -- 若 `blueprint/` 根层存在额外长期专题文档,必须在 `blueprint/README.md` 显式列出入口。 +- `project.md`:可复用技术约定。 +- `background.md`:长期目标、范围和非目标。 +- `design.md`:模块、宿主、目录和消费契约。 +- `tasks.md`:未完成长期项及有重访条件的明确延后项。 +- `preferences.md`:用户明确声明的长期偏好。 -### `blueprint/tasks.md` 边界 +不要写入一次性实现细节、当前 plan 的任务拆解、临时取舍、已完成任务或 history 正文副本。代码与文档冲突时先核对代码事实,再修正文档;当前用户指令优先于历史偏好。 -- 只保留未完成长期项与明确延后项。 -- `[x]` 已完成项不应继续保留在 `blueprint/tasks.md`。 - -### 必须更新 - -- `project.md`:跨任务可复用的技术约定变化。 -- `blueprint/background.md`:长期目标、范围、非目标变化。 -- `blueprint/design.md`:模块/宿主/目录/消费契约变化。 -- `blueprint/tasks.md`:长期未完成项或明确延后项变化。 -- `user/preferences.md`:用户明确声明长期偏好。 - -### 不应写入长期知识 - -- 一次性实现细节。 -- 当前 plan 的短期拆解。 -- 仅属于本轮任务的临时取舍。 -- 已完成任务清单继续滞留在 `blueprint/tasks.md`。 -- history 正文回灌到 blueprint。 - -## `knowledge_sync` 同步契约 +## `knowledge_sync` ```yaml knowledge_sync: @@ -130,48 +65,12 @@ knowledge_sync: tasks: skip|review|required ``` -执行要求: - -- `skip`:本轮不要求同步。 -- `review`:finalize 前至少复核。 -- `required`:未更新则 finalize 阻断。 - -## 冲突处理 - -- 代码与文档冲突:以代码现状为准,文档随后修正。 -- 当前任务与长期偏好冲突:当前任务明确要求 > `user/preferences.md` > 默认规则。 - -## 输出格式 - -**初始化完成:** - -```text -[{BRAND_NAME}] 知识库初始化 ✓ - -创建: {N} 文件 -策略: {full/progressive} - ---- -Changes: {N} files - - .sopify/project.md - - .sopify/blueprint/README.md - - ... - -Next: 知识库已就绪 -``` - -**同步完成:** +- `skip`:本轮不检查该文件。 +- `review`:finalize 前确认是否需要更新。 +- `required`:交付候选形成前必须更新;未完成时阻断 finalize。 -```text -[{BRAND_NAME}] 知识库同步 ✓ +KB 只执行方案声明的同步政策,不改变 plan 生命周期。同步时更新最窄的长期知识位置,避免在多个文件重复同一正文。 -更新: {N} 文件 +## 输出 ---- -Changes: {N} files - - .sopify/project.md - - .sopify/blueprint/design.md - - ... - -Next: 文档已更新 -``` +初始化或同步完成后,先说明实际结果,再列 `Changes`,最后给 `Next:`。没有变化时明确写 `Changes: 0 files`。 diff --git a/skills/zh/skills/sopify/references/output-contract.md b/skills/zh/skills/sopify/references/output-contract.md index 00568c42..8b98e1c4 100644 --- a/skills/zh/skills/sopify/references/output-contract.md +++ b/skills/zh/skills/sopify/references/output-contract.md @@ -1,74 +1,38 @@ # Sopify 输出契约 -所有阶段(analyze / design / develop / consult)的最终回复遵循以下契约。每节约束一个输出决策维度。 +最终回复应让用户快速知道结果、证据和下一步。阶段模板只规定必要信息,不要求机械填满所有区块。 -## 1. 输出路径说明 +## 输出路径 -- **Gate 摘要**:gate/routing 阶段的路由状态。只含阶段标题、状态行、Context、Changes、Next。不含验证表格、复审结论等 skill 级别内容。 -- **宿主最终回复**:skill 完成后的收口摘要。必须遵循对应模板,包含必需 section 和触发条件下的增强。 -- Gate 摘要 ≠ 最终回复。Gate 告诉宿主"做什么",宿主做完后按模板输出结果。 +- Gate 摘要只说明路由结果、当前状态和下一动作。 +- Skill 或咨询完成后,由宿主给出最终回复。最终回复必须反映实际结果,不能把 gate 文案当成交付结果。 -## 2. 必需 section 契约 +## 必要内容 -| 输出类型 | 必需 section | 必需表格 | 状态符约束 | -|---------|-------------|---------|-----------| -| develop/success | 复审结论行、验证摘要、Changes、Next | 验证摘要表 | ✓ 仅当全部 passed | -| develop/partial | 未完成项、验证摘要、Changes、Next | 未完成项表 + 验证摘要表 | 必须 ! | -| develop/quick-fix | 验证摘要、Changes、Next | 验证摘要简表 | ✓ 仅当全部 passed | -| analyze/success | 假设与前提、信息缺口、下一步理由、Changes、Next | — | — | -| analyze/question | 问题列表、Next | — | 必须 ? | -| design/summary | 评分行、Changes、Next | — | — | -| consult | Changes、Next | — (adaptive) | — | - -表格列约束:只展示当前场景有信息量的列。列省略只影响最终展示,不影响内部验证判断。`reason_code` 是内部验证字段,不在用户面输出中展示。 - -## 3. 条件增强与格式选择 - -不强制所有场景结构化。按信息形状和触发条件决定是否增强、用什么结构: - -| 触发条件 | 推荐表达 | 典型场景 | +| 输出类型 | 必要内容 | 状态要求 | |---------|---------|---------| -| 多项对比/取舍(>2 方案) | 表格 | 方案取舍、风险对比、宿主能力对比 | -| 流程/调用/生命周期 | 编号序列 | SDK 流程、gate → route → handoff | -| 文件/组件/模块组成 | 树状结构 | 组件拆分、模块结构、方案文件组织 | -| 评分维度需可见化 | 评分表 | analyze 评分 | -| 简单问答/状态确认 | 保持简洁 | 单一问题回答、状态确认 | - -约束:同一回复最多选一种主结构,避免表格 + 树 + 流程叠加。 - -### 3.1 输出密度梯度 - -按场景复杂度选择输出密度,避免简单任务输出过重: - -| 密度级别 | 适用场景 | 验证摘要形式 | -|---------|---------|------------| -| 精简 | quick-fix、单文件修改、咨询问答 | 简化表格(≤3 列),省略复审结论 | -| 标准 | 3-5 任务的常规 develop | 表格,省略无信息量列 | -| 完整 | 6+ 任务或跨模块交付 | 完整表格 + 分阶段复审结论 | - -密度级别由任务数和改动范围自动推断,不需要用户指定。 - -**DO:** -- 满足多方案取舍时用对比表,让差异一目了然 -- success 全部 passed 时简化验证摘要,省略无信息量列 -- 信息形状不匹配任何结构时保持纯文本 -- 按密度梯度裁剪输出:quick-fix 不输出完整验证表 -- 3+ 独立任务时按交付物分组输出,同类结论合并为一行 -- 正文(验证摘要、复审结论、Changes 区)不使用装饰性 emoji - -**DON'T:** -- 满足多方案取舍却无对比结构 = 漏增强 -- 强制在简单问答上叠加表格 = 过度增强 -- 同一回复混用两种以上主结构 = 认知过载 -- 5 个任务结果逐项展开相同 `passed` 结论 = 信息稀释 - -## 4. 输出前自检 - -输出最终回复前检查: - -1. 必需 section 是否存在:按 §2 核对当前输出类型的必需 section。 -2. 状态符是否正确:`✓` 仅当全部验证通过且无降级/跳过;否则必须 `!`。 -3. footer 是否完整:`Changes:` + `Next:` 必须存在。 -4. 条件增强是否触发:如当前回复满足 §3 增强触发条件,应使用对应结构化表达。 -5. 密度级别是否匹配:quick-fix 不应输出完整验证表;复杂交付不应缺少复审结论。 -6. 脱敏:`root_cause` 枚举值转人话描述;内部评分权重不外露;gate/handoff JSON 字段(`resolution_id`、`run_stage` 等)不展示。 +| `analyze/success` | 目标、交付物、完整性评分、已确认依据、实际采用的假设、实质缺口、下一步 | 信息不足时不能写成完成 | +| `analyze/question` | 少量关键问题、每个问题的影响、`Next` | `?` | +| `design/summary` | 方案路径、任务数、`Ready` 或 `Needs decision` 及依据、`Changes`、`Next` | 有实质未决选择时不能写 `Ready` | +| `develop/success` | 结果、复审结论、验证摘要、`Changes`、`Next` | 全部通过才用 `✓` | +| `develop/partial` | 未完成项、原因、已有验证、`Changes`、`Next` | `!` | +| `develop/quick-fix` | 结果、必要验证、`Changes`、`Next` | 全部通过才用 `✓` | +| `consult` | 结论、必要证据、`Changes`、`Next` | 按实际状态 | + +`consult_readonly` 不写代码、方案、state、知识库、audit、receipt 或 Git index。先给结论和必要证据;阻塞项或待决策项仅在存在时展示,然后停车。 + +## 结构和密度 + +- 简单问答和单文件修改用短段落;不要为了模板完整而加表格。 +- 多项取舍适合对比表,流程适合编号步骤,目录关系适合树状结构。同一回复只选一种主要结构。 +- 任务较多时按交付物合并结果,不逐项重复“通过”。 +- `Changes` 后必须以 `Next:` 收尾。没有文件变化时写 `Changes: 0 files`。 + +## 输出前检查 + +1. 开头是否直接回答当前问题。 +2. 状态符是否与实际验证一致。 +3. `Ready / Needs decision` 是否符合 Design 判据。 +4. 是否删掉了空区块、重复结论和内部字段。 +5. 文件、命令、数字和引用是否可核验。 +6. 是否包含完整 `Changes` 和最后一行 `Next:`。 diff --git a/skills/zh/skills/sopify/references/shared-writing-dna.md b/skills/zh/skills/sopify/references/shared-writing-dna.md index ca8e421e..344970cd 100644 --- a/skills/zh/skills/sopify/references/shared-writing-dna.md +++ b/skills/zh/skills/sopify/references/shared-writing-dna.md @@ -1,37 +1,29 @@ # Sopify 共享写作规范 -所有 skill(analyze / design / develop)的文字输出遵循以下 6 条规则。每条防止一类 LLM 输出事故。 +这些规则适用于所有 Skill 和咨询回复。它们约束表达,不替任何阶段做判断。 -## 规则 1:事实与推断分离 +## 先说结果 -- 推断必须标注"推断"或"可能" -- 量化指标需有来源或计算方式,否则用"约 N"或省略 -- 不把猜测写成结论 +- 先回答用户当前最关心的问题,再给必要证据和下一步。 +- 明确写出谁做什么、改了什么、为什么;避免只有“完成优化”“推进闭环”一类抽象结论。 +- 事实、推断和建议分开。推断说明依据,不把可能性写成事实。 -## 规则 2:一概念一术语 +## 只写有用的信息 -- 同一实体全文同名,不做同义词切换 -- 首次出现注释英文:✅ `飞书认证(Feishu Auth)` ❌ `Feishu 认证` -- 代码标识符用反引号:✅ `app_access_token` ❌ 应用访问令牌 +- 输出范围跟随任务范围,不补用户没有要求的章节。 +- 可选内容为空时整段省略,不保留占位标题或套话。 +- 同一概念使用同一术语;代码标识符、真实路径和命令保持原样并可核验。 +- 引用文件、函数、配置或数字前先确认存在;估算应标明依据或明确为估算。 -## 规则 3:最小化输出范围 +## 自然表达 -- 输出范围 = 任务范围,不加未要求的 section -- 不做投机抽象——当前不需要的扩展点不展开 -- 模板中的可选区块,无内容时整块省略而非留空壳 +- 中文使用完整、顺畅的句子。少用口号式短句、连续括号和抽象名词堆叠;技术词保留必要英文,不逐字翻译。 +- 英文按英语习惯组织句子。优先使用清楚的动词和具体主语,避免 noun stacks、corporate filler 和伪口语。 +- 中英文共享事实、边界和结论,但不要求逐句对应。 +- 段落围绕一个论点;结构能用短段落说清时,不强行使用表格或多级标题。 -## 规则 4:中英文排版 +## 排版 -- 中文与半角字符之间加空格:✅ `使用 API 获取 3 个 token` -- 中文正文使用全角标点:✅ `,。:;!?` -- 专有名词保持官方大小写:✅ `GitHub` `JavaScript` - -## 规则 5:段落约束 - -- 段落不超过 7 行,一段一个论点 -- 最多三级标题(`#` `##` `###`),不使用 `####` - -## 规则 6:引用可验证 - -- 文件路径、函数名、类名引用需确保实际存在 -- 不引用臆造的 API、配置项或文档章节 +- 中文与半角英文、数字之间留空格,使用全角中文标点。 +- 专有名词保持官方拼写,例如 `GitHub`、`JavaScript`。 +- 标题最多三级;正文不使用装饰性 emoji。 diff --git a/skills/zh/skills/sopify/templates/SKILL.md b/skills/zh/skills/sopify/templates/SKILL.md index b8322e0b..bea5aa6b 100644 --- a/skills/zh/skills/sopify/templates/SKILL.md +++ b/skills/zh/skills/sopify/templates/SKILL.md @@ -1,73 +1,70 @@ --- name: templates -description: 文档模板集合;创建文档时读取;包含所有知识库模板和方案文件模板 +description: 知识库文档模板;创建或补齐长期知识文件时按需读取。 --- -# 文档模板集合 +# 知识库模板 -**模板使用说明:** -1. 将 `{...}` 内容替换为实际内容。 -2. 正式 plan 包默认带评分区块。 -3. `blueprint/README.md` 只保留轻量入口索引。 -4. 若 `blueprint/` 根层存在额外长期专题文档,必须在 `blueprint/README.md` 里显式列入口。 -5. `blueprint/tasks.md` 只保留未完成长期项与明确延后项;已完成项不继续保留在该文件。 +Templates 只定义稳定的知识库文档结构,不决定写入时机、同步政策或方案生命周期。 -## A1 | 知识库文档模板 +- 知识库规则与 `knowledge_sync`:读取 `kb` Skill。 +- 方案级别 `light / standard / architecture` 及方案正文模板:读取 Design `assets/`。 +- 活动方案、handoff 和 receipts 的读取与写入:遵循正式 Protocol。 -### project.md +使用模板时替换占位符,删掉无内容的可选区块。不要把一次性实现细节写进长期知识。 + +## `project.md` ```markdown # 项目技术约定 ## 技术栈 -- 核心: {语言版本} / {框架版本} +- 核心: {语言或框架版本} - 构建: {构建工具} - 测试: {测试框架} ## 使用约定 -- 这里只沉淀可复用的长期技术约定。 -- 一次性实现细节不默认写入本文件。 +- {跨任务可复用的技术约定} ## 文档边界 -- `project.md`: 可复用技术约定 -- `blueprint/background.md`: 长期目标、范围、非目标 -- `blueprint/design.md`: 模块/宿主/目录/消费契约 +- `project.md`: 技术约定 +- `blueprint/background.md`: 长期目标、范围与非目标 +- `blueprint/design.md`: 模块、宿主、目录与消费契约 - `blueprint/tasks.md`: 未完成长期项与明确延后项 ``` -### blueprint/README.md +## `blueprint/README.md` ```markdown # 项目蓝图索引 状态: {当前状态} -维护方式: 仅保留状态、当前目标、当前焦点与阅读入口;长说明进入其他 blueprint 文件 +维护方式: 只保留状态、当前目标、当前焦点和阅读入口 ## 当前目标 -- 项目:`{项目名}` -- 长期目标与范围进入 `./background.md` +- {长期目标摘要} ## 当前焦点 -- 当前活动 plan:{有/无} -- history 归档:{状态} +- 活动方案: {无 / 链接到 plan.md} +- 归档状态: {状态} -## 深入阅读入口 +## 深入阅读 - [项目技术约定](../project.md) -- [蓝图背景](./background.md) -- [蓝图设计](./design.md) -- [蓝图任务](./tasks.md) -- [长期专题蓝图](./{extra_blueprint_doc}.md) # 如存在额外长期专题文档,则逐项列出 +- [背景](./background.md) +- [设计](./design.md) +- [任务](./tasks.md) - [变更历史](../history/index.md) ``` -### blueprint/background.md +如 `blueprint/` 根目录有长期专题文档,在“深入阅读”中逐项列出。 + +## `blueprint/background.md` ```markdown # 蓝图背景 ## 长期目标 -- {目标1} -- {目标2} +- {目标} ## 范围 - 范围内: {内容} @@ -77,147 +74,52 @@ description: 文档模板集合;创建文档时读取;包含所有知识库 - {内容} ``` -### blueprint/design.md +## `blueprint/design.md` ```markdown # 蓝图设计 ## 正式契约 -- `knowledge_sync` 是唯一正式同步契约。 -- `state/active_plan.json` 只提供 `plan_id`,活动方案语义入口固定为 `plan//plan.md`。 - -## 消费契约 +- {跨方案持续有效的契约} -| Context Profile | Reads | Fail-open Rule | Notes | -|-----|------|------|------| -| `consult` | `project.md`, `preferences.md`, `blueprint/README.md` | 缺 deep blueprint 不报错 | 不强制物化 plan | -| `plan` | `L1` + `active_plan.json → plan.md` | 缺 deep blueprint 时按生命周期补齐 | history 不是默认上下文 | -| `finalize` | `active_plan.json → plan.md`, `knowledge_sync`, `blueprint/*`, `history/index.md` | 缺 `history/index.md` 时现场创建 | `required` 未满足则阻断 | +## 模块与消费边界 +- {模块、宿主或目录职责} ``` -### blueprint/tasks.md +## `blueprint/tasks.md` ```markdown # 蓝图任务 -状态: 只保留未完成长期项与明确延后项;已完成项不继续留在本文件。 - ## 未完成长期项 - [ ] {长期项} ## 明确延后项 -- [-] {延后项} +- [-] {延后项与重访条件} ``` -### history/index.md +只保留未完成长期项和明确延后项,不保留 `[x]` 项。 + +## `history/index.md` ```markdown # 变更历史索引 -| 时间戳 | 功能名称 | 状态 | 方案包 | -|--------|----------|------|--------| -| {YYYYMMDD} | {功能} | ✓ | [链接](YYYY-MM/...) | +| 日期 | 功能 | 状态 | 方案包 | +|------|------|------|--------| +| {YYYY-MM-DD} | {功能} | {状态} | [链接](YYYY-MM/...) | ``` -### user/preferences.md +## `user/preferences.md` ```markdown # 用户长期偏好 -> 仅记录用户明确声明的长期偏好;一次性指令不入库。 - -当前暂无已确认的长期偏好。 +- {用户明确声明、可跨任务复用的偏好} ``` -### user/feedback.jsonl +## `user/feedback.jsonl` ```json -{"timestamp":"2026-01-15T10:30:00Z","source":"chat","message":"以后默认先给最小改动清单","scope":"planning","promote_to_preference":true,"preference_id":"pref-002"} -{"timestamp":"2026-01-15T11:10:00Z","source":"chat","message":"这次把输出写详细点","scope":"current_task","promote_to_preference":false} +{"timestamp":"{ISO-8601}","source":"chat","message":"{原始反馈}","scope":"{范围}","promote_to_preference":false} ``` - -## A2 | 方案文件模板 - -所有级别都先生成带 `level` frontmatter 的 `plan.md`;standard 再增加 `tasks.md`,architecture 再增加 `design.md`。支持性 ADR、图和证据按需创建,不预建空目录。 - -### 所有级别 - plan.md - -```markdown ---- -title: {功能名称} -plan_id: {YYYYMMDD_feature} -level: {light|standard|architecture} ---- - -# {功能名称} - -评分: -- 方案质量: {X}/10 -- 落地就绪: {Y}/10 - -## Context / Why -{为什么要做} - -## Scope -{本次包含什么} - -## Approach -{最小可行方法} - -## Waves / Steps -- [ ] {步骤 1} - -## Key Decisions -- {已确认决策} - -## Constraints / Not-in-scope -- {明确不做什么} - -## Status / Progress -- [ ] {当前状态} - -## Next -{下一步或等待确认事项} -``` - -### Standard / Architecture - tasks.md - -```markdown -# 任务清单: {功能名称} - -目录: `.sopify/plan/{YYYYMMDD}_{feature}/` - -## 1. {模块名称} -- [ ] 1.1 在 `{文件路径}` 中实现 {功能} -- [ ] 1.2 在 `{文件路径}` 中实现 {功能} - -## 2. 测试 -- [ ] 2.1 {测试任务} - -## 3. 文档更新 -- [ ] 3.1 更新 `project.md / blueprint/background.md / blueprint/design.md / blueprint/tasks.md` -``` - -### Architecture - design.md - -```markdown -# 技术设计: {功能名称} - -## 技术方案 -- {实现要点} - -## 架构边界 -{模块关系与责任边界} - -## 验证策略 -- {验证方式} -``` - -## A3 | 任务状态符号 - -| 符号 | 含义 | -|-----|------| -| `[ ]` | 待执行 | -| `[x]` | 已完成 | -| `[-]` | 已跳过 | -| `[!]` | 阻塞中 | diff --git a/tests/behavior-scenarios/plain-language-output-v1.json b/tests/behavior-scenarios/plain-language-output-v1.json new file mode 100644 index 00000000..339884db --- /dev/null +++ b/tests/behavior-scenarios/plain-language-output-v1.json @@ -0,0 +1,76 @@ +{ + "schema_version": 1, + "source_revision": "ea92482cec1e93f41cbe63b68e1b067805f5dfd0", + "copilot_baseline": { + "zh-CN": {"characters": 36745, "bytes": 56414, "lines": 1919}, + "en-US": {"characters": 60734, "bytes": 61071, "lines": 1918} + }, + "copilot_after": { + "zh-CN": {"characters": 24154, "bytes": 41941, "lines": 1227}, + "en-US": {"characters": 45879, "bytes": 46086, "lines": 1226} + }, + "scenarios": [ + { + "scenario_id": "consult-readonly-zh-v1", + "language": "zh-CN", + "surface": "host/consult_readonly", + "input": "分析下,不改,等我确认。", + "evidence": [".sopify/blueprint/protocol.md#8"], + "expected_behavior": ["给出结论和必要证据", "仅在存在时列阻塞项或待决策项", "停车等待确认"], + "allowed_write_set": [] + }, + { + "scenario_id": "consult-readonly-en-v1", + "language": "en-US", + "surface": "host/consult_readonly", + "input": "Analyze this only. Do not change anything; wait for my confirmation.", + "evidence": [".sopify/blueprint/protocol.md#8"], + "expected_behavior": ["state the conclusion and necessary evidence", "include blockers or decisions only when present", "stop for confirmation"], + "allowed_write_set": [] + }, + { + "scenario_id": "analyze-user-material-v1", + "language": "bilingual", + "surface": "skill/analyze", + "input": "The user supplies a document, API material, design context, and a suggested implementation.", + "evidence": ["user material", "repository code", "governing contract"], + "expected_behavior": ["read accessible evidence first", "separate objective, deliverable, and candidate path", "ask only decision-relevant questions"], + "allowed_write_set": [] + }, + { + "scenario_id": "design-smallest-sufficient-v1", + "language": "bilingual", + "surface": "skill/design", + "input": "Choose between existing project capability and adding a new dependency.", + "evidence": ["existing implementation", "governing contract", "installed dependencies"], + "expected_behavior": ["check the current system", "choose the smallest sufficient path", "report Ready or Needs decision with evidence"], + "allowed_write_set": [".sopify/plan//"] + }, + { + "scenario_id": "develop-common-root-v1", + "language": "bilingual", + "surface": "skill/develop", + "input": "A bug crosses a shared boundary and affects several callers.", + "evidence": ["call sites", "tests", "approved plan"], + "expected_behavior": ["inspect affected callers", "fix the narrowest common root cause", "verify equivalent paths without widening scope"], + "allowed_write_set": ["approved implementation", "approved tests", "required knowledge sync"] + }, + { + "scenario_id": "managed-plan-knowledge-sync-v1", + "language": "bilingual", + "surface": "host/managed-plan", + "input": "Finish implementation while preserving protocol and knowledge ownership.", + "evidence": ["active plan", "knowledge_sync", "verification results"], + "expected_behavior": ["keep plan lifecycle in protocol and writer", "write only reusable knowledge", "stop at explicit checkpoints"], + "allowed_write_set": ["approved implementation", "plan semantic files", "required knowledge sync", "approved audit evidence"] + } + ], + "comparison": [ + {"scenario_id": "consult-readonly-zh-v1", "baseline": "protocol existed but no explicit host example", "after": "explicit zero-write contract in header and shared output contract"}, + {"scenario_id": "consult-readonly-en-v1", "baseline": "protocol existed but no explicit host example", "after": "equivalent zero-write contract in English"}, + {"scenario_id": "analyze-user-material-v1", "baseline": "context rules prioritized KB and could ask before reading supplied material", "after": "evidence-first handoff separates objective, deliverable, and candidate path"}, + {"scenario_id": "design-smallest-sufficient-v1", "baseline": "subjective dual scores and duplicated plan templates", "after": "Ready or Needs decision with evidence; Design assets are the sole plan-template owner"}, + {"scenario_id": "develop-common-root-v1", "baseline": "verification loop did not state the shared-root behavior", "after": "caller check, narrow common-root fix, and equivalent-path verification are explicit"}, + {"scenario_id": "managed-plan-knowledge-sync-v1", "baseline": "KB and Templates entry files repeated responsibilities and plan shapes", "after": "KB owns long-lived policy, Templates owns KB shapes, and protocol owns lifecycle"} + ] +} diff --git a/tests/golden-snapshots.json b/tests/golden-snapshots.json index 7e542ae1..87d50909 100644 --- a/tests/golden-snapshots.json +++ b/tests/golden-snapshots.json @@ -8,13 +8,13 @@ }, "protocol_version": "1.0", "snapshots": { - "codex:zh-CN:header": "896aeabaa8fd9cad5d5ba6012625e8079763d9280bad635bb30f94cf8d84596e", - "codex:en-US:header": "b14eb827816af17b13ddce7d0f799e21b57c12607ff2a6311f6ddfc4b2d639cc", - "claude:zh-CN:header": "0456c105cc51dcdf2ac2ee94324d32e04ded54b0b5ca8f47a630b9e4ffe98f12", - "claude:en-US:header": "212a04e1d15ec1417ede205aeb74d71790fa5e1d4678b51fc7ab9f60a6e3afc5", - "copilot:zh-CN:managed_block_payload": "6ba7e87904473dc3138d49e7f681aeb4aae37e32bb81e04002879a36c5713017", - "skills:zh-CN:tree": "4869836b785233879fa62a6c101a4634ce7f3ac6ec6e18cef6f96f6e65629447", - "copilot:en-US:managed_block_payload": "6b16ed4893d90ae1bbb8793def8db136d4bb098c366032701500cde51e1b1408", - "skills:en-US:tree": "76da619fd73029fe30c842515c82a13252fd497a7f8dd3550c56e7656454a999" + "codex:zh-CN:header": "9a55da8b1ee7586d70fd6823c4ea3e19d832f2c3649ac22c8a7b0f571cad5d75", + "codex:en-US:header": "7ce7cd9691af139e8bfbd133038d77bd0e87321465dd1c9c39b52d1f6a45c4e7", + "claude:zh-CN:header": "fc9f987709da091cb9656ffe55121572baf68ba1b9e048719445502a76faa69f", + "claude:en-US:header": "d90537c6b37546996a62bb9bdcee797fdbc4950977fac5cf731431380cf5fb90", + "copilot:zh-CN:managed_block_payload": "fa1068e8f62bbe7f58e5915a5648932073b88a6a656b5ec6b01e32365fd0e90d", + "skills:zh-CN:tree": "cd21df587f683acc612c833fc5d57e5d6fb8d954f69e68585b62f4bf5fd571c3", + "copilot:en-US:managed_block_payload": "9bd1f946064847295cb0958abf8fa146e73312d1c3e3bc2fe979cb2fa8b4c39e", + "skills:en-US:tree": "601ab7dacf8157848dc9d85f7420089c287a788d6746575115bcf74114b8113f" } } diff --git a/tests/test_golden_snapshots.py b/tests/test_golden_snapshots.py index 4073cb48..327e1f9a 100644 --- a/tests/test_golden_snapshots.py +++ b/tests/test_golden_snapshots.py @@ -142,16 +142,16 @@ def test_skill_tree_snapshot(lang_dir: str, locale: str) -> None: ("develop/assets/output-success.md", ["| 任务 |", "| 验证来源 |", "Changes:", "Next:"]), ("develop/assets/output-partial.md", ["| 任务 |", "| 阻塞原因 |", "| 验证来源 |", "Changes:", "Next:"]), ("develop/assets/output-quick-fix.md", ["| 验证来源 |", "Changes:", "Next:"]), - ("analyze/assets/success-output.md", ["假设与前提:", "已识别信息缺口:", "Changes:", "Next:"]), - ("design/assets/output-summary.md", ["方案质量:", "落地就绪:", "Changes:", "Next:"]), + ("analyze/assets/success-output.md", ["已确认依据:", "仍会影响结果的缺口", "Changes:", "Next:"]), + ("design/assets/output-summary.md", ["就绪状态:", "依据:", "Changes:", "Next:"]), ] _EN_TEMPLATE_MARKERS: list[tuple[str, list[str]]] = [ ("develop/assets/output-success.md", ["| Task |", "| Source |", "Changes:", "Next:"]), ("develop/assets/output-partial.md", ["| Task |", "| Block reason |", "| Source |", "Changes:", "Next:"]), ("develop/assets/output-quick-fix.md", ["| Source |", "Changes:", "Next:"]), - ("analyze/assets/success-output.md", ["Assumptions:", "Identified gaps:", "Changes:", "Next:"]), - ("design/assets/output-summary.md", ["Solution quality:", "Implementation readiness:", "Changes:", "Next:"]), + ("analyze/assets/success-output.md", ["Confirmed evidence:", "Material gaps", "Changes:", "Next:"]), + ("design/assets/output-summary.md", ["Readiness:", "Evidence:", "Changes:", "Next:"]), ] @@ -192,8 +192,8 @@ def _render_full(adapter: HostAdapter, lang_dir: str) -> str: return render_single_file(header_source, skills_source, adapter) -_OUTPUT_CONTRACT_ZH_MARKERS = ["输出契约", "必需 section", "条件增强与格式选择"] -_OUTPUT_CONTRACT_EN_MARKERS = ["Output Contract", "Required Sections", "Conditional Enhancement & Format Selection"] +_OUTPUT_CONTRACT_ZH_MARKERS = ["输出契约", "必要内容", "结构和密度"] +_OUTPUT_CONTRACT_EN_MARKERS = ["Output Contract", "Required content", "Structure and density"] @pytest.mark.parametrize( diff --git a/tests/test_plain_language_contracts.py b/tests/test_plain_language_contracts.py new file mode 100644 index 00000000..621f72b7 --- /dev/null +++ b/tests/test_plain_language_contracts.py @@ -0,0 +1,270 @@ +from __future__ import annotations + +import json +from pathlib import Path +import tempfile + +import pytest + +from installer.hosts.base import HEADER_TEMPLATE_NAME, install_host_assets, render_single_file +from installer.hosts.copilot import COPILOT_ADAPTER +from installer.hosts.qoder import QODER_ADAPTER +from installer.validate import validate_host_install + + +REPO_ROOT = Path(__file__).resolve().parents[1] +SCENARIOS = REPO_ROOT / "tests" / "behavior-scenarios" / "plain-language-output-v1.json" + + +def _jpeg_dimensions(path: Path) -> tuple[int, int]: + data = path.read_bytes() + assert data.startswith(b"\xff\xd8") + offset = 2 + start_of_frame = {0xC0, 0xC1, 0xC2, 0xC3, 0xC5, 0xC6, 0xC7, 0xC9, 0xCA, 0xCB, 0xCD, 0xCE, 0xCF} + + while offset < len(data): + assert data[offset] == 0xFF + while offset < len(data) and data[offset] == 0xFF: + offset += 1 + marker = data[offset] + offset += 1 + if marker in start_of_frame: + height = int.from_bytes(data[offset + 3 : offset + 5], "big") + width = int.from_bytes(data[offset + 5 : offset + 7], "big") + return width, height + if marker in {0xD9, 0xDA}: + break + segment_length = int.from_bytes(data[offset : offset + 2], "big") + offset += segment_length + + raise AssertionError(f"JPEG dimensions not found: {path}") + + +def _skill_file(language: str, relative: str) -> str: + return ( + REPO_ROOT / "skills" / language / "skills" / "sopify" / relative + ).read_text(encoding="utf-8") + + +def test_bilingual_skill_trees_have_the_same_files() -> None: + roots = [REPO_ROOT / "skills" / language / "skills" / "sopify" for language in ("zh", "en")] + trees = [ + {path.relative_to(root).as_posix() for path in root.rglob("*") if path.is_file()} + for root in roots + ] + assert trees[0] == trees[1] + + +def test_behavior_scenarios_are_versioned_and_bounded() -> None: + payload = json.loads(SCENARIOS.read_text(encoding="utf-8")) + assert payload["schema_version"] == 1 + assert len(payload["scenarios"]) == 6 + assert len(payload["comparison"]) == 6 + assert len(payload["source_revision"]) == 40 + + required = { + "scenario_id", + "language", + "surface", + "input", + "evidence", + "expected_behavior", + "allowed_write_set", + } + assert all(required <= scenario.keys() for scenario in payload["scenarios"]) + readonly = [ + scenario + for scenario in payload["scenarios"] + if scenario["surface"] == "host/consult_readonly" + ] + assert {scenario["language"] for scenario in readonly} == {"zh-CN", "en-US"} + assert all(scenario["allowed_write_set"] == [] for scenario in readonly) + for language, locale in (("zh", "zh-CN"), ("en", "en-US")): + source_root = REPO_ROOT / "skills" / language + rendered = render_single_file( + source_root / HEADER_TEMPLATE_NAME, + source_root / "skills" / "sopify", + COPILOT_ADAPTER, + ) + current = { + "characters": len(rendered), + "bytes": len(rendered.encode("utf-8")), + "lines": len(rendered.splitlines()), + } + baseline = payload["copilot_baseline"][locale] + observed_after = payload["copilot_after"][locale] + assert current.keys() == baseline.keys() == observed_after.keys() + assert all(current[metric] < baseline[metric] for metric in current) + assert all(observed_after[metric] < baseline[metric] for metric in observed_after) + + +@pytest.mark.parametrize("language", ["zh", "en"]) +def test_design_owns_plan_templates_and_uses_readiness(language: str) -> None: + design_rules = _skill_file(language, "design/references/design-rules.md") + plan_template = _skill_file(language, "design/assets/plan-template.md") + summary = _skill_file(language, "design/assets/output-summary.md") + templates = _skill_file(language, "templates/SKILL.md") + + assert "Ready" in design_rules and "Needs decision" in design_rules + assert "`strict`" in design_rules and "`adaptive`" in design_rules + assert "Ready" in plan_template and "Needs decision" in plan_template + assert "Ready" in summary and "Needs decision" in summary + assert "Solution quality" not in plan_template + assert "方案质量" not in plan_template + assert "## A2" not in templates + assert "Protocol" in templates + assert "plan//plan.md" not in templates + + +@pytest.mark.parametrize("language", ["zh", "en"]) +def test_phase_owners_keep_their_boundaries(language: str) -> None: + analyze = _skill_file(language, "analyze/references/analyze-rules.md") + analyze_output = _skill_file(language, "analyze/assets/success-output.md") + develop = _skill_file(language, "develop/references/develop-rules.md") + kb = _skill_file(language, "kb/SKILL.md") + output_contract = _skill_file(language, "references/output-contract.md") + + assert "consult_readonly" in analyze + assert "`strict`" in analyze and "`adaptive`" in analyze + assert "证据来源不限" in analyze or "not an exhaustive source list" in analyze + assert "Deliverable:" in analyze_output or "交付物:" in analyze_output + assert "Assumptions used" in analyze_output or "本次采用的假设" in analyze_output + assert "Type:" not in analyze_output and "类型:" not in analyze_output + assert "explicit assumptions when used" in output_contract or "实际采用的假设" in output_contract + assert "common root cause" in develop or "共同根因" in develop + assert "knowledge_sync" in kb + assert "sopify_writer" in kb + + +@pytest.mark.parametrize("language", ["zh", "en"]) +def test_copilot_single_file_has_no_script_source_or_dangling_path(language: str) -> None: + source_root = REPO_ROOT / "skills" / language + rendered = render_single_file( + source_root / HEADER_TEMPLATE_NAME, + source_root / "skills" / "sopify", + COPILOT_ADAPTER, + ) + + assert " - - MANAGED PLAN 4-STEP ENTRY - 1. active_plan.json → locate plan - 2. plan.md → semantic entry point - 3. current_handoff.json → resume hint - 4. receipts/ → latest evidence + + MANAGED PLAN 4-STEP ENTRY + 1. active_plan.json → locate plan + 2. plan.md → semantic entry point + 3. current_handoff.json → resume hint + 4. receipts/ → latest evidence @@ -128,8 +128,8 @@ Archived plans + receipts - project.md - Conventions + Project + Conventions · project.md Plans, decisions, and receipts persist as project assets — not chat history diff --git a/assets/sopify-product-form-release-en.svg b/assets/sopify-product-form-release-en.svg index 3de72646..885bb288 100644 --- a/assets/sopify-product-form-release-en.svg +++ b/assets/sopify-product-form-release-en.svg @@ -196,7 +196,7 @@ V ARCHIVE - Archive · evidence stays inspectable + Archive · inspectable evidence Plans and receipts move to history From 455eb4bfbe7cf5bb3b7e08f0f6b560e1d96f13db Mon Sep 17 00:00:00 2001 From: "sanze.li" <2522048902@qq.com> Date: Tue, 21 Jul 2026 11:35:36 +0800 Subject: [PATCH 3/3] chore: prepare 2026-07-21 release Release-Sync: yes Release-Version: 2026-07-21 Release-Date: 2026-07-21 --- CHANGELOG.md | 18 ++++++++++++++++++ README.md | 2 +- README.zh-CN.md | 2 +- skills/en/header.md.template | 2 +- skills/zh/header.md.template | 2 +- tests/golden-snapshots.json | 12 ++++++------ 6 files changed, 28 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fe49d77..35204841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,24 @@ Format: Summary → Changed → Plan Packages. File-level details live in `git l ## [Unreleased] +## [2026-07-21] - 2026-07-21 + +### Summary + +Added optional EvidentLoop installation and made Sopify's bilingual workflow, repository handoff, and public product surface easier to understand. + +### Changed + +- **Optional audit companion**: Added explicit `--with-evidentloop` installation with host-native Skill paths, prerequisite checks, healthy-component reuse, and clear partial-success recovery. +- **Workflow contracts**: Clarified the responsibilities and handoffs of Analyze, Design, Develop, KB, and Templates while keeping consultation read-only and archival explicit. +- **Public product surface**: Added responsive English and Chinese product pages, refreshed workflow and architecture visuals, and documented the optional companion and Python 3.11 requirement. +- **Protocol and verification**: Tightened plan-package, writer, distribution, and host-consumption contracts with targeted scenarios and full regression coverage. + +### Plan Packages + +- `20260718_evidentloop_optional_audit_integration` → archived to `history/2026-07/` +- `20260720_plain_language_output` → release candidate; archive follows verified publication + ## [2026-07-17.194640] - 2026-07-17 ### Summary diff --git a/README.md b/README.md index 5718cd84..ea217fe6 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=for-the-badge)](./LICENSE) [![Docs](https://img.shields.io/badge/docs-CC%20BY%204.0-green.svg?style=for-the-badge)](./LICENSE-docs) -[![Version](https://img.shields.io/badge/version-2026--07--17.194640-orange.svg?style=for-the-badge)](#version-history) +[![Version](https://img.shields.io/badge/version-2026--07--21-orange.svg?style=for-the-badge)](#version-history) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](./CONTRIBUTING.md) [![Codex](https://img.shields.io/badge/host-Codex-4A9EFF.svg?style=for-the-badge)](#quick-start) diff --git a/README.zh-CN.md b/README.zh-CN.md index 181fe91c..1cee5fa3 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -6,7 +6,7 @@ [![许可证](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=for-the-badge)](./LICENSE) [![文档](https://img.shields.io/badge/docs-CC%20BY%204.0-green.svg?style=for-the-badge)](./LICENSE-docs) -[![版本](https://img.shields.io/badge/version-2026--07--17.194640-orange.svg?style=for-the-badge)](#版本历史) +[![版本](https://img.shields.io/badge/version-2026--07--21-orange.svg?style=for-the-badge)](#版本历史) [![欢迎PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](./CONTRIBUTING_CN.md) [![Codex](https://img.shields.io/badge/host-Codex-4A9EFF.svg?style=for-the-badge)](#快速开始) diff --git a/skills/en/header.md.template b/skills/en/header.md.template index dca8afb8..35e53739 100644 --- a/skills/en/header.md.template +++ b/skills/en/header.md.template @@ -1,5 +1,5 @@ - + # Sopify - Adaptive AI Programming Assistant diff --git a/skills/zh/header.md.template b/skills/zh/header.md.template index f64c83e0..fab4647d 100644 --- a/skills/zh/header.md.template +++ b/skills/zh/header.md.template @@ -1,5 +1,5 @@ - + # Sopify - 自适应 AI 编程助手 diff --git a/tests/golden-snapshots.json b/tests/golden-snapshots.json index 87d50909..0608c89c 100644 --- a/tests/golden-snapshots.json +++ b/tests/golden-snapshots.json @@ -8,13 +8,13 @@ }, "protocol_version": "1.0", "snapshots": { - "codex:zh-CN:header": "9a55da8b1ee7586d70fd6823c4ea3e19d832f2c3649ac22c8a7b0f571cad5d75", - "codex:en-US:header": "7ce7cd9691af139e8bfbd133038d77bd0e87321465dd1c9c39b52d1f6a45c4e7", - "claude:zh-CN:header": "fc9f987709da091cb9656ffe55121572baf68ba1b9e048719445502a76faa69f", - "claude:en-US:header": "d90537c6b37546996a62bb9bdcee797fdbc4950977fac5cf731431380cf5fb90", - "copilot:zh-CN:managed_block_payload": "fa1068e8f62bbe7f58e5915a5648932073b88a6a656b5ec6b01e32365fd0e90d", + "codex:zh-CN:header": "b70f95b07b89c5eb4c91db6b79cb2b9924d7dde5ce087a45eceb9c79fe0eb4ba", + "codex:en-US:header": "a8dced69b654d5dc9fc81034fda7fefc9b686a02004e2996bc52e04fb1c7ee03", + "claude:zh-CN:header": "b25b09db3cfc17b76b721090f8418ca732c84c1cbd483868f28e2c7512e18176", + "claude:en-US:header": "fd00126d0b0d3b15b6d3e610aef3876fa0c2d4f401ec8e99426aa190673d7ae6", + "copilot:zh-CN:managed_block_payload": "5cc188b8d78de5a10a09e2b5b16fc34193757c295b9ef33f6d43883f054b0dfe", "skills:zh-CN:tree": "cd21df587f683acc612c833fc5d57e5d6fb8d954f69e68585b62f4bf5fd571c3", - "copilot:en-US:managed_block_payload": "9bd1f946064847295cb0958abf8fa146e73312d1c3e3bc2fe979cb2fa8b4c39e", + "copilot:en-US:managed_block_payload": "6a6a3b9a227a789ccdc96e34f1b4d7d911ae7185eec7a0dfbad0f6ac0fd4b5e9", "skills:en-US:tree": "601ab7dacf8157848dc9d85f7420089c287a788d6746575115bcf74114b8113f" } }