mova-claude-import 0.1.1

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 (204) hide show
  1. package/.github/workflows/ci.yml +42 -0
  2. package/.github/workflows/release-dry-run.yml +40 -0
  3. package/.github/workflows/release-publish.yml +43 -0
  4. package/.tmp_test_control_apply/proj/.claude/agents/example_agent.md +3 -0
  5. package/.tmp_test_control_apply/proj/.claude/commands/example_command.md +3 -0
  6. package/.tmp_test_control_apply/proj/.claude/hooks/example_hook.sh +2 -0
  7. package/.tmp_test_control_apply/proj/.claude/output-styles/example_style.md +3 -0
  8. package/.tmp_test_control_apply/proj/.claude/settings.json +30 -0
  9. package/.tmp_test_control_apply/proj/.claude/settings.local.example.json +3 -0
  10. package/.tmp_test_control_apply/proj/.mcp.json +3 -0
  11. package/.tmp_test_control_apply/proj/CLAUDE.md +13 -0
  12. package/.tmp_test_control_apply/proj/MOVA.md +3 -0
  13. package/.tmp_test_control_check/proj/.mcp.json +1 -0
  14. package/.tmp_test_control_check/proj/CLAUDE.md +1 -0
  15. package/.tmp_test_control_prefill/out1/claude_control_profile_v0.json +114 -0
  16. package/.tmp_test_control_prefill/out1/prefill_report_v0.json +13 -0
  17. package/.tmp_test_control_prefill/out2/claude_control_profile_v0.json +114 -0
  18. package/.tmp_test_control_prefill/out2/prefill_report_v0.json +13 -0
  19. package/.tmp_test_overlay/proj/.claude/skills/a.md +1 -0
  20. package/.tmp_test_overlay/proj/.mcp.json +1 -0
  21. package/.tmp_test_overlay/proj/CLAUDE.md +1 -0
  22. package/.tmp_test_profile/proj/.claude/skills/a.md +1 -0
  23. package/.tmp_test_profile/proj/.mcp.json +1 -0
  24. package/.tmp_test_profile/proj/CLAUDE.md +1 -0
  25. package/.tmp_test_scaffold_apply/proj/.claude/agents/example_agent.md +3 -0
  26. package/.tmp_test_scaffold_apply/proj/.claude/commands/example_command.md +3 -0
  27. package/.tmp_test_scaffold_apply/proj/.claude/hooks/example_hook.sh +2 -0
  28. package/.tmp_test_scaffold_apply/proj/.claude/output-styles/example_style.md +3 -0
  29. package/.tmp_test_scaffold_apply/proj/.claude/settings.json +30 -0
  30. package/.tmp_test_scaffold_apply/proj/.claude/settings.local.example.json +3 -0
  31. package/.tmp_test_scaffold_apply/proj/.mcp.json +3 -0
  32. package/.tmp_test_scaffold_apply/proj/CLAUDE.md +13 -0
  33. package/.tmp_test_scaffold_apply/proj/MOVA.md +3 -0
  34. package/.tmp_test_strict/mova/claude_import/v0/VERSION.json +10 -0
  35. package/.tmp_test_strict/mova/claude_import/v0/episode_import_run.json +20 -0
  36. package/.tmp_test_strict/mova/claude_import/v0/import_manifest.json +20 -0
  37. package/.tmp_test_strict/mova/claude_import/v0/input_policy_report_v0.json +32 -0
  38. package/.tmp_test_zip/out1/.claude/agents/example_agent.md +3 -0
  39. package/.tmp_test_zip/out1/.claude/commands/example_command.md +3 -0
  40. package/.tmp_test_zip/out1/.claude/commands/mova_context.md +4 -0
  41. package/.tmp_test_zip/out1/.claude/commands/mova_lint.md +4 -0
  42. package/.tmp_test_zip/out1/.claude/commands/mova_proof.md +6 -0
  43. package/.tmp_test_zip/out1/.claude/hooks/example_hook.sh +2 -0
  44. package/.tmp_test_zip/out1/.claude/output-styles/example_style.md +3 -0
  45. package/.tmp_test_zip/out1/.claude/settings.json +30 -0
  46. package/.tmp_test_zip/out1/.claude/settings.local.example.json +3 -0
  47. package/.tmp_test_zip/out1/.claude/skills/a/SKILL.md +1 -0
  48. package/.tmp_test_zip/out1/.claude/skills/mova-control-v0/SKILL.md +11 -0
  49. package/.tmp_test_zip/out1/.claude/skills/mova-layer-v0/SKILL.md +8 -0
  50. package/.tmp_test_zip/out1/.mcp.json +3 -0
  51. package/.tmp_test_zip/out1/CLAUDE.md +4 -0
  52. package/.tmp_test_zip/out1/MOVA.md +10 -0
  53. package/.tmp_test_zip/out1/export.zip +0 -0
  54. package/.tmp_test_zip/out1/mova/claude_import/v0/VERSION.json +10 -0
  55. package/.tmp_test_zip/out1/mova/claude_import/v0/contracts/instruction_profile_v0.json +8 -0
  56. package/.tmp_test_zip/out1/mova/claude_import/v0/contracts/mcp_servers_v0.json +4 -0
  57. package/.tmp_test_zip/out1/mova/claude_import/v0/contracts/skills_catalog_v0.json +11 -0
  58. package/.tmp_test_zip/out1/mova/claude_import/v0/episode_import_run.json +80 -0
  59. package/.tmp_test_zip/out1/mova/claude_import/v0/export_manifest_v0.json +32 -0
  60. package/.tmp_test_zip/out1/mova/claude_import/v0/import_manifest.json +33 -0
  61. package/.tmp_test_zip/out1/mova/claude_import/v0/input_policy_report_v0.json +38 -0
  62. package/.tmp_test_zip/out1/mova/claude_import/v0/lint_report_v0.json +6 -0
  63. package/.tmp_test_zip/out1/mova/claude_import/v0/redaction_report.json +4 -0
  64. package/.tmp_test_zip/out2/.claude/agents/example_agent.md +3 -0
  65. package/.tmp_test_zip/out2/.claude/commands/example_command.md +3 -0
  66. package/.tmp_test_zip/out2/.claude/commands/mova_context.md +4 -0
  67. package/.tmp_test_zip/out2/.claude/commands/mova_lint.md +4 -0
  68. package/.tmp_test_zip/out2/.claude/commands/mova_proof.md +6 -0
  69. package/.tmp_test_zip/out2/.claude/hooks/example_hook.sh +2 -0
  70. package/.tmp_test_zip/out2/.claude/output-styles/example_style.md +3 -0
  71. package/.tmp_test_zip/out2/.claude/settings.json +30 -0
  72. package/.tmp_test_zip/out2/.claude/settings.local.example.json +3 -0
  73. package/.tmp_test_zip/out2/.claude/skills/a/SKILL.md +1 -0
  74. package/.tmp_test_zip/out2/.claude/skills/mova-control-v0/SKILL.md +11 -0
  75. package/.tmp_test_zip/out2/.claude/skills/mova-layer-v0/SKILL.md +8 -0
  76. package/.tmp_test_zip/out2/.mcp.json +3 -0
  77. package/.tmp_test_zip/out2/CLAUDE.md +4 -0
  78. package/.tmp_test_zip/out2/MOVA.md +10 -0
  79. package/.tmp_test_zip/out2/export.zip +0 -0
  80. package/.tmp_test_zip/out2/mova/claude_import/v0/VERSION.json +10 -0
  81. package/.tmp_test_zip/out2/mova/claude_import/v0/contracts/instruction_profile_v0.json +8 -0
  82. package/.tmp_test_zip/out2/mova/claude_import/v0/contracts/mcp_servers_v0.json +4 -0
  83. package/.tmp_test_zip/out2/mova/claude_import/v0/contracts/skills_catalog_v0.json +11 -0
  84. package/.tmp_test_zip/out2/mova/claude_import/v0/episode_import_run.json +80 -0
  85. package/.tmp_test_zip/out2/mova/claude_import/v0/export_manifest_v0.json +32 -0
  86. package/.tmp_test_zip/out2/mova/claude_import/v0/import_manifest.json +33 -0
  87. package/.tmp_test_zip/out2/mova/claude_import/v0/input_policy_report_v0.json +38 -0
  88. package/.tmp_test_zip/out2/mova/claude_import/v0/lint_report_v0.json +6 -0
  89. package/.tmp_test_zip/out2/mova/claude_import/v0/redaction_report.json +4 -0
  90. package/.tmp_test_zip/proj/.claude/skills/a.md +1 -0
  91. package/.tmp_test_zip/proj/.mcp.json +1 -0
  92. package/.tmp_test_zip/proj/CLAUDE.md +1 -0
  93. package/README.md +86 -0
  94. package/create_files.js +52 -0
  95. package/dist/anthropic_profile_v0.d.ts +2 -0
  96. package/dist/anthropic_profile_v0.js +66 -0
  97. package/dist/claude_profile_scaffold_v0.d.ts +2 -0
  98. package/dist/claude_profile_scaffold_v0.js +110 -0
  99. package/dist/cli.d.ts +1 -0
  100. package/dist/cli.js +163 -0
  101. package/dist/cli_entry.d.ts +1 -0
  102. package/dist/cli_entry.js +1 -0
  103. package/dist/control_apply_v0.d.ts +6 -0
  104. package/dist/control_apply_v0.js +86 -0
  105. package/dist/control_check_v0.d.ts +7 -0
  106. package/dist/control_check_v0.js +80 -0
  107. package/dist/control_contracts_v0.d.ts +8 -0
  108. package/dist/control_contracts_v0.js +17 -0
  109. package/dist/control_prefill_v0.d.ts +6 -0
  110. package/dist/control_prefill_v0.js +61 -0
  111. package/dist/export_zip_v0.d.ts +8 -0
  112. package/dist/export_zip_v0.js +79 -0
  113. package/dist/index.d.ts +30 -0
  114. package/dist/index.js +2 -0
  115. package/dist/init_v0.d.ts +7 -0
  116. package/dist/init_v0.js +47 -0
  117. package/dist/input_policy_v0.d.ts +26 -0
  118. package/dist/input_policy_v0.js +76 -0
  119. package/dist/lint_v0.d.ts +18 -0
  120. package/dist/lint_v0.js +131 -0
  121. package/dist/mova_overlay_v0.d.ts +14 -0
  122. package/dist/mova_overlay_v0.js +65 -0
  123. package/dist/mova_spec_bindings_v0.d.ts +5 -0
  124. package/dist/mova_spec_bindings_v0.js +5 -0
  125. package/dist/quality_v0.d.ts +1 -0
  126. package/dist/quality_v0.js +223 -0
  127. package/dist/redaction.d.ts +14 -0
  128. package/dist/redaction.js +52 -0
  129. package/dist/run_import.d.ts +2 -0
  130. package/dist/run_import.js +479 -0
  131. package/dist/stable_json.d.ts +1 -0
  132. package/dist/stable_json.js +15 -0
  133. package/docs/ANTHROPIC_PROFILE_v0.md +38 -0
  134. package/docs/COMPATIBILITY_MATRIX.md +25 -0
  135. package/docs/CONTROL_PROFILE_GUIDE_v0.md +40 -0
  136. package/docs/IMPORT_SPEC_v0.md +30 -0
  137. package/docs/MOVA_SPEC_BINDINGS.json +21 -0
  138. package/docs/MOVA_SPEC_BINDINGS.md +11 -0
  139. package/docs/OPERATOR_GUIDE_v0.md +43 -0
  140. package/docs/SECURITY_MODEL_v0.md +20 -0
  141. package/examples/control_profile_min.json +37 -0
  142. package/examples/control_profile_standard.json +81 -0
  143. package/examples/control_profile_strict.json +68 -0
  144. package/fixtures/neg/bad_skill_structure/.claude/skills/bad/README.md +3 -0
  145. package/fixtures/neg/bad_skill_structure/CLAUDE.md +3 -0
  146. package/fixtures/neg/local_settings_present/.claude/settings.local.json +3 -0
  147. package/fixtures/neg/local_settings_present/.claude/skills/alpha/SKILL.md +6 -0
  148. package/fixtures/neg/local_settings_present/CLAUDE.md +3 -0
  149. package/fixtures/neg/secret_leak/.claude/skills/alpha/SKILL.md +6 -0
  150. package/fixtures/neg/secret_leak/.mcp.json +3 -0
  151. package/fixtures/neg/secret_leak/CLAUDE.md +3 -0
  152. package/fixtures/neg/strict_denied_local/.claude/settings.local.json +3 -0
  153. package/fixtures/neg/strict_denied_local/CLAUDE.md +3 -0
  154. package/fixtures/pos/basic/.claude/skills/alpha/SKILL.md +8 -0
  155. package/fixtures/pos/basic/.mcp.json +3 -0
  156. package/fixtures/pos/basic/CLAUDE.md +3 -0
  157. package/fixtures/pos/control_basic_project/.mcp.json +3 -0
  158. package/fixtures/pos/control_basic_project/CLAUDE.md +3 -0
  159. package/fixtures/pos/control_profile_filled/claude_control_profile_v0.json +18 -0
  160. package/fixtures/pos/full_scaffold_roundtrip/README.md +1 -0
  161. package/package.json +39 -0
  162. package/schemas/claude_control/v0/ds/ds.claude_control_mapping_v0.json +227 -0
  163. package/schemas/claude_control/v0/ds/ds.claude_control_profile_v0.json +114 -0
  164. package/schemas/claude_control/v0/env/env.claude_control_apply_v0.json +170 -0
  165. package/schemas/claude_control/v0/env/env.claude_control_import_prefill_v0.json +171 -0
  166. package/schemas/claude_control/v0/global/global.claude_control_precedence_v0.json +58 -0
  167. package/schemas/claude_control/v0/global/global.claude_control_vocab_v0.json +98 -0
  168. package/schemas/ds.claude_import.instruction_profile_v0.schema.json +31 -0
  169. package/schemas/ds.claude_import.mcp_servers_v0.schema.json +47 -0
  170. package/schemas/ds.claude_import.skills_catalog_v0.schema.json +48 -0
  171. package/src/anthropic_profile_v0.ts +68 -0
  172. package/src/claude_profile_scaffold_v0.ts +117 -0
  173. package/src/cli.ts +160 -0
  174. package/src/cli_entry.ts +1 -0
  175. package/src/control_apply_v0.ts +108 -0
  176. package/src/control_check_v0.ts +98 -0
  177. package/src/control_contracts_v0.ts +26 -0
  178. package/src/control_prefill_v0.ts +74 -0
  179. package/src/export_zip_v0.ts +90 -0
  180. package/src/index.ts +29 -0
  181. package/src/init_v0.ts +59 -0
  182. package/src/input_policy_v0.ts +103 -0
  183. package/src/lint_v0.ts +151 -0
  184. package/src/mova_overlay_v0.ts +79 -0
  185. package/src/mova_spec_bindings_v0.ts +5 -0
  186. package/src/quality_v0.ts +264 -0
  187. package/src/redaction.ts +63 -0
  188. package/src/run_import.ts +526 -0
  189. package/src/stable_json.ts +15 -0
  190. package/test/control_apply_apply.test.js +40 -0
  191. package/test/control_check_preview.test.js +38 -0
  192. package/test/control_prefill.test.js +30 -0
  193. package/test/demo_v0_smoke.test.js +37 -0
  194. package/test/export_zip_determinism.test.js +41 -0
  195. package/test/import_determinism.test.js +53 -0
  196. package/test/init_v0.test.js +37 -0
  197. package/test/overlay_v0_output.test.js +38 -0
  198. package/test/profile_v0_output.test.js +44 -0
  199. package/test/scaffold_v0_output.test.js +64 -0
  200. package/test/strict_input_policy.test.js +45 -0
  201. package/tools/demo_v0.mjs +98 -0
  202. package/tools/deps_audit_v0.mjs +123 -0
  203. package/tools/write_mova_spec_bindings_v0.mjs +122 -0
  204. package/tsconfig.json +13 -0
