@sakanano-moe/agenthelm 6.5.3 → 6.7.0
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.
- package/README.md +68 -0
- package/README.zh-CN.md +28 -0
- package/bin/agenthelm.js +1 -1
- package/package.json +2 -2
- package/runtime/index.json +80 -0
- package/runtime/plugins/agent-pack/.codex-plugin/plugin.json +26 -0
- package/runtime/plugins/agent-pack/.mcp.json +12 -0
- package/runtime/plugins/agent-pack/hooks/hooks.json +16 -0
- package/runtime/plugins/agent-pack/mcp.json +14 -0
- package/runtime/plugins/agent-pack/plugin.json +20 -0
- package/runtime/plugins/agent-pack/references/capability-config.md +148 -0
- package/runtime/plugins/agent-pack/runtime/agent_pack_claude.py +448 -0
- package/runtime/{agent_pack_config.py → plugins/agent-pack/runtime/agent_pack_config.py} +178 -22
- package/runtime/{agenthelm.py → plugins/agent-pack/runtime/agenthelm.py} +42 -1
- package/runtime/plugins/agent-pack/runtime/agenthelm_runtime.py +388 -0
- package/runtime/{mcp_server.py → plugins/agent-pack/runtime/mcp_server.py} +30 -8
- package/runtime/plugins/agent-pack/skills/agent-pack/SKILL.md +46 -0
- package/runtime/plugins/agents-init/.codex-plugin/plugin.json +22 -0
- package/runtime/plugins/agents-init/content.json +31 -0
- package/runtime/plugins/agents-init/plugin.json +19 -0
- package/runtime/plugins/agents-init/skills/agents-init/AGENT.template.md +376 -0
- package/runtime/plugins/agents-init/skills/agents-init/SKILL.md +119 -0
- package/runtime/plugins/agents-init/skills/agents-init/index.html +357 -0
- package/runtime/plugins/agents-init/skills/agents-init/launcher.sh +93 -0
- package/runtime/plugins/agents-init/skills/agents-init/project.schema.json +171 -0
- package/runtime/plugins/agents-init/skills/agents-init/scripts/init_project.py +1190 -0
- package/runtime/plugins/agents-init/skills/agents-init/scripts/test_init_project.py +678 -0
- package/runtime/plugins/agents-init/skills/agents-init/skill.json +122 -0
- package/runtime/plugins/opinion-manager/.codex-plugin/plugin.json +26 -0
- package/runtime/plugins/opinion-manager/catalog/README.md +15 -0
- package/runtime/plugins/opinion-manager/catalog/rules/.gitkeep +0 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.align-requirements/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.assumptions-authority/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.batch-questions/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.bilingual-terms/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.calculations/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.chinese-response/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.clean-deliverable/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.complete-options/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.conclusion-first/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.concrete-titles/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.consistent-items/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.device-readable/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.editable-diagrams/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.evidence-inference/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.maintenance-chinese/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.maintenance-project-language/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.markdown-structure/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.portable-files/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.report-context/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.report-formats/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.report-review/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.response-brief/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.response-dense/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.rules-tools/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.semantic-wrap/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.solutions-proportional/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.solutions-three-level/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.tables-compact/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.tables-list-first/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.test-evidence/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/rules/om.versioned-files/versions/1.0.0.json +11 -0
- package/runtime/plugins/opinion-manager/catalog/templates/.gitkeep +0 -0
- package/runtime/plugins/opinion-manager/catalog/templates/delivery-standard/compact-tables/versions/1.0.0.json +21 -0
- package/runtime/plugins/opinion-manager/catalog/templates/delivery-standard/list-first/versions/1.0.0.json +21 -0
- package/runtime/plugins/opinion-manager/catalog/templates/development-standard/chinese-maintenance/versions/1.0.0.json +15 -0
- package/runtime/plugins/opinion-manager/catalog/templates/development-standard/project-language/versions/1.0.0.json +15 -0
- package/runtime/plugins/opinion-manager/catalog/templates/response-style/brief-chinese/versions/1.0.0.json +19 -0
- package/runtime/plugins/opinion-manager/catalog/templates/response-style/dense-chinese/versions/1.0.0.json +19 -0
- package/runtime/plugins/opinion-manager/catalog/templates/scenario/concise-project/versions/1.0.0.json +39 -0
- package/runtime/plugins/opinion-manager/catalog/templates/scenario/reviewed-project/versions/1.0.0.json +39 -0
- package/runtime/plugins/opinion-manager/catalog/templates/work-method/proportional/versions/1.0.0.json +20 -0
- package/runtime/plugins/opinion-manager/catalog/templates/work-method/three-level/versions/1.0.0.json +20 -0
- package/runtime/plugins/opinion-manager/content.json +63 -0
- package/runtime/plugins/opinion-manager/plugin.json +18 -0
- package/runtime/plugins/opinion-manager/references/lock.schema.json +14 -0
- package/runtime/plugins/opinion-manager/references/onboarding.md +57 -0
- package/runtime/plugins/opinion-manager/references/profile.schema.json +56 -0
- package/runtime/plugins/opinion-manager/references/rule.schema.json +16 -0
- package/runtime/plugins/opinion-manager/references/template.schema.json +71 -0
- package/runtime/plugins/opinion-manager/references/versioned-template.schema.json +19 -0
- package/runtime/plugins/opinion-manager/references/versioning.md +263 -0
- package/runtime/plugins/opinion-manager/runtime/constants.py +7 -0
- package/runtime/plugins/opinion-manager/runtime/context.py +180 -0
- package/runtime/plugins/opinion-manager/runtime/lifecycle.py +395 -0
- package/runtime/plugins/opinion-manager/runtime/opinion_manager.py +419 -0
- package/runtime/plugins/opinion-manager/runtime/versioned.py +705 -0
- package/runtime/plugins/opinion-manager/skills/opinion-manager/SKILL.md +62 -0
- package/runtime/plugins/opinion-manager/skills/opinion-manager/agents/openai.yaml +4 -0
- package/runtime/plugins/opinion-manager/templates/.gitkeep +1 -0
- package/runtime/plugins/project-orchestrator/.codex-plugin/plugin.json +24 -0
- package/runtime/plugins/project-orchestrator/content.json +37 -0
- package/runtime/plugins/project-orchestrator/plugin.json +19 -0
- package/runtime/plugins/project-orchestrator/references/asset-synonyms.example.json +8 -0
- package/runtime/plugins/project-orchestrator/references/case-workspaces.md +159 -0
- package/runtime/plugins/project-orchestrator/references/case.schema.json +31 -0
- package/runtime/plugins/project-orchestrator/runtime/assets.py +1288 -0
- package/runtime/plugins/project-orchestrator/runtime/case.py +557 -0
- package/runtime/plugins/project-orchestrator/runtime/case_workspace.py +350 -0
- package/runtime/plugins/project-orchestrator/runtime/memory.py +363 -0
- package/runtime/plugins/project-orchestrator/runtime/project_base.py +107 -0
- package/runtime/plugins/project-orchestrator/runtime/project_cli.py +599 -0
- package/runtime/plugins/project-orchestrator/runtime/project_demo.py +504 -0
- package/runtime/plugins/project-orchestrator/runtime/project_maintain.py +470 -0
- package/runtime/plugins/project-orchestrator/runtime/project_menu.py +394 -0
- package/runtime/plugins/project-orchestrator/runtime/project_real.py +522 -0
- package/runtime/plugins/project-orchestrator/runtime/project_write.py +329 -0
- package/runtime/plugins/project-orchestrator/runtime/wf.py +439 -0
- package/runtime/plugins/project-orchestrator/skills/project-orchestrator/SKILL.md +230 -0
- package/runtime/plugins/project-orchestrator/skills/project-orchestrator/agents/openai.yaml +4 -0
- package/runtime/plugins/project-orchestrator/templates/CASE.md +39 -0
- /package/runtime/{mcp_env_launcher.py → plugins/agent-pack/runtime/mcp_env_launcher.py} +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "development-standard",
|
|
3
|
+
"variant": "chinese-maintenance",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "工具职责与中文维护",
|
|
6
|
+
"description": "用途:中文维护的第一方 Skill 与项目文档。 不适用:修改第三方上游、企业私有接口或任意替代项目治理契约。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"中文维护的第一方 Skill 与项目文档。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.portable-files@1.0.0",
|
|
12
|
+
"om.rules-tools@1.0.0",
|
|
13
|
+
"om.maintenance-chinese@1.0.0"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "development-standard",
|
|
3
|
+
"variant": "project-language",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "工具职责与项目语言",
|
|
6
|
+
"description": "用途:按项目语言维护第一方 Skill 与文档。 不适用:未经授权的上游改写或缺少语言约定却直接翻译。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"按项目语言维护第一方 Skill 与文档。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.portable-files@1.0.0",
|
|
12
|
+
"om.rules-tools@1.0.0",
|
|
13
|
+
"om.maintenance-project-language@1.0.0"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "response-style",
|
|
3
|
+
"variant": "brief-chinese",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "中文简明表达",
|
|
6
|
+
"description": "用途:需要简明结论的中文沟通。 不适用:必须完整展开推导或已约定详尽交付的任务。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"需要简明结论的中文沟通。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.conclusion-first@1.0.0",
|
|
12
|
+
"om.chinese-response@1.0.0",
|
|
13
|
+
"om.bilingual-terms@1.0.0",
|
|
14
|
+
"om.markdown-structure@1.0.0",
|
|
15
|
+
"om.clean-deliverable@1.0.0",
|
|
16
|
+
"om.concrete-titles@1.0.0",
|
|
17
|
+
"om.response-brief@1.0.0"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "response-style",
|
|
3
|
+
"variant": "dense-chinese",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "中文完整分析",
|
|
6
|
+
"description": "用途:中文沟通与复杂分析的表达。 不适用:非中文输出、已指定其他写作风格的任务。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"中文沟通与复杂分析的表达。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.conclusion-first@1.0.0",
|
|
12
|
+
"om.chinese-response@1.0.0",
|
|
13
|
+
"om.bilingual-terms@1.0.0",
|
|
14
|
+
"om.markdown-structure@1.0.0",
|
|
15
|
+
"om.clean-deliverable@1.0.0",
|
|
16
|
+
"om.concrete-titles@1.0.0",
|
|
17
|
+
"om.response-dense@1.0.0"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "scenario",
|
|
3
|
+
"variant": "concise-project",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "简明沟通与项目交付组合",
|
|
6
|
+
"description": "用途:需要简明沟通、按需分析和项目语言维护的任务。 不适用:已要求完整固定分析框架的任务。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"需要简明沟通、按需分析和项目语言维护的任务。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.conclusion-first@1.0.0",
|
|
12
|
+
"om.chinese-response@1.0.0",
|
|
13
|
+
"om.bilingual-terms@1.0.0",
|
|
14
|
+
"om.markdown-structure@1.0.0",
|
|
15
|
+
"om.clean-deliverable@1.0.0",
|
|
16
|
+
"om.concrete-titles@1.0.0",
|
|
17
|
+
"om.response-brief@1.0.0",
|
|
18
|
+
"om.evidence-inference@1.0.0",
|
|
19
|
+
"om.test-evidence@1.0.0",
|
|
20
|
+
"om.calculations@1.0.0",
|
|
21
|
+
"om.complete-options@1.0.0",
|
|
22
|
+
"om.align-requirements@1.0.0",
|
|
23
|
+
"om.batch-questions@1.0.0",
|
|
24
|
+
"om.assumptions-authority@1.0.0",
|
|
25
|
+
"om.solutions-proportional@1.0.0",
|
|
26
|
+
"om.versioned-files@1.0.0",
|
|
27
|
+
"om.device-readable@1.0.0",
|
|
28
|
+
"om.semantic-wrap@1.0.0",
|
|
29
|
+
"om.editable-diagrams@1.0.0",
|
|
30
|
+
"om.consistent-items@1.0.0",
|
|
31
|
+
"om.report-context@1.0.0",
|
|
32
|
+
"om.report-formats@1.0.0",
|
|
33
|
+
"om.report-review@1.0.0",
|
|
34
|
+
"om.tables-compact@1.0.0",
|
|
35
|
+
"om.portable-files@1.0.0",
|
|
36
|
+
"om.rules-tools@1.0.0",
|
|
37
|
+
"om.maintenance-project-language@1.0.0"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "scenario",
|
|
3
|
+
"variant": "reviewed-project",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "完整分析与项目交付组合",
|
|
6
|
+
"description": "用途:需要完整分析、版本化交付及中文维护的项目任务。 不适用:未选择此偏好的项目;需要专属业务模板的任务。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"需要完整分析、版本化交付及中文维护的项目任务。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.conclusion-first@1.0.0",
|
|
12
|
+
"om.chinese-response@1.0.0",
|
|
13
|
+
"om.bilingual-terms@1.0.0",
|
|
14
|
+
"om.markdown-structure@1.0.0",
|
|
15
|
+
"om.clean-deliverable@1.0.0",
|
|
16
|
+
"om.concrete-titles@1.0.0",
|
|
17
|
+
"om.response-dense@1.0.0",
|
|
18
|
+
"om.evidence-inference@1.0.0",
|
|
19
|
+
"om.test-evidence@1.0.0",
|
|
20
|
+
"om.calculations@1.0.0",
|
|
21
|
+
"om.complete-options@1.0.0",
|
|
22
|
+
"om.align-requirements@1.0.0",
|
|
23
|
+
"om.batch-questions@1.0.0",
|
|
24
|
+
"om.assumptions-authority@1.0.0",
|
|
25
|
+
"om.solutions-three-level@1.0.0",
|
|
26
|
+
"om.versioned-files@1.0.0",
|
|
27
|
+
"om.device-readable@1.0.0",
|
|
28
|
+
"om.semantic-wrap@1.0.0",
|
|
29
|
+
"om.editable-diagrams@1.0.0",
|
|
30
|
+
"om.consistent-items@1.0.0",
|
|
31
|
+
"om.report-context@1.0.0",
|
|
32
|
+
"om.report-formats@1.0.0",
|
|
33
|
+
"om.report-review@1.0.0",
|
|
34
|
+
"om.tables-list-first@1.0.0",
|
|
35
|
+
"om.portable-files@1.0.0",
|
|
36
|
+
"om.rules-tools@1.0.0",
|
|
37
|
+
"om.maintenance-chinese@1.0.0"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "work-method",
|
|
3
|
+
"variant": "proportional",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "证据核验与按需分析",
|
|
6
|
+
"description": "用途:按影响和复杂度选择分析深度的问题解决。 不适用:用户已要求固定层次或完整框架的任务。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"按影响和复杂度选择分析深度的问题解决。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.evidence-inference@1.0.0",
|
|
12
|
+
"om.test-evidence@1.0.0",
|
|
13
|
+
"om.calculations@1.0.0",
|
|
14
|
+
"om.complete-options@1.0.0",
|
|
15
|
+
"om.align-requirements@1.0.0",
|
|
16
|
+
"om.batch-questions@1.0.0",
|
|
17
|
+
"om.assumptions-authority@1.0.0",
|
|
18
|
+
"om.solutions-proportional@1.0.0"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "work-method",
|
|
3
|
+
"variant": "three-level",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"name": "证据核验与三层方案",
|
|
6
|
+
"description": "用途:分析、比较与问题解决。 不适用:纯执行且无需方案分析的任务;用户明确排除的分支。 这是可选择的行为偏好,不代表普遍最优做法。",
|
|
7
|
+
"scopes": [
|
|
8
|
+
"分析、比较与问题解决。"
|
|
9
|
+
],
|
|
10
|
+
"rules": [
|
|
11
|
+
"om.evidence-inference@1.0.0",
|
|
12
|
+
"om.test-evidence@1.0.0",
|
|
13
|
+
"om.calculations@1.0.0",
|
|
14
|
+
"om.complete-options@1.0.0",
|
|
15
|
+
"om.align-requirements@1.0.0",
|
|
16
|
+
"om.batch-questions@1.0.0",
|
|
17
|
+
"om.assumptions-authority@1.0.0",
|
|
18
|
+
"om.solutions-three-level@1.0.0"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"packs": [
|
|
4
|
+
{
|
|
5
|
+
"id": "opinion-manager/catalog",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"kind": "catalog",
|
|
8
|
+
"title": "公开 Opinion 规则与模板目录",
|
|
9
|
+
"description": "可选择的规则与模板版本;项目采用情况由 opinion.lock.json 记录,更新经 opinion-manager 预览与确认。",
|
|
10
|
+
"sources": [
|
|
11
|
+
"catalog"
|
|
12
|
+
],
|
|
13
|
+
"materializes": [],
|
|
14
|
+
"project_lock": "opinion-manager",
|
|
15
|
+
"files": {
|
|
16
|
+
"catalog/README.md": "af654d84bdbc22c020dda7fe090d0ee364d5a892e93bdfa5fdd6c3305635ccb7",
|
|
17
|
+
"catalog/rules/.gitkeep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
18
|
+
"catalog/rules/om.align-requirements/versions/1.0.0.json": "26b95f2edce0d4942b3652c624b270a29fd75caa1fc5717debdffca126241091",
|
|
19
|
+
"catalog/rules/om.assumptions-authority/versions/1.0.0.json": "85b02b03bbf8447f703820026d9ebe6e9ac1182000c90451dad4c81cd23c23d6",
|
|
20
|
+
"catalog/rules/om.batch-questions/versions/1.0.0.json": "2cad060df9195bf6f47083b0443fb92a9e1735989991aab34aae0c2651d18337",
|
|
21
|
+
"catalog/rules/om.bilingual-terms/versions/1.0.0.json": "420531760d1ab5ffe52395a680597cb652574027e542fd4684b7166e14918c39",
|
|
22
|
+
"catalog/rules/om.calculations/versions/1.0.0.json": "e54f87a7993d5908a1adfff07534b85af96a317d90b6eda6b84d3f8701331a18",
|
|
23
|
+
"catalog/rules/om.chinese-response/versions/1.0.0.json": "6bd3337a65a81251fad64555a7702016807c64e78aeb9709cb50cdc7325662c5",
|
|
24
|
+
"catalog/rules/om.clean-deliverable/versions/1.0.0.json": "f0af00b2666ca7146447f17c8e13ca01c9e0d73c01883797787b44c045b06df2",
|
|
25
|
+
"catalog/rules/om.complete-options/versions/1.0.0.json": "ef9ee103ee35dea554ae5d72735ebdeb7b0e16bf707b2362ef31be004c63110b",
|
|
26
|
+
"catalog/rules/om.conclusion-first/versions/1.0.0.json": "2c0975c3fba8d4553b69a714fd324a1240c10ba0429904740db853cf10d8f8d3",
|
|
27
|
+
"catalog/rules/om.concrete-titles/versions/1.0.0.json": "019d017fc9181339f1f969fd3e81323761e28b755c4ef434fb6af4d55925f538",
|
|
28
|
+
"catalog/rules/om.consistent-items/versions/1.0.0.json": "dd7030332d69d2eb91a7b1af34a3ac37d49e4018365da1e7a2d10afd71ed66f0",
|
|
29
|
+
"catalog/rules/om.device-readable/versions/1.0.0.json": "0afce0068b778ffa8c623cc1ff208192f70e03434f0ace4fd303565ba728a75b",
|
|
30
|
+
"catalog/rules/om.editable-diagrams/versions/1.0.0.json": "68d293ebd061527d948e892b9f4503a74043ed37ecf2a922cdd9047f508e2ed8",
|
|
31
|
+
"catalog/rules/om.evidence-inference/versions/1.0.0.json": "01593b17d08a67ee41b28d96e454b25d752fd5eccc341476a75d2bfb541884f2",
|
|
32
|
+
"catalog/rules/om.maintenance-chinese/versions/1.0.0.json": "6a6659917a0bccda3750f79727ea433eb63d40426aa2a212b65499a8160fc181",
|
|
33
|
+
"catalog/rules/om.maintenance-project-language/versions/1.0.0.json": "c29d447ac315533a52a6c242d7cc52b1668d9945c87c1f922dce261872730235",
|
|
34
|
+
"catalog/rules/om.markdown-structure/versions/1.0.0.json": "3647daeb2f4e4f532c8f77a033703bd3b36bbdd355a1f1f6ce8ac1e19afb66d7",
|
|
35
|
+
"catalog/rules/om.portable-files/versions/1.0.0.json": "f638ce7554a11e8f793b63ee01ea0ca65a8df405b3ca34da1ad8865960908057",
|
|
36
|
+
"catalog/rules/om.report-context/versions/1.0.0.json": "c423df33e1ad8dbf7d060b15fb23b35b68ebf924beb76ac129b346e5cf46c917",
|
|
37
|
+
"catalog/rules/om.report-formats/versions/1.0.0.json": "1fa5a40415061366227cdba554bc811bfabdc764b110adfdfedf5935e2239774",
|
|
38
|
+
"catalog/rules/om.report-review/versions/1.0.0.json": "054ebce7547cf7254a0d9d03af8b651daf6ae6361c921e3fa111aea7f9d96d4e",
|
|
39
|
+
"catalog/rules/om.response-brief/versions/1.0.0.json": "1d64ac6bedde9fd7205c6e517bb484acebedd08fe82f06aa761cf04bf010414a",
|
|
40
|
+
"catalog/rules/om.response-dense/versions/1.0.0.json": "5dda9f066dae841df986a190f00ea0bc56c0d3b0ce42ebffa9b2e1910dc0c4b9",
|
|
41
|
+
"catalog/rules/om.rules-tools/versions/1.0.0.json": "6f0657b70bd2e15e0dc68b95a9ef77234cd4af79d40a9a9f8a8158da16323a8d",
|
|
42
|
+
"catalog/rules/om.semantic-wrap/versions/1.0.0.json": "77890d37d6e21bf0568df250d5ec6398699c595728decf624d2f6ac8887802d7",
|
|
43
|
+
"catalog/rules/om.solutions-proportional/versions/1.0.0.json": "4ba50387659bc4e4593026a2ab253abda0f9d0e8e959063957dc58d72dbd5dac",
|
|
44
|
+
"catalog/rules/om.solutions-three-level/versions/1.0.0.json": "c9c2c2bad29e79a649ce04c95c9a2cb5a7ba6b92e5318878d7d5a40e50df7b6d",
|
|
45
|
+
"catalog/rules/om.tables-compact/versions/1.0.0.json": "0822de141431d920e6bf8ae0cc7a07641ad34e4248d252133f5a488fc17610f4",
|
|
46
|
+
"catalog/rules/om.tables-list-first/versions/1.0.0.json": "8e4d9f8d0382ca9a4a06a31e64bc402bfe1d2f8fd80f576670d28de26565fe15",
|
|
47
|
+
"catalog/rules/om.test-evidence/versions/1.0.0.json": "5fb88ea8478601128a5662077beb8180126c3c7529a9e54fa4b324a47e1b9304",
|
|
48
|
+
"catalog/rules/om.versioned-files/versions/1.0.0.json": "b5cc996847cf20f4764be135c4a5189a30f16dd26d4eaeda38bf6318820c256c",
|
|
49
|
+
"catalog/templates/.gitkeep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
50
|
+
"catalog/templates/delivery-standard/compact-tables/versions/1.0.0.json": "b0d988b5e62017ce4784466f590fdc3ac3693412541ab71f788beac0658c25e1",
|
|
51
|
+
"catalog/templates/delivery-standard/list-first/versions/1.0.0.json": "3ea2774fb2f3fb5943d83eae3d36c637b4bcc6bbc45c54cf4428de0db1c4240f",
|
|
52
|
+
"catalog/templates/development-standard/chinese-maintenance/versions/1.0.0.json": "3d268a6a323d4bac1afcd5b8539b65f4019ab112850b223c61ee06615840248d",
|
|
53
|
+
"catalog/templates/development-standard/project-language/versions/1.0.0.json": "6f2d69873b198ce0cf7fac509cbb8f4702de37c8d98ff3c5ec31578022e0d990",
|
|
54
|
+
"catalog/templates/response-style/brief-chinese/versions/1.0.0.json": "951aacd484989835be5811730510a103d2efe044342f275066f64765d747448b",
|
|
55
|
+
"catalog/templates/response-style/dense-chinese/versions/1.0.0.json": "72479e811a3db0a9c50401a60f0c06694e00014a558ad1c20ed78945e99edcfa",
|
|
56
|
+
"catalog/templates/scenario/concise-project/versions/1.0.0.json": "efa1adfed739a206699cd6ae34b620d8c4717343959ffe63fe7ecc0456b16614",
|
|
57
|
+
"catalog/templates/scenario/reviewed-project/versions/1.0.0.json": "4b51fcccb57c237eee3fff56b2a73c86252bb7ee9cb5e71d1aa2cfc0d6062aa1",
|
|
58
|
+
"catalog/templates/work-method/proportional/versions/1.0.0.json": "e73ea29f532d09813b00ed161e9beb7ab079eb56dda5ecffda1c30cc630d0bd8",
|
|
59
|
+
"catalog/templates/work-method/three-level/versions/1.0.0.json": "0fa27605f23901f7d120d5d6c4ee63f14dbe12c4da53b1e3287da3d4b68da5ef"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
|
+
"name": "opinion-manager",
|
|
4
|
+
"version": "0.4.2",
|
|
5
|
+
"description": "Manage Agent behavior rules through templates, partial selection, blank iteration, and authorized-memory candidates, with complete previews and exact version locks.",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "lc4t"
|
|
8
|
+
},
|
|
9
|
+
"repository": "https://github.com/lc4t/agenthelm",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"opinion-manager",
|
|
13
|
+
"agent-behavior",
|
|
14
|
+
"agent-rules",
|
|
15
|
+
"templates",
|
|
16
|
+
"preferences"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Opinion lock snapshot",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["schema_version", "renderer_version", "profile", "profile_sha256", "opinion_sha256"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schema_version": {"const": "2.0"},
|
|
9
|
+
"renderer_version": {"const": "2.0"},
|
|
10
|
+
"profile": {"$ref": "profile.schema.json"},
|
|
11
|
+
"profile_sha256": {"$ref": "profile.schema.json#/$defs/hash"},
|
|
12
|
+
"opinion_sha256": {"$ref": "profile.schema.json#/$defs/hash"}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# 首次使用与一次内容确认
|
|
2
|
+
|
|
3
|
+
## 用户入口
|
|
4
|
+
|
|
5
|
+
第一次只展示以下选择,无需先完成偏好问卷:
|
|
6
|
+
|
|
7
|
+
1. 直接用我们的模板。
|
|
8
|
+
2. 选择模板的部分条目。
|
|
9
|
+
3. 啥也不要,自己迭代。
|
|
10
|
+
|
|
11
|
+
可选第 4 项:基于 Agent 已授权的记忆和使用记录提出候选规则。用户已有明确说明时直接导入,避免重复选择。
|
|
12
|
+
|
|
13
|
+
选 1:默认预览 `scenario/reviewed-project@1.0.0`,明确其完整分析、列表优先及中文维护偏好;用户倾向简明表达时展示 `scenario/concise-project@1.0.0`。两者各包含 27 条规则。以工具 catalog 为准,默认只作用于预览,用户确认前不生效。需要精细搭配时再展开五个系列,避免首次展示全部十个变体。不能把“全部模板”理解为同时采用互斥偏好;先说明同系列限制,集中解决实际冲突。
|
|
14
|
+
|
|
15
|
+
选 2:完整展示选定模板,收集一次保留/排除/修改清单。保留模板引用并用 `null` override 排除单条;如改为直接引用原子规则,说明 `Profile.templates` 为空时 updates 只追踪这些直接规则,模板映射材料不等于模板升级关系。
|
|
16
|
+
|
|
17
|
+
选 3:保持占位正文与已有规则,不建立空 Profile、锁或候选,不继续提问。已有规则项目选择此项只表示跳过本次配置,不删除原规则。以后用户提出规则或反馈时再提交候选。
|
|
18
|
+
|
|
19
|
+
选 4:先说明 Agent 当前拥有的已授权记忆范围。候选附内容、证据、适用范围、明确要求或推测标记和冲突;个人事实与一次性要求保留其原职责。没有记录时明确说明,不编造使用历史。用户批准前只保留私有候选;不扫描其他项目、不上传记录、不自动计成熟度或晋升。记忆检索与建议生成由 Agent 完成,CLI 不读取客户端记忆,也不推断行为规则。
|
|
20
|
+
|
|
21
|
+
第一次展示完整规则预览时,提示:“这是一版可以开始使用的规则。后续可以根据实际任务和反馈增删、调整或换模板,无需现在一次想全。我们鼓励先使用再迭代;每次修改会先展示变化,确认后保存为新版本。”只提示一次,不添加偏好访谈或新的确认轮次。用户当前不确定的条目可以先排除;已经确认的规则在新版本批准前继续有效。初次规则配置的迭代不降低具体任务的交付承诺。
|
|
22
|
+
|
|
23
|
+
## 预览先于正式保存
|
|
24
|
+
|
|
25
|
+
以下命令由 Agent 执行,用户只审阅规则内容。项目目录必须已经存在;所有个人材料只放在该项目指定的私有位置。项目治理应忽略候选与中间目录;vcs:none 的项目仅说明忽略配置,不声称已有 Git 收录行为。
|
|
26
|
+
|
|
27
|
+
直接用模板的 Profile 预览:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
python3 plugins/opinion-manager/runtime/opinion_manager.py profile --project /path/to/project --catalog plugins/opinion-manager/catalog --id private.my-opinion --version 1.0.0 --template scenario/reviewed-project@1.0.0 --output json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
保存该输出的 `profile` 对象到项目私有候选 JSON,保留完整预览回执;禁止将整个命令结果作为 Profile。候选文件仅用于审阅,正式 `.opinion/profiles/.../versions/1.0.0.json` 此时不存在。
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
python3 plugins/opinion-manager/runtime/opinion_manager.py compose --project /path/to/project --profile /path/to/private-preview/profile.json --output json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
检查 `unresolved` 为空、`blocked` 为空,且两份预览 `content` 完全一致。集中展示完整正文、有效/排除规则、来源版本、个人修改、差异与拟保存文件,提供完整 Profile 和锁 JSON 的可读入口。用户一次确认这个结果后,Agent 记录两份真实指纹。
|
|
40
|
+
|
|
41
|
+
写入前重新执行相同两份预览,检查两项指纹及内容仍与批准结果一致。相同内容不用再次请求确认;任何变化须重新展示。先在原 Profile 命令上追加 `--apply --confirm <Profile预览指纹>`,再将 compose 路径换成正式 Profile,在原 compose 参数上追加 `--apply --confirm <compose预览指纹>`。两项指纹不能互换。Profile 保存不会修改正文和锁,因此在目标未变化时 compose 指纹仍有效;工具再次检查当前状态。写后完整读取 Profile、正文与锁,核对预览并运行 verify。
|
|
42
|
+
|
|
43
|
+
用户确认可涵盖整个内容包;CLI 两次写入仍各自核验真实指纹。保存 Profile、正文、锁并非一次系统事务;若后一步失败,保留真实已写入状态,禁止声称完成或覆盖文件回滚,按版本契约修复。旧 Profile/锁和正文渲染格式保持兼容。
|
|
44
|
+
|
|
45
|
+
## 冲突与个人编辑
|
|
46
|
+
|
|
47
|
+
使用模板的部分条目时优先保留模板关系。平行偏好不要自动折中;列出可读标题、全文和冲突位置,一次让用户选择保留一边、按场景区分或确认个人改写。个人改写只属于用户环境;转公开模板另做逐文件审批。
|
|
48
|
+
|
|
49
|
+
人工编辑项目先完整读回当前正文并纳入新 Profile,展示完整差异,使用真实当前文件指纹 `--accept-current`。预览显示保护阻断时不能以“用户已经确认入口”为由绕过。升级使用精确目标版本,保留所有个人修改;先查看 updates,再预览新版本,采用同一内容确认流程。
|
|
50
|
+
|
|
51
|
+
## 客户端与项目目录
|
|
52
|
+
|
|
53
|
+
新项目优先让用户选择容易找到的可见目录,例如用户自己命名的 Documents 子目录。需要打开隐藏目录时,macOS 文件选择器可用 ⌘⇧G 输入完整路径,或 ⌘⇧. 显示隐藏项;隐藏测试目录不应成为新用户前提。
|
|
54
|
+
|
|
55
|
+
插件文件安装、项目 doctor 与桌面 Skill 发现分别核验。新 Session 按实际提供的 Skill 清单记录来源及版本;同名包并存时明确选择来源,禁止依据文件存在声称已发现。源码安装命令不能证明桌面缓存自动刷新;通过当前客户端的原生插件安装/启用流程完成加载。
|
|
56
|
+
|
|
57
|
+
升级保留配置和恢复副本,未经用户授权不删除或停用旧来源。正式使用时建议一次只保留一个明确选择的 Opinion Manager provider;如果仍有多来源,新 Session 需报告当前实际加载来源。CLI 的可用命令以当前客户端帮助为准,禁止手工修改其管理的缓存或猜测未支持的命令。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Opinion Profile snapshot",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["schema_version", "id", "version", "templates", "rules", "sources", "overrides", "custom", "derived_from"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schema_version": {"enum": ["2.0", "2.1"]},
|
|
9
|
+
"id": {"$ref": "rule.schema.json#/properties/id"},
|
|
10
|
+
"version": {"$ref": "rule.schema.json#/properties/version"},
|
|
11
|
+
"templates": {"type": "array", "uniqueItems": true, "items": {"type": "string", "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*/[a-z0-9]+(?:[.-][a-z0-9]+)*@(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"}},
|
|
12
|
+
"rules": {"type": "array", "uniqueItems": true, "items": {"$ref": "versioned-template.schema.json#/properties/rules/items"}},
|
|
13
|
+
"sources": {
|
|
14
|
+
"type": "object", "additionalProperties": false, "required": ["templates", "rules"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"templates": {"type": "array", "items": {"$ref": "#/$defs/templateSource"}},
|
|
17
|
+
"rules": {"type": "array", "items": {"$ref": "#/$defs/ruleSource"}}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"overrides": {"type": "object", "propertyNames": {"$ref": "rule.schema.json#/properties/id"}, "additionalProperties": {"anyOf": [{"type": "null"}, {"$ref": "rule.schema.json"}]}},
|
|
21
|
+
"custom": {"anyOf": [{"type": "null"}, {"type": "string", "pattern": "\\S"}]},
|
|
22
|
+
"derived_from": {"anyOf": [{"type": "null"}, {"type": "object", "additionalProperties": false, "required": ["id", "version", "sha256"], "properties": {"id": {"$ref": "rule.schema.json#/properties/id"}, "version": {"$ref": "rule.schema.json#/properties/version"}, "sha256": {"$ref": "#/$defs/hash"}}}]},
|
|
23
|
+
"loading": {"$ref": "#/$defs/loading"}
|
|
24
|
+
},
|
|
25
|
+
"allOf": [
|
|
26
|
+
{"if": {"properties": {"schema_version": {"const": "2.1"}}}, "then": {"required": ["loading"]}, "else": {"not": {"required": ["loading"]}}}
|
|
27
|
+
],
|
|
28
|
+
"$defs": {
|
|
29
|
+
"hash": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
30
|
+
"loading": {
|
|
31
|
+
"type": "object", "additionalProperties": false, "required": ["core", "signals", "bundles"],
|
|
32
|
+
"properties": {
|
|
33
|
+
"core": {"type": "array", "uniqueItems": true, "items": {"$ref": "rule.schema.json#/properties/id"}},
|
|
34
|
+
"signals": {"type": "object", "minProperties": 1, "propertyNames": {"$ref": "rule.schema.json#/properties/id"}, "additionalProperties": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "rule.schema.json#/properties/id"}}},
|
|
35
|
+
"bundles": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/bundle"}}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"bundle": {
|
|
39
|
+
"type": "object", "additionalProperties": false, "required": ["family", "trigger", "exclude", "routes"],
|
|
40
|
+
"properties": {
|
|
41
|
+
"family": {"$ref": "rule.schema.json#/properties/id"},
|
|
42
|
+
"trigger": {"type": "string", "pattern": "\\S"},
|
|
43
|
+
"exclude": {"type": "string", "pattern": "\\S"},
|
|
44
|
+
"routes": {"type": "array", "minItems": 1, "items": {"type": "object", "minProperties": 1, "propertyNames": {"$ref": "rule.schema.json#/properties/id"}, "additionalProperties": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "rule.schema.json#/properties/id"}}}}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"templateSource": {
|
|
48
|
+
"type": "object", "additionalProperties": false, "required": ["ref", "sha256", "value"],
|
|
49
|
+
"properties": {"ref": {"$ref": "#/properties/templates/items"}, "sha256": {"$ref": "#/$defs/hash"}, "value": {"$ref": "versioned-template.schema.json"}}
|
|
50
|
+
},
|
|
51
|
+
"ruleSource": {
|
|
52
|
+
"type": "object", "additionalProperties": false, "required": ["ref", "sha256", "value"],
|
|
53
|
+
"properties": {"ref": {"$ref": "versioned-template.schema.json#/properties/rules/items"}, "sha256": {"$ref": "#/$defs/hash"}, "value": {"$ref": "rule.schema.json"}}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Versioned Opinion rule",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["id", "version", "slot", "title", "level", "scopes", "text"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"id": {"type": "string", "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$"},
|
|
9
|
+
"version": {"type": "string", "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"},
|
|
10
|
+
"slot": {"type": "string", "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$"},
|
|
11
|
+
"title": {"type": "string", "pattern": "\\S"},
|
|
12
|
+
"level": {"enum": ["required", "preferred"]},
|
|
13
|
+
"scopes": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "\\S"}},
|
|
14
|
+
"text": {"type": "string", "pattern": "\\S"}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://skill.sakanano.moe/plugins/opinion-manager/references/template.schema.json",
|
|
4
|
+
"title": "Opinion template",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["id", "version", "name", "description", "scopes", "rules", "questions"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"id": {"$ref": "#/$defs/id"},
|
|
10
|
+
"version": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
13
|
+
},
|
|
14
|
+
"name": {"type": "string", "minLength": 1},
|
|
15
|
+
"description": {"type": "string", "minLength": 1},
|
|
16
|
+
"scopes": {"$ref": "#/$defs/nonEmptyStrings"},
|
|
17
|
+
"rules": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"minItems": 1,
|
|
20
|
+
"items": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["id", "title", "level", "scopes", "text"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"id": {"$ref": "#/$defs/id"},
|
|
26
|
+
"title": {"type": "string", "minLength": 1},
|
|
27
|
+
"level": {"enum": ["required", "preferred"]},
|
|
28
|
+
"scopes": {"$ref": "#/$defs/nonEmptyStrings"},
|
|
29
|
+
"text": {"type": "string", "minLength": 1}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"questions": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"required": ["id", "prompt", "options"],
|
|
39
|
+
"properties": {
|
|
40
|
+
"id": {"$ref": "#/$defs/id"},
|
|
41
|
+
"prompt": {"type": "string", "minLength": 1},
|
|
42
|
+
"options": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"minItems": 2,
|
|
45
|
+
"items": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"required": ["label", "recommend"],
|
|
49
|
+
"properties": {
|
|
50
|
+
"label": {"type": "string", "minLength": 1},
|
|
51
|
+
"recommend": {"$ref": "#/$defs/nonEmptyStrings"}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"$defs": {
|
|
60
|
+
"id": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$"
|
|
63
|
+
},
|
|
64
|
+
"nonEmptyStrings": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"minItems": 1,
|
|
67
|
+
"uniqueItems": true,
|
|
68
|
+
"items": {"type": "string", "minLength": 1}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Versioned Opinion template",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["family", "variant", "version", "name", "description", "scopes", "rules"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"family": {"type": "string", "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$"},
|
|
9
|
+
"variant": {"type": "string", "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$"},
|
|
10
|
+
"version": {"type": "string", "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"},
|
|
11
|
+
"name": {"type": "string", "pattern": "\\S"},
|
|
12
|
+
"description": {"type": "string", "pattern": "\\S"},
|
|
13
|
+
"scopes": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "\\S"}},
|
|
14
|
+
"rules": {
|
|
15
|
+
"type": "array", "minItems": 1, "uniqueItems": true,
|
|
16
|
+
"items": {"type": "string", "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*@(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|