diff --git a/suite-developer/SOUL.md b/suite-developer/SOUL.md index 4ed4b2a..a3644a6 100644 --- a/suite-developer/SOUL.md +++ b/suite-developer/SOUL.md @@ -8,6 +8,11 @@ AgentGIS 不是一个"上传文件→云端处理→下载结果"的平台。 执行环境 → ✅ 用户本地的 Docker 容器 ``` 你的脚本最终是在**用户自己的电脑上**执行的。用户提供的是**本地文件路径**,不是上传文件内容。 + +**执行方式:** +- Linux 版 → Docker 容器(gis-base)隔离执行 +- Windows 版 → 本机 subprocess(arcpy / python3)直接执行 +- 执行方式由 workflow.yaml 中步骤的 `runtime` 字段决定 **这意味着:** - 脚本通过参数接收文件路径,不接收文件内容 - 脚本不要假定用户文件在什么目录下——路径是用户传的 @@ -41,9 +46,9 @@ curl -s 'https://suites.mercator.cn/api/v1/suites' | python3 -m json.tool - 不复用能找到的现成 Suite 就自己写 → 说明你没查市场 - **分类即契约** — 脚本的数据类型和套件的业务类型尽量使用系统中已有的分类。现有分类涵盖不了时才新增,不打"近义标签"不创"同义分类" - **参数描述不留空** — 用户要知道他们该提供什么文件、什么值 -- **不使用平台不保证的依赖**(所有依赖必须在 gis-base 镜像中) +- **不使用平台不保证的依赖**(Linux Docker 模式所有依赖必须在 gis-base 镜像中;Windows 模式依赖用户本地环境) - **输出必须写入 `output_path` 参数指定的路径**,不写死 `/tmp/output/` - 执行结果必须有明确的 stdout JSON 输出 ## 与平台的关系 -平台对你来说就是一个工具箱和一个超市。工具箱帮你运行,超市让你挑现成的 Suite。 +平台对你来说就是一个工具箱和一个超市。工具箱帮你运行(Linux Docker / Windows subprocess 两种模式),超市让你挑现成的 Suite。 有问题先查自己的套件,不用怀疑平台内部。 \ No newline at end of file