@@ -0,0 +1,42 @@
1
+ name: ci
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+
8
+ jobs:
9
+ test:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ node: [ "20.x", "22.x" ]
15
+
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Setup Node
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: ${{ matrix.node }}
24
+ cache: "npm"
25
+
26
+ - name: Install
27
+ run: npm ci
28
+
29
+ - name: Build
30
+ run: npm run build
31
+
32
+ - name: Test
33
+ run: npm test
34
+
35
+ - name: Deps audit
36
+ run: npm run deps:audit
37
+
38
+ - name: Docs check
39
+ run: npm run docs:check
40
+
41
+ - name: Pack (smoke)
42
+ run: npm pack --silent
@@ -0,0 +1,40 @@
1
+ name: release-dry-run
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ dry_run:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Setup Node
17
+ uses: actions/setup-node@v4
18
+ with:
19
+ node-version: "22.x"
20
+ cache: "npm"
21
+
22
+ - name: Install
23
+ run: npm ci
24
+
25
+ - name: Build
26
+ run: npm run build
27
+
28
+ - name: Test
29
+ run: npm test
30
+
31
+ - name: Pack
32
+ run: |
33
+ npm pack --silent
34
+ ls -la *.tgz
35
+
36
+ - name: Upload tarball
37
+ uses: actions/upload-artifact@v4
38
+ with:
39
+ name: npm-tarball
40
+ path: "*.tgz"
@@ -0,0 +1,43 @@
1
+ name: release-publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ steps:
16
+ - name: Checkout
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Setup Node
20
+ uses: actions/setup-node@v4
21
+ with:
22
+ node-version: "22.x"
23
+ cache: "npm"
24
+ registry-url: "https://registry.npmjs.org"
25
+
26
+ - name: Install
27
+ run: npm ci
28
+
29
+ - name: Build
30
+ run: npm run build
31
+
32
+ - name: Test
33
+ run: npm test
34
+
35
+ - name: Pack (smoke)
36
+ run: |
37
+ npm pack --silent
38
+ ls -la *.tgz
39
+
40
+ - name: Publish to npm
41
+ env:
42
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
43
+ run: npm publish
@@ -0,0 +1,3 @@
1
+ # example_agent
2
+
3
+ Role: reviewer
@@ -0,0 +1,3 @@
1
+ # example_command
2
+
3
+ Write a brief project summary.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ echo "hook: dry check"
@@ -0,0 +1,3 @@
1
+ # example_style
2
+
3
+ Style: concise, bullet-first.
@@ -0,0 +1,30 @@
1
+ {
2
+ "claude_md": {
3
+ "inject_control_entry": true,
4
+ "marker": "<!-- MOVA_CONTROL_ENTRY_V0 -->"
5
+ },
6
+ "hooks": {
7
+ "behavior": {
8
+ "on_invalid_hook": "report_only"
9
+ },
10
+ "definitions": [],
11
+ "enable": true
12
+ },
13
+ "permissions": {
14
+ "allow": [],
15
+ "behavior": {
16
+ "on_conflict": "deny_wins",
17
+ "on_unknown": "report_only"
18
+ },
19
+ "deny": []
20
+ },
21
+ "plugins": {
22
+ "allowed_plugin_ids": [],
23
+ "behavior": {
24
+ "on_unknown": "report_only"
25
+ },
26
+ "denied_plugin_ids": [],
27
+ "enable": true
28
+ },
29
+ "profile_version": "v0"
30
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "note": "Local settings are not committed; use this as a template."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "servers": {}
3
+ }
@@ -0,0 +1,13 @@
1
+ <!-- MOVA_CONTROL_ENTRY_V0 -->
2
+ ## MOVA Control Entry (v0)
3
+
4
+ Source of truth (do this first):
5
+ - mova/claude_import/v0/contracts/instruction_profile_v0.json
6
+ - mova/claude_import/v0/contracts/skills_catalog_v0.json
7
+ - mova/claude_import/v0/contracts/mcp_servers_v0.json
8
+
9
+ Proof / evidence:
10
+ - mova/claude_import/v0/quality_report_v0.json
11
+ - mova/claude_import/v0/export_manifest_v0.json
12
+
13
+ Hello
@@ -0,0 +1,3 @@
1
+ # MOVA
2
+
3
+ Notes and operator instructions.
@@ -0,0 +1 @@
1
+ {"servers":[]}
@@ -0,0 +1 @@
1
+ Hello
@@ -0,0 +1,114 @@
1
+ {
2
+ "anthropic": {
3
+ "claude_md": {
4
+ "description": "Политика вставки управляющего блока MOVA и позиционирование его в CLAUDE.md.",
5
+ "inject_control_entry": true,
6
+ "marker": "<!-- MOVA_CONTROL_ENTRY_V0 -->",
7
+ "paths": {
8
+ "local": "CLAUDE.local.md",
9
+ "project_alt": ".claude/CLAUDE.md",
10
+ "project_primary": "CLAUDE.md"
11
+ }
12
+ },
13
+ "hooks": {
14
+ "behavior": {
15
+ "on_invalid_hook": "report_only"
16
+ },
17
+ "definitions": [],
18
+ "description": "Крючки (hooks) Claude Code, если используются в проекте/плагинах.",
19
+ "enable": true
20
+ },
21
+ "mcp": {
22
+ "description": "Подключения MCP серверов и правила по переменным окружения.",
23
+ "env_expansion_policy": {
24
+ "allow_defaults_syntax": true,
25
+ "on_missing_var": "report_only",
26
+ "require_all_vars": false
27
+ },
28
+ "servers": []
29
+ },
30
+ "permissions": {
31
+ "allow": [],
32
+ "behavior": {
33
+ "on_conflict": "deny_wins",
34
+ "on_unknown": "report_only"
35
+ },
36
+ "deny": [],
37
+ "description": "Правила allow/deny (в стиле Claude Code) для действий и инструментов."
38
+ },
39
+ "plugins": {
40
+ "allowed_plugin_ids": [],
41
+ "behavior": {
42
+ "on_unknown": "report_only"
43
+ },
44
+ "denied_plugin_ids": [],
45
+ "description": "Политика использования плагинов/команд. На v0 — только реестр намерений и отчёты.",
46
+ "enable": true
47
+ },
48
+ "scopes_enabled": {
49
+ "local": true,
50
+ "managed": false,
51
+ "project": true,
52
+ "user": true
53
+ }
54
+ },
55
+ "apply": {
56
+ "backup_before_write": true,
57
+ "behavior": {
58
+ "on_parse_error": "report_only",
59
+ "on_unwritable_target": "report_only"
60
+ },
61
+ "default_apply_mode": "preview",
62
+ "default_target": "project_only",
63
+ "description": "Настройки операции apply (разнос из профиля в файлы Claude Code).",
64
+ "write_scopes": {
65
+ "local": false,
66
+ "project": true,
67
+ "user": false
68
+ }
69
+ },
70
+ "id": "ds.claude_control_profile_v0",
71
+ "kind": "ds",
72
+ "mode": "report_only",
73
+ "mova": {
74
+ "export": {
75
+ "description": "Экспорт zip для передачи/архивации результата.",
76
+ "emit_export_manifest": true,
77
+ "emit_zip": false,
78
+ "zip_name": "export.zip"
79
+ },
80
+ "observability": {
81
+ "artifact_root": "mova/claude_import/v0",
82
+ "description": "Артефакты наблюдаемости и доказательности. Включены по умолчанию.",
83
+ "emit_apply_report": true,
84
+ "emit_manifest": true,
85
+ "emit_policy_report": true,
86
+ "emit_quality_report": true,
87
+ "emit_version_anchor": true
88
+ },
89
+ "overlay": {
90
+ "description": "MOVA Control Overlay — добавляет понятный блок управления и ссылки на отчёты.",
91
+ "emit": true
92
+ },
93
+ "premium": {
94
+ "description": "Премиум-блоки по умолчанию выключены. Включаются пользователем, если он подключает соответствующие пакеты/дверь.",
95
+ "proofkits": {
96
+ "enabled": false,
97
+ "selected": []
98
+ },
99
+ "tool_door": {
100
+ "auth_ref": "",
101
+ "enabled": false,
102
+ "endpoint": "",
103
+ "policy_profile_id": ""
104
+ }
105
+ }
106
+ },
107
+ "notes": [
108
+ "Единая точка управления контролем Claude Code + MOVA слой наблюдаемости.",
109
+ "По умолчанию НЕ ломает работу: формирует отчёты и подсказки. Жёсткое применение/запреты включаются явно пользователем.",
110
+ "Этот профиль можно заполнить вручную или получить prefill через импорт существующей папки Claude."
111
+ ],
112
+ "title": "Claude Control Profile v0",
113
+ "version": "0.1.0"
114
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "applied": {
3
+ "mcp_servers": true
4
+ },
5
+ "found": {
6
+ "mcp_json": true,
7
+ "settings_json": false,
8
+ "settings_local_json": false
9
+ },
10
+ "profile_path": "D:\\Projects_Clean\\mova-claude-import\\.tmp_test_control_prefill\\out1\\claude_control_profile_v0.json",
11
+ "profile_version": "v0",
12
+ "project_dir": "D:\\Projects_Clean\\mova-claude-import\\fixtures\\pos\\control_basic_project"
13
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "anthropic": {
3
+ "claude_md": {
4
+ "description": "Политика вставки управляющего блока MOVA и позиционирование его в CLAUDE.md.",
5
+ "inject_control_entry": true,
6
+ "marker": "<!-- MOVA_CONTROL_ENTRY_V0 -->",
7
+ "paths": {
8
+ "local": "CLAUDE.local.md",
9
+ "project_alt": ".claude/CLAUDE.md",
10
+ "project_primary": "CLAUDE.md"
11
+ }
12
+ },
13
+ "hooks": {
14
+ "behavior": {
15
+ "on_invalid_hook": "report_only"
16
+ },
17
+ "definitions": [],
18
+ "description": "Крючки (hooks) Claude Code, если используются в проекте/плагинах.",
19
+ "enable": true
20
+ },
21
+ "mcp": {
22
+ "description": "Подключения MCP серверов и правила по переменным окружения.",
23
+ "env_expansion_policy": {
24
+ "allow_defaults_syntax": true,
25
+ "on_missing_var": "report_only",
26
+ "require_all_vars": false
27
+ },
28
+ "servers": []
29
+ },
30
+ "permissions": {
31
+ "allow": [],
32
+ "behavior": {
33
+ "on_conflict": "deny_wins",
34
+ "on_unknown": "report_only"
35
+ },
36
+ "deny": [],
37
+ "description": "Правила allow/deny (в стиле Claude Code) для действий и инструментов."
38
+ },
39
+ "plugins": {
40
+ "allowed_plugin_ids": [],
41
+ "behavior": {
42
+ "on_unknown": "report_only"
43
+ },
44
+ "denied_plugin_ids": [],
45
+ "description": "Политика использования плагинов/команд. На v0 — только реестр намерений и отчёты.",
46
+ "enable": true
47
+ },
48
+ "scopes_enabled": {
49
+ "local": true,
50
+ "managed": false,
51
+ "project": true,
52
+ "user": true
53
+ }
54
+ },
55
+ "apply": {
56
+ "backup_before_write": true,
57
+ "behavior": {
58
+ "on_parse_error": "report_only",
59
+ "on_unwritable_target": "report_only"
60
+ },
61
+ "default_apply_mode": "preview",
62
+ "default_target": "project_only",
63
+ "description": "Настройки операции apply (разнос из профиля в файлы Claude Code).",
64
+ "write_scopes": {
65
+ "local": false,
66
+ "project": true,
67
+ "user": false
68
+ }
69
+ },
70
+ "id": "ds.claude_control_profile_v0",
71
+ "kind": "ds",
72
+ "mode": "report_only",
73
+ "mova": {
74
+ "export": {
75
+ "description": "Экспорт zip для передачи/архивации результата.",
76
+ "emit_export_manifest": true,
77
+ "emit_zip": false,
78
+ "zip_name": "export.zip"
79
+ },
80
+ "observability": {
81
+ "artifact_root": "mova/claude_import/v0",
82
+ "description": "Артефакты наблюдаемости и доказательности. Включены по умолчанию.",
83
+ "emit_apply_report": true,
84
+ "emit_manifest": true,
85
+ "emit_policy_report": true,
86
+ "emit_quality_report": true,
87
+ "emit_version_anchor": true
88
+ },
89
+ "overlay": {
90
+ "description": "MOVA Control Overlay — добавляет понятный блок управления и ссылки на отчёты.",
91
+ "emit": true
92
+ },
93
+ "premium": {
94
+ "description": "Премиум-блоки по умолчанию выключены. Включаются пользователем, если он подключает соответствующие пакеты/дверь.",
95
+ "proofkits": {
96
+ "enabled": false,
97
+ "selected": []
98
+ },
99
+ "tool_door": {
100
+ "auth_ref": "",
101
+ "enabled": false,
102
+ "endpoint": "",
103
+ "policy_profile_id": ""
104
+ }
105
+ }
106
+ },
107
+ "notes": [
108
+ "Единая точка управления контролем Claude Code + MOVA слой наблюдаемости.",
109
+ "По умолчанию НЕ ломает работу: формирует отчёты и подсказки. Жёсткое применение/запреты включаются явно пользователем.",
110
+ "Этот профиль можно заполнить вручную или получить prefill через импорт существующей папки Claude."
111
+ ],
112
+ "title": "Claude Control Profile v0",
113
+ "version": "0.1.0"
114
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "applied": {
3
+ "mcp_servers": true
4
+ },
5
+ "found": {
6
+ "mcp_json": true,
7
+ "settings_json": false,
8
+ "settings_local_json": false
9
+ },
10
+ "profile_path": "D:\\Projects_Clean\\mova-claude-import\\.tmp_test_control_prefill\\out2\\claude_control_profile_v0.json",
11
+ "profile_version": "v0",
12
+ "project_dir": "D:\\Projects_Clean\\mova-claude-import\\fixtures\\pos\\control_basic_project"
13
+ }
@@ -0,0 +1 @@
1
+ # skill
@@ -0,0 +1 @@
1
+ {"servers":[]}
@@ -0,0 +1 @@
1
+ Hello
@@ -0,0 +1 @@
1
+ # skill
@@ -0,0 +1 @@
1
+ {"servers":[]}
@@ -0,0 +1 @@
1
+ Hello
@@ -0,0 +1,3 @@
1
+ # example_agent
2
+
3
+ Role: reviewer
@@ -0,0 +1,3 @@
1
+ # example_command
2
+
3
+ Write a brief project summary.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ echo "hook: dry check"
@@ -0,0 +1,3 @@
1
+ # example_style
2
+
3
+ Style: concise, bullet-first.
@@ -0,0 +1,30 @@
1
+ {
2
+ "claude_md": {
3
+ "inject_control_entry": true,
4
+ "marker": "<!-- MOVA_CONTROL_ENTRY_V0 -->"
5
+ },
6
+ "hooks": {
7
+ "behavior": {
8
+ "on_invalid_hook": "report_only"
9
+ },
10
+ "definitions": [],
11
+ "enable": true
12
+ },
13
+ "permissions": {
14
+ "allow": [],
15
+ "behavior": {
16
+ "on_conflict": "deny_wins",
17
+ "on_unknown": "report_only"
18
+ },
19
+ "deny": []
20
+ },
21
+ "plugins": {
22
+ "allowed_plugin_ids": [],
23
+ "behavior": {
24
+ "on_unknown": "report_only"
25
+ },
26
+ "denied_plugin_ids": [],
27
+ "enable": true
28
+ },
29
+ "profile_version": "v0"
30
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "note": "Local settings are not committed; use this as a template."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "servers": {}
3
+ }
@@ -0,0 +1,13 @@
1
+ <!-- MOVA_CONTROL_ENTRY_V0 -->
2
+ ## MOVA Control Entry (v0)
3
+
4
+ Source of truth (do this first):
5
+ - mova/claude_import/v0/contracts/instruction_profile_v0.json
6
+ - mova/claude_import/v0/contracts/skills_catalog_v0.json
7
+ - mova/claude_import/v0/contracts/mcp_servers_v0.json
8
+
9
+ Proof / evidence:
10
+ - mova/claude_import/v0/quality_report_v0.json
11
+ - mova/claude_import/v0/export_manifest_v0.json
12
+
13
+ Custom
@@ -0,0 +1,3 @@
1
+ # MOVA
2
+
3
+ Notes and operator instructions.
@@ -0,0 +1,10 @@
1
+ {
2
+ "export_zip_version": "export_zip_v0",
3
+ "input_policy_version": "input_policy_v0",
4
+ "lint_version": "lint_v0",
5
+ "overlay_version": "mova_control_overlay_v0",
6
+ "profile_version": "anthropic_profile_v0",
7
+ "quality_version": "quality_v0",
8
+ "tool_name": "mova-claude-import",
9
+ "tool_version": "0.1.1"
10
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "episode_id": "b7387398df279407",
3
+ "episode_type": "claude_import_run_v0",
4
+ "failure": {
5
+ "denied_count": 1,
6
+ "reason": "input_policy_denied"
7
+ },
8
+ "ok": false,
9
+ "recorded_at": "1970-01-01T00:00:00.000Z",
10
+ "result_core": {
11
+ "imported": {
12
+ "claude_md": false,
13
+ "mcp_json": false,
14
+ "skills_count": 0
15
+ },
16
+ "inputs_count": 0,
17
+ "validation": null
18
+ },
19
+ "run_id": "b7387398df279407"
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "emit_profile": true,
3
+ "imported": {
4
+ "claude_md": false,
5
+ "mcp_json": false,
6
+ "skills_count": 0
7
+ },
8
+ "input_policy_ok": false,
9
+ "inputs": [],
10
+ "project_dir": "D:\\Projects_Clean\\mova-claude-import\\fixtures\\neg\\strict_denied_local",
11
+ "run_id": "b7387398df279407",
12
+ "skipped": [
13
+ {
14
+ "path": "~/.claude/*",
15
+ "reason": "excluded_by_default_user_settings"
16
+ }
17
+ ],
18
+ "tool": "mova-claude-import",
19
+ "version": "v0"
20
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "allowed": [
3
+ {
4
+ "kind": "other",
5
+ "path": "CLAUDE.md"
6
+ }
7
+ ],
8
+ "denied": [
9
+ {
10
+ "kind": "claude_settings_local",
11
+ "path": ".claude/settings.local.json",
12
+ "reason": "settings_local_not_allowed"
13
+ }
14
+ ],
15
+ "exit_code_recommended": 2,
16
+ "found": [
17
+ {
18
+ "kind": "other",
19
+ "path": "CLAUDE.md"
20
+ },
21
+ {
22
+ "kind": "claude_settings_local",
23
+ "path": ".claude/settings.local.json"
24
+ }
25
+ ],
26
+ "ok": false,
27
+ "opts": {
28
+ "include_local": false,
29
+ "strict": true
30
+ },
31
+ "policy_version": "v0"
32
+ }
@@ -0,0 +1,3 @@
1
+ # example_agent
2
+
3
+ Role: reviewer