@antprofuse/saddle-skill 0.1.3 → 0.2.0-rc.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/SKILL.md +66 -23
  2. package/agents/openai.yaml +3 -3
  3. package/assets/{v1-business → registry-consumer}/Cargo.lock +117 -235
  4. package/assets/registry-consumer/Cargo.toml +20 -0
  5. package/assets/registry-consumer/src/generated_artifact.rs +858 -0
  6. package/assets/registry-consumer/src/lib.rs +12 -0
  7. package/assets/registry-consumer/tests/provider_consumer.rs +20 -0
  8. package/package-files.txt +25 -0
  9. package/package-manifest.json +112 -0
  10. package/package.json +6 -6
  11. package/references/api-boundary.md +71 -0
  12. package/references/declaration-schema.md +115 -0
  13. package/references/identity-closure.json +49 -0
  14. package/references/machine-schema.md +47 -0
  15. package/references/migration.md +24 -0
  16. package/references/public-api.snapshot +16 -0
  17. package/scripts/parameterized-capacity-facts.py +254 -0
  18. package/scripts/sync-identity-closure.py +124 -0
  19. package/scripts/validate-contract.sh +62 -0
  20. package/scripts/validate-generated-preflight.sh +120 -0
  21. package/scripts/validate-generated-project.sh +123 -0
  22. package/scripts/validate-identity-closure.py +138 -0
  23. package/scripts/validate-machine-input.sh +48 -0
  24. package/scripts/validate-managed-objects-peak.py +147 -0
  25. package/scripts/validation-cache-key.py +88 -0
  26. package/LICENSE-APACHE +0 -203
  27. package/LICENSE-MIT +0 -22
  28. package/assets/v1-business/Cargo.toml +0 -12
  29. package/assets/v1-business/schema.sql +0 -18
  30. package/assets/v1-business/src/main.rs +0 -42
  31. package/assets/v1-business/src/order.rs +0 -118
  32. package/assets/v1-business/src/user.rs +0 -54
  33. package/references/db-0.1.1.md +0 -96
  34. package/references/gates-0.1.1.md +0 -77
  35. package/references/observability-0.1.1.md +0 -69
  36. package/references/overview-0.1.1.md +0 -73
  37. package/references/runtime-0.1.1.md +0 -54
  38. package/references/service-0.1.1.md +0 -124
  39. package/references/validation-0.1.1.md +0 -50
  40. package/scripts/check-business-boundaries.sh +0 -5
  41. package/scripts/check_business_boundaries.py +0 -356
package/SKILL.md CHANGED
@@ -1,30 +1,73 @@
1
1
  ---
2
- name: saddle-service
3
- description: 基于已发布的 `saddle-framework = "=0.1.1"` 构建和审查 Saddle V1 Rust 业务应用。当 AI Coding 需要创建单进程业务大库、Service 契约与内部调用、HTTP/JSON 入口、托管数据库查询与写入、单层事务、稳定错误、领域事件,或检查线程、运行时、Web、DB 和日志旁路时使用。
2
+ name: saddle-service-0-2
3
+ description: 使用 Saddle 0.2 冻结候选声明生成和审查受管 Rust 业务应用。仅在任务明确针对已发布且身份匹配的 Saddle 0.2 Rust 制品时使用,覆盖唯一 application bootstrap、静态 Service/route/内部调用图、query_optional、standalone write、单层 transaction commit/业务 rollback,以及禁止 V1、裸 I/O、普通容器和第二执行面的 Gate。
4
4
  ---
5
5
 
6
- # Saddle V1 研发契约
6
+ # Saddle 0.2 真实 Facade 研发契约候选
7
7
 
8
- 只将针对 crates.io `saddle-framework = "=0.1.1"` 编译通过的用法视为可用能力。
8
+ 先核对 Rust Facade、Skill package、[公开 API snapshot](references/public-api.snapshot)
9
+ 与 machine schema 的版本身份。开发候选必须精确匹配 manifest 中的 source commit;
10
+ 正式使用必须匹配已发布 Rust 制品。任一身份不一致时停止生成,不用其他 workspace
11
+ path、设计目标或相邻版本替代。
9
12
 
10
13
  ## 执行顺序
11
14
 
12
- 1. 阅读 [总览](references/overview-0.1.1.md),确定大库、模块和进程边界。
13
- 2. 按任务读取对应参考:
14
- - Service 定义、注册、对外入口或内部调用:读 [Service](references/service-0.1.1.md)
15
- - 启动、异步执行或关闭边界:读 [Runtime](references/runtime-0.1.1.md)。
16
- - 查询、写入、行解码或事务:读 [DB 与事务](references/db-0.1.1.md)。
17
- - 稳定错误、Trace 上下文或领域事件:读 [Observability](references/observability-0.1.1.md)
18
- - 新增依赖或交付前检查:读 [门禁](references/gates-0.1.1.md)。
19
- 3. 新建应用时复制 `assets/v1-business`,再按领域修改;不要重新装配中间件。
20
- 4. 业务 crate 只直接依赖精确版本的 Saddle 门面和必要的纯计算/序列化依赖。
21
- 5. 完成后执行 [验证](references/validation-0.1.1.md) 中的编译、依赖和边界检查。
22
-
23
- ## 不可突破的边界
24
-
25
- - 不读取、复制或修改 Saddle 中间件实现。
26
- - 不创建线程、async runtime、脱离 Saddle 管理的 task、Web Server、路由器、连接池、底层事务或日志 subscriber。
27
- - 不绕过 `ServiceClient` 调用其他业务模块,不绕过 `Database` 执行数据库 I/O。
28
- - 不记录完整请求、响应、SQL 参数、凭据或任意敏感对象。
29
- - 不使用设计文档中的目标替代已发布 API;编译失败时保留最小复现并提交控制 workspace。
30
- - 不声称 0.1.1 支持定时任务、后台任务、消息消费、外部 HTTP/RPC、文件 I/O、多数据源、嵌套/分布式事务、Metrics 或跨进程调用。
15
+ 1. 阅读 [声明语法](references/declaration-schema.md),只编写一个
16
+ `saddle::application!` 声明。
17
+ 2. 阅读 [公开 API 边界](references/api-boundary.md),区分稳定源码契约与
18
+ build-internal 类型。
19
+ 3. 涉及旧应用升级时阅读 [迁移规则](references/migration.md)。
20
+ 4. 交付前按 [machine schema](references/machine-schema.md) 生成并核对构建输入。
21
+ 5. `assets/registry-consumer` 为可编译基准生成私有
22
+ `GeneratedApplicationOwner`。application marker 必须公开一个 provider-generic、
23
+ consuming `run<B: ApprovedExternalBundle>(bundle, config)`;函数体只能在私有
24
+ generated module 内移动一次 owner 到
25
+ `ProductionLauncher::verify(bundle)?.run(config, GeneratedOwner)`。不得生成 bundle、
26
+ credential、raw constructor,也不得公开 owner。
27
+ 6. 运行 `scripts/validate-contract.sh <application.rs>` 与
28
+ `scripts/validate-generated-project.sh <project-root>`;核对 public API snapshot、
29
+ approved locks、package allowlist、同源 managed-object peak machine
30
+ fingerprint,再运行正式 Rust package 提供的 Gate,不自行实现替代 Gate。生成工程
31
+ 验证必须设置 `CARGO_NET_OFFLINE=true`,并通过已批准的 entry-local runner 创建
32
+ canonical `/tmp` 直属临时根;入口只接受其中独立的 `cargo-home`、`target` `work`,
33
+ 覆盖继承的 `CARGO_HOME`,在成功、STOP 和其他失败退出后删除整个临时根,并输出由
34
+ toolchain、target、features、lock、source 与 build contract 共同派生的 cache key。
35
+
36
+ ## 生成约束
37
+
38
+ - 生成唯一 bootstrap、registry seal、dispatcher、classified adapter 和 startup
39
+ assembly。
40
+ - generated module 和 owner 必须保持私有;业务声明只能命名 application marker,
41
+ 不能命名、构造、Clone、提取或重放 owner/token/proof。
42
+ - Test/部署控制面从外部注入合法 `ApprovedExternalBundle` 与 `SaddleConfig`;Skill 只生成
43
+ 可被该控制面调用的 business consumer,不生成或保存生产凭据与部署实例。
44
+ - route、Service、内部调用边、DB operation 与 transaction decision 必须全部来自
45
+ 同一声明。
46
+ - query、write、transaction 只使用静态 SQL 与固定受管参数/结果 shape。
47
+ - transaction 仅允许一个 write step,显式 `commit` 或 `business_rollback`。
48
+ - handler 保持 async 源码体验,但不得出现 boxed/dyn Future 或业务自建 executor。
49
+ - generated artifact 只携 route/framing、DB work、具体静态 layout、每 route
50
+ commitment/managed-object/DB credit 与 build/artifact/route-set identity。
51
+ - capacity、deadline、task bytes、StartupPlan 与 deployment calibration 由 Gate/Runtime
52
+ 从已验证资源产生;generated/业务不得填写、枚举、观察或依赖这些值。
53
+ - Service capacity、termination、continuation 与 runtime layout proof 必须由同一次
54
+ registry freeze 的整包进入 Facade 后在组件内部签发并消费。generated crate 不得实现
55
+ proof trait、声明 proof associated type、拆分 capacity leaf,或复制任何 identity。
56
+ - 私有 generated owner 只能把同次 freeze 的不可 `Clone` 整包移动进
57
+ `generated_bootstrap`,再把得到的 opaque bootstrap 作为 `seal.bind(bootstrap)` 的唯一
58
+ 输入;业务/provider 不得观察、构造或传入 layout、size、route identity 或 proof。
59
+
60
+ ## 停止条件
61
+
62
+ - Rust/Skill/schema 版本或摘要不匹配;
63
+ - 只有源码候选、没有身份匹配的已发布 Rust Facade,却要求按正式制品使用;
64
+ - 需要动态 SQL、多 step/嵌套事务、后台任务、第三方 I/O 或未交付能力;
65
+ - 需要 V1 `ServiceHandler`、`Statement`、普通 serde、`String`、`Vec`、raw sqlx、
66
+ 第二 Runtime/task/dispatcher/assembly;
67
+ - signed production bundle、final calibration 或 release profile 尚未由正式制品冻结。
68
+
69
+ 上述最后一项只禁止 Skill 伪造具体部署实例,不阻止生成 provider-generic consumer。
70
+ 若任务要求由 Skill 自造 bundle/credential,必须停止;若外部 Test provider 可用,则继续
71
+ 生成并验证 consumer。
72
+
73
+ 停止时提交最小可复现案例,不读取或复制中间件实现。
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "Saddle V1 研发契约"
3
- short_description: "使用已发布 API 构建完整 Saddle V1 业务应用"
4
- default_prompt: "使用 $saddle-service Saddle V1 契约实现并验证业务模块。"
2
+ display_name: "Saddle 0.2 研发契约"
3
+ short_description: "生成并验证受管 Service、数据库与单层事务应用"
4
+ default_prompt: "使用 $saddle-service-0-2 按真实 Facade 契约生成并验证 Saddle 0.2 应用。"