scene-capability-engine 3.0.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.
Files changed (336) hide show
  1. package/CHANGELOG.md +2513 -0
  2. package/LICENSE +21 -0
  3. package/README.md +765 -0
  4. package/README.zh.md +630 -0
  5. package/bin/kiro-spec-engine.js +796 -0
  6. package/bin/kse.js +3 -0
  7. package/bin/sce.js +3 -0
  8. package/bin/sco.js +3 -0
  9. package/docs/331-poc-adaptation-roadmap.md +156 -0
  10. package/docs/331-poc-dual-track-integration-guide.md +120 -0
  11. package/docs/331-poc-weekly-delivery-checklist.md +52 -0
  12. package/docs/OFFLINE_INSTALL.md +96 -0
  13. package/docs/README.md +279 -0
  14. package/docs/adopt-migration-guide.md +599 -0
  15. package/docs/adoption-guide.md +616 -0
  16. package/docs/agent-hooks-analysis.md +815 -0
  17. package/docs/architecture.md +733 -0
  18. package/docs/articles/ai-driven-development-philosophy-and-practice-review.md +208 -0
  19. package/docs/articles/ai-driven-development-philosophy-and-practice.en.md +459 -0
  20. package/docs/articles/ai-driven-development-philosophy-and-practice.md +492 -0
  21. package/docs/autonomous-control-guide.md +851 -0
  22. package/docs/command-reference.md +1368 -0
  23. package/docs/community.md +115 -0
  24. package/docs/cross-tool-guide.md +555 -0
  25. package/docs/developer-guide.md +619 -0
  26. package/docs/document-governance.md +865 -0
  27. package/docs/environment-management-guide.md +526 -0
  28. package/docs/examples/add-export-command/design.md +194 -0
  29. package/docs/examples/add-export-command/requirements.md +110 -0
  30. package/docs/examples/add-export-command/tasks.md +88 -0
  31. package/docs/examples/add-rest-api/design.md +855 -0
  32. package/docs/examples/add-rest-api/requirements.md +323 -0
  33. package/docs/examples/add-rest-api/tasks.md +355 -0
  34. package/docs/examples/add-user-dashboard/design.md +192 -0
  35. package/docs/examples/add-user-dashboard/requirements.md +143 -0
  36. package/docs/examples/add-user-dashboard/tasks.md +91 -0
  37. package/docs/faq.md +697 -0
  38. package/docs/handoffs/evidence/ontology/moqui-template-baseline-2026-02-17-232922.json +156 -0
  39. package/docs/handoffs/evidence/ontology/moqui-template-baseline-2026-02-17-232922.md +24 -0
  40. package/docs/images/wechat-qr.png +0 -0
  41. package/docs/integration-modes.md +529 -0
  42. package/docs/integration-philosophy.md +313 -0
  43. package/docs/knowledge-management-guide.md +263 -0
  44. package/docs/manual-workflows-guide.md +418 -0
  45. package/docs/moqui-capability-matrix.md +73 -0
  46. package/docs/moqui-template-core-library-playbook.md +109 -0
  47. package/docs/multi-agent-coordination-guide.md +553 -0
  48. package/docs/multi-repo-management-guide.md +1344 -0
  49. package/docs/quick-start-with-ai-tools.md +375 -0
  50. package/docs/quick-start.md +146 -0
  51. package/docs/release-checklist.md +121 -0
  52. package/docs/releases/README.md +13 -0
  53. package/docs/releases/v1.46.2-validation.md +45 -0
  54. package/docs/releases/v1.46.2.md +50 -0
  55. package/docs/scene-runtime-guide.md +347 -0
  56. package/docs/spec-collaboration-guide.md +369 -0
  57. package/docs/spec-locking-guide.md +225 -0
  58. package/docs/spec-numbering-guide.md +348 -0
  59. package/docs/spec-workflow.md +519 -0
  60. package/docs/steering-strategy-guide.md +196 -0
  61. package/docs/team-collaboration-guide.md +465 -0
  62. package/docs/testing-strategy.md +272 -0
  63. package/docs/tools/claude-guide.md +654 -0
  64. package/docs/tools/cursor-guide.md +706 -0
  65. package/docs/tools/generic-guide.md +446 -0
  66. package/docs/tools/kiro-guide.md +308 -0
  67. package/docs/tools/vscode-guide.md +445 -0
  68. package/docs/tools/windsurf-guide.md +391 -0
  69. package/docs/troubleshooting.md +1135 -0
  70. package/docs/upgrade-guide.md +639 -0
  71. package/docs/value-observability-guide.md +127 -0
  72. package/docs/zh/README.md +341 -0
  73. package/docs/zh/quick-start.md +764 -0
  74. package/docs/zh/release-checklist.md +121 -0
  75. package/docs/zh/releases/README.md +13 -0
  76. package/docs/zh/releases/v1.46.2-validation.md +45 -0
  77. package/docs/zh/releases/v1.46.2.md +50 -0
  78. package/docs/zh/spec-numbering-guide.md +348 -0
  79. package/docs/zh/tools/claude-guide.md +349 -0
  80. package/docs/zh/tools/cursor-guide.md +281 -0
  81. package/docs/zh/tools/generic-guide.md +499 -0
  82. package/docs/zh/tools/kiro-guide.md +342 -0
  83. package/docs/zh/tools/vscode-guide.md +449 -0
  84. package/docs/zh/tools/windsurf-guide.md +378 -0
  85. package/docs/zh/value-observability-guide.md +127 -0
  86. package/docs//344/272/244/344/273/230/346/270/205/345/215/225.md +75 -0
  87. package/lib/adoption/adoption-logger.js +487 -0
  88. package/lib/adoption/adoption-strategy.js +538 -0
  89. package/lib/adoption/backup-manager.js +420 -0
  90. package/lib/adoption/conflict-resolver.js +410 -0
  91. package/lib/adoption/detection-engine.js +275 -0
  92. package/lib/adoption/diff-viewer.js +226 -0
  93. package/lib/adoption/error-formatter.js +509 -0
  94. package/lib/adoption/file-classifier.js +385 -0
  95. package/lib/adoption/progress-reporter.js +534 -0
  96. package/lib/adoption/smart-orchestrator.js +470 -0
  97. package/lib/adoption/strategy-selector.js +218 -0
  98. package/lib/adoption/summary-generator.js +493 -0
  99. package/lib/adoption/template-sync.js +605 -0
  100. package/lib/auto/autonomous-engine.js +485 -0
  101. package/lib/auto/checkpoint-manager.js +300 -0
  102. package/lib/auto/close-loop-runner.js +2476 -0
  103. package/lib/auto/config-schema.js +176 -0
  104. package/lib/auto/decision-engine.js +344 -0
  105. package/lib/auto/error-recovery-manager.js +580 -0
  106. package/lib/auto/goal-decomposer.js +278 -0
  107. package/lib/auto/progress-tracker.js +502 -0
  108. package/lib/auto/safety-manager.js +186 -0
  109. package/lib/auto/semantic-decomposer.js +137 -0
  110. package/lib/auto/state-manager.js +126 -0
  111. package/lib/auto/task-queue-manager.js +340 -0
  112. package/lib/backup/backup-system.js +372 -0
  113. package/lib/backup/selective-backup.js +207 -0
  114. package/lib/collab/agent-registry.js +240 -0
  115. package/lib/collab/collab-manager.js +285 -0
  116. package/lib/collab/contract-manager.js +320 -0
  117. package/lib/collab/coordinator.js +370 -0
  118. package/lib/collab/dependency-manager.js +280 -0
  119. package/lib/collab/index.js +20 -0
  120. package/lib/collab/integration-manager.js +202 -0
  121. package/lib/collab/merge-coordinator.js +252 -0
  122. package/lib/collab/metadata-manager.js +233 -0
  123. package/lib/collab/multi-agent-config.js +120 -0
  124. package/lib/collab/spec-lifecycle-manager.js +304 -0
  125. package/lib/collab/sync-barrier.js +88 -0
  126. package/lib/collab/visualizer.js +208 -0
  127. package/lib/commands/adopt.js +749 -0
  128. package/lib/commands/auto.js +19559 -0
  129. package/lib/commands/collab.js +275 -0
  130. package/lib/commands/context.js +99 -0
  131. package/lib/commands/docs.js +808 -0
  132. package/lib/commands/doctor.js +273 -0
  133. package/lib/commands/env.js +420 -0
  134. package/lib/commands/knowledge.js +309 -0
  135. package/lib/commands/lock.js +235 -0
  136. package/lib/commands/ops.js +409 -0
  137. package/lib/commands/orchestrate.js +446 -0
  138. package/lib/commands/prompt.js +105 -0
  139. package/lib/commands/repo.js +118 -0
  140. package/lib/commands/rollback.js +219 -0
  141. package/lib/commands/scene.js +15549 -0
  142. package/lib/commands/spec-bootstrap.js +147 -0
  143. package/lib/commands/spec-gate.js +157 -0
  144. package/lib/commands/spec-pipeline.js +205 -0
  145. package/lib/commands/status.js +321 -0
  146. package/lib/commands/task.js +199 -0
  147. package/lib/commands/templates.js +654 -0
  148. package/lib/commands/upgrade.js +231 -0
  149. package/lib/commands/value.js +569 -0
  150. package/lib/commands/watch.js +684 -0
  151. package/lib/commands/workflows.js +240 -0
  152. package/lib/commands/workspace-multi.js +325 -0
  153. package/lib/commands/workspace.js +189 -0
  154. package/lib/context/context-exporter.js +378 -0
  155. package/lib/context/prompt-generator.js +482 -0
  156. package/lib/data/moqui-capability-lexicon.json +45 -0
  157. package/lib/environment/backup-system.js +189 -0
  158. package/lib/environment/environment-manager.js +379 -0
  159. package/lib/environment/environment-registry.js +168 -0
  160. package/lib/gitignore/gitignore-backup.js +229 -0
  161. package/lib/gitignore/gitignore-detector.js +239 -0
  162. package/lib/gitignore/gitignore-integration.js +267 -0
  163. package/lib/gitignore/gitignore-transformer.js +193 -0
  164. package/lib/gitignore/layered-rules-template.js +42 -0
  165. package/lib/governance/archive-tool.js +284 -0
  166. package/lib/governance/cleanup-tool.js +237 -0
  167. package/lib/governance/config-manager.js +186 -0
  168. package/lib/governance/diagnostic-engine.js +271 -0
  169. package/lib/governance/doc-reference-checker.js +200 -0
  170. package/lib/governance/execution-logger.js +243 -0
  171. package/lib/governance/file-scanner.js +285 -0
  172. package/lib/governance/hooks-manager.js +333 -0
  173. package/lib/governance/reporter.js +337 -0
  174. package/lib/governance/validation-engine.js +181 -0
  175. package/lib/i18n.js +79 -0
  176. package/lib/knowledge/entry-manager.js +208 -0
  177. package/lib/knowledge/index-manager.js +261 -0
  178. package/lib/knowledge/knowledge-manager.js +273 -0
  179. package/lib/knowledge/template-manager.js +191 -0
  180. package/lib/lock/index.js +21 -0
  181. package/lib/lock/lock-file.js +192 -0
  182. package/lib/lock/lock-manager.js +321 -0
  183. package/lib/lock/machine-identifier.js +135 -0
  184. package/lib/lock/steering-file-lock.js +207 -0
  185. package/lib/lock/task-lock-manager.js +345 -0
  186. package/lib/operations/audit-logger.js +293 -0
  187. package/lib/operations/feedback-manager.js +1147 -0
  188. package/lib/operations/index.js +23 -0
  189. package/lib/operations/models/index.js +170 -0
  190. package/lib/operations/operations-manager.js +151 -0
  191. package/lib/operations/operations-validator.js +280 -0
  192. package/lib/operations/permission-manager.js +354 -0
  193. package/lib/operations/template-loader.js +143 -0
  194. package/lib/orchestrator/agent-spawner.js +629 -0
  195. package/lib/orchestrator/bootstrap-prompt-builder.js +236 -0
  196. package/lib/orchestrator/index.js +19 -0
  197. package/lib/orchestrator/orchestration-engine.js +1270 -0
  198. package/lib/orchestrator/orchestrator-config.js +173 -0
  199. package/lib/orchestrator/status-monitor.js +591 -0
  200. package/lib/python-checker.js +209 -0
  201. package/lib/repo/config-manager.js +580 -0
  202. package/lib/repo/errors/config-error.js +13 -0
  203. package/lib/repo/errors/git-error.js +15 -0
  204. package/lib/repo/errors/repo-error.js +14 -0
  205. package/lib/repo/git-operations.js +181 -0
  206. package/lib/repo/handlers/.gitkeep +1 -0
  207. package/lib/repo/handlers/exec-handler.js +155 -0
  208. package/lib/repo/handlers/health-handler.js +169 -0
  209. package/lib/repo/handlers/init-handler.js +197 -0
  210. package/lib/repo/handlers/status-handler.js +176 -0
  211. package/lib/repo/output-formatter.js +184 -0
  212. package/lib/repo/path-resolver.js +178 -0
  213. package/lib/repo/repo-manager.js +514 -0
  214. package/lib/scene-runtime/audit-emitter.js +59 -0
  215. package/lib/scene-runtime/binding-plugin-loader.js +351 -0
  216. package/lib/scene-runtime/binding-registry.js +349 -0
  217. package/lib/scene-runtime/eval-bridge.js +44 -0
  218. package/lib/scene-runtime/index.js +19 -0
  219. package/lib/scene-runtime/moqui-adapter.js +620 -0
  220. package/lib/scene-runtime/moqui-client.js +606 -0
  221. package/lib/scene-runtime/moqui-extractor.js +2029 -0
  222. package/lib/scene-runtime/plan-compiler.js +208 -0
  223. package/lib/scene-runtime/policy-gate.js +58 -0
  224. package/lib/scene-runtime/runtime-executor.js +358 -0
  225. package/lib/scene-runtime/scene-loader.js +96 -0
  226. package/lib/scene-runtime/scene-ontology.js +959 -0
  227. package/lib/scene-runtime/scene-template-linter.js +852 -0
  228. package/lib/scene-runtime/templates/scene-template-erp-query-v0.1.yaml +28 -0
  229. package/lib/scene-runtime/templates/scene-template-hybrid-shadow-v0.1.yaml +34 -0
  230. package/lib/spec/bootstrap/context-collector.js +48 -0
  231. package/lib/spec/bootstrap/draft-generator.js +158 -0
  232. package/lib/spec/bootstrap/questionnaire-engine.js +70 -0
  233. package/lib/spec/bootstrap/trace-emitter.js +59 -0
  234. package/lib/spec/multi-spec-orchestrate.js +93 -0
  235. package/lib/spec/pipeline/constants.js +6 -0
  236. package/lib/spec/pipeline/stage-adapters.js +118 -0
  237. package/lib/spec/pipeline/stage-runner.js +146 -0
  238. package/lib/spec/pipeline/state-store.js +119 -0
  239. package/lib/spec-gate/engine/gate-engine.js +165 -0
  240. package/lib/spec-gate/policy/default-policy.js +22 -0
  241. package/lib/spec-gate/policy/policy-loader.js +103 -0
  242. package/lib/spec-gate/result-emitter.js +81 -0
  243. package/lib/spec-gate/rules/default-rules.js +156 -0
  244. package/lib/spec-gate/rules/rule-registry.js +51 -0
  245. package/lib/steering/adoption-config.js +164 -0
  246. package/lib/steering/compliance-auto-fixer.js +204 -0
  247. package/lib/steering/compliance-cache.js +99 -0
  248. package/lib/steering/compliance-error-reporter.js +70 -0
  249. package/lib/steering/context-sync-manager.js +273 -0
  250. package/lib/steering/index.js +92 -0
  251. package/lib/steering/spec-steering.js +230 -0
  252. package/lib/steering/steering-compliance-checker.js +73 -0
  253. package/lib/steering/steering-loader.js +144 -0
  254. package/lib/steering/steering-manager.js +289 -0
  255. package/lib/task/index.js +12 -0
  256. package/lib/task/task-claimer.js +489 -0
  257. package/lib/task/task-status-store.js +418 -0
  258. package/lib/templates/cache-manager.js +440 -0
  259. package/lib/templates/content-generalizer.js +247 -0
  260. package/lib/templates/frontmatter-generator.js +128 -0
  261. package/lib/templates/git-handler.js +471 -0
  262. package/lib/templates/metadata-collector.js +328 -0
  263. package/lib/templates/path-utils.js +144 -0
  264. package/lib/templates/registry-parser.js +505 -0
  265. package/lib/templates/spec-reader.js +216 -0
  266. package/lib/templates/template-applicator.js +249 -0
  267. package/lib/templates/template-creator.js +256 -0
  268. package/lib/templates/template-error.js +143 -0
  269. package/lib/templates/template-exporter.js +502 -0
  270. package/lib/templates/template-manager.js +782 -0
  271. package/lib/templates/template-validator.js +361 -0
  272. package/lib/upgrade/migration-engine.js +382 -0
  273. package/lib/upgrade/migrations/.gitkeep +52 -0
  274. package/lib/upgrade/migrations/1.0.0-to-1.1.0.js +78 -0
  275. package/lib/utils/file-diff.js +177 -0
  276. package/lib/utils/fs-utils.js +274 -0
  277. package/lib/utils/tool-detector.js +383 -0
  278. package/lib/utils/validation.js +324 -0
  279. package/lib/value/gate-summary-emitter.js +99 -0
  280. package/lib/value/metric-contract-loader.js +210 -0
  281. package/lib/value/risk-evaluator.js +117 -0
  282. package/lib/value/weekly-snapshot-builder.js +61 -0
  283. package/lib/version/version-checker.js +156 -0
  284. package/lib/version/version-manager.js +327 -0
  285. package/lib/watch/action-executor.js +458 -0
  286. package/lib/watch/event-debouncer.js +323 -0
  287. package/lib/watch/execution-logger.js +550 -0
  288. package/lib/watch/file-watcher.js +499 -0
  289. package/lib/watch/presets.js +266 -0
  290. package/lib/watch/watch-manager.js +533 -0
  291. package/lib/workspace/multi/global-config.js +150 -0
  292. package/lib/workspace/multi/index.js +22 -0
  293. package/lib/workspace/multi/path-utils.js +173 -0
  294. package/lib/workspace/multi/workspace-context-resolver.js +244 -0
  295. package/lib/workspace/multi/workspace-registry.js +196 -0
  296. package/lib/workspace/multi/workspace-state-manager.js +537 -0
  297. package/lib/workspace/multi/workspace.js +90 -0
  298. package/lib/workspace/workspace-manager.js +370 -0
  299. package/lib/workspace/workspace-sync.js +356 -0
  300. package/locales/en.json +114 -0
  301. package/locales/zh.json +114 -0
  302. package/package.json +102 -0
  303. package/template/.kiro/README.md +247 -0
  304. package/template/.kiro/hooks/check-spec-on-create.kiro.hook +17 -0
  305. package/template/.kiro/hooks/run-tests-on-save.kiro.hook +13 -0
  306. package/template/.kiro/hooks/sync-tasks-on-edit.kiro.hook +16 -0
  307. package/template/.kiro/specs/SPEC_WORKFLOW_GUIDE.md +134 -0
  308. package/template/.kiro/steering/CORE_PRINCIPLES.md +133 -0
  309. package/template/.kiro/steering/CURRENT_CONTEXT.md +30 -0
  310. package/template/.kiro/steering/ENVIRONMENT.md +35 -0
  311. package/template/.kiro/steering/RULES_GUIDE.md +46 -0
  312. package/template/.kiro/templates/operations/default/change-impact.md +112 -0
  313. package/template/.kiro/templates/operations/default/deployment.md +91 -0
  314. package/template/.kiro/templates/operations/default/feedback-response.md +269 -0
  315. package/template/.kiro/templates/operations/default/migration-plan.md +172 -0
  316. package/template/.kiro/templates/operations/default/monitoring.md +135 -0
  317. package/template/.kiro/templates/operations/default/operations.md +135 -0
  318. package/template/.kiro/templates/operations/default/rollback.md +143 -0
  319. package/template/.kiro/templates/operations/default/tools.yaml +364 -0
  320. package/template/.kiro/templates/operations/default/troubleshooting.md +123 -0
  321. package/template/.kiro/tools/backup_manager.py +295 -0
  322. package/template/.kiro/tools/configuration_manager.py +218 -0
  323. package/template/.kiro/tools/document_evaluator.py +550 -0
  324. package/template/.kiro/tools/enhancement_logger.py +168 -0
  325. package/template/.kiro/tools/error_handler.py +335 -0
  326. package/template/.kiro/tools/improvement_identifier.py +444 -0
  327. package/template/.kiro/tools/modification_applicator.py +737 -0
  328. package/template/.kiro/tools/quality_gate_enforcer.py +207 -0
  329. package/template/.kiro/tools/quality_scorer.py +305 -0
  330. package/template/.kiro/tools/report_generator.py +154 -0
  331. package/template/.kiro/tools/ultrawork_enhancer.py +676 -0
  332. package/template/.kiro/tools/ultrawork_enhancer_refactored.py +0 -0
  333. package/template/.kiro/tools/ultrawork_enhancer_v2.py +463 -0
  334. package/template/.kiro/tools/ultrawork_enhancer_v3.py +606 -0
  335. package/template/.kiro/tools/workflow_quality_gate.py +100 -0
  336. package/template/README.md +111 -0
@@ -0,0 +1,369 @@
1
+ # Spec-Level Collaboration Guide
2
+
3
+ ## Overview
4
+
5
+ The Spec-level collaboration system enables multiple AI instances (Kiro) to work on different Specs in parallel within a large project. This guide explains how to use the collaboration features to coordinate parallel development efforts.
6
+
7
+ ## Key Concepts
8
+
9
+ ### Master Spec and Sub-Specs
10
+
11
+ - **Master Spec**: A high-level Spec that defines the overall feature and breaks it down into multiple Sub-Specs
12
+ - **Sub-Spec**: A child Spec that implements a specific module or component of the Master Spec
13
+
14
+ ### Dependencies
15
+
16
+ Specs can depend on other Specs in three ways:
17
+
18
+ - **requires-completion**: The dependent Spec must be fully completed before this Spec can start
19
+ - **requires-interface**: The dependent Spec must have its interface defined (can be in-progress)
20
+ - **optional**: The dependency is optional and doesn't block progress
21
+
22
+ ### Interface Contracts
23
+
24
+ Interface contracts formally define the APIs, data structures, and behaviors that a Spec provides or consumes. They ensure compatibility between independently developed Specs.
25
+
26
+ ### Kiro Instances
27
+
28
+ A Kiro instance is an AI assistant working on a specific Spec. You can assign Specs to different instances to enable parallel development.
29
+
30
+ ## Quick Start
31
+
32
+ ### 1. Initialize a Master Spec
33
+
34
+ Create a Master Spec with Sub-Specs:
35
+
36
+ ```bash
37
+ kse collab init user-management \
38
+ --sub-specs user-service auth-service session-manager \
39
+ --dependencies "auth-service:user-service" \
40
+ --dependencies "session-manager:auth-service"
41
+ ```
42
+
43
+ This creates:
44
+ - A Master Spec called `user-management`
45
+ - Three Sub-Specs: `user-service`, `auth-service`, `session-manager`
46
+ - Dependencies: `auth-service` depends on `user-service`, `session-manager` depends on `auth-service`
47
+
48
+ ### 2. Check Status
49
+
50
+ View all Specs and their status:
51
+
52
+ ```bash
53
+ kse collab status
54
+ ```
55
+
56
+ View dependency graph:
57
+
58
+ ```bash
59
+ kse collab status --graph
60
+ ```
61
+
62
+ ### 3. Assign Specs to Kiro Instances
63
+
64
+ Assign Specs to different AI instances:
65
+
66
+ ```bash
67
+ kse collab assign user-service kiro-1
68
+ kse collab assign auth-service kiro-2
69
+ kse collab assign session-manager kiro-3
70
+ ```
71
+
72
+ ### 4. Define Interface Contracts
73
+
74
+ Create an interface contract for a Spec (in `.kiro/specs/{spec-name}/interfaces/`):
75
+
76
+ ```json
77
+ {
78
+ "version": "1.0.0",
79
+ "spec": "user-service",
80
+ "interfaces": [
81
+ {
82
+ "name": "UserService",
83
+ "type": "class",
84
+ "exports": [
85
+ {
86
+ "name": "createUser",
87
+ "type": "function",
88
+ "signature": "(userData: UserData) => Promise<User>",
89
+ "required": true
90
+ },
91
+ {
92
+ "name": "getUser",
93
+ "type": "function",
94
+ "signature": "(userId: string) => Promise<User>",
95
+ "required": true
96
+ }
97
+ ]
98
+ }
99
+ ],
100
+ "types": [
101
+ {
102
+ "name": "UserData",
103
+ "definition": "{ name: string, email: string }"
104
+ },
105
+ {
106
+ "name": "User",
107
+ "definition": "{ id: string, name: string, email: string }"
108
+ }
109
+ ]
110
+ }
111
+ ```
112
+
113
+ ### 5. Verify Contracts
114
+
115
+ Verify that implementations match contracts:
116
+
117
+ ```bash
118
+ kse collab verify user-service
119
+ ```
120
+
121
+ ### 6. Run Integration Tests
122
+
123
+ Run integration tests across multiple Specs:
124
+
125
+ ```bash
126
+ kse collab integrate user-service auth-service session-manager
127
+ ```
128
+
129
+ ## Workflow Example
130
+
131
+ ### Scenario: Building a User Management System
132
+
133
+ **Step 1: Architect creates Master Spec**
134
+
135
+ ```bash
136
+ kse collab init user-management \
137
+ --sub-specs database-layer user-service auth-service notification-service \
138
+ --dependencies "user-service:database-layer" \
139
+ --dependencies "auth-service:user-service" \
140
+ --dependencies "notification-service:user-service"
141
+ ```
142
+
143
+ **Step 2: Check which Specs are ready**
144
+
145
+ ```bash
146
+ kse collab status
147
+ ```
148
+
149
+ Output:
150
+ ```
151
+ Total Specs: 5
152
+ Ready to Start: 1
153
+
154
+ ✓ user-management (unassigned)
155
+ ○ database-layer (unassigned)
156
+ ○ user-service (unassigned)
157
+ ○ auth-service (unassigned)
158
+ ○ notification-service (unassigned)
159
+
160
+ Ready to start: database-layer
161
+ ```
162
+
163
+ **Step 3: Assign and start development**
164
+
165
+ ```bash
166
+ kse collab assign database-layer kiro-1
167
+ kse collab assign user-service kiro-2
168
+ kse collab assign auth-service kiro-3
169
+ ```
170
+
171
+ **Step 4: Define interfaces**
172
+
173
+ Each Kiro instance defines the interface contract for their Spec.
174
+
175
+ **Step 5: Verify and integrate**
176
+
177
+ ```bash
178
+ kse collab verify database-layer
179
+ kse collab verify user-service
180
+ kse collab integrate database-layer user-service
181
+ ```
182
+
183
+ ## Commands Reference
184
+
185
+ ### `kse collab init`
186
+
187
+ Initialize a Master Spec with Sub-Specs.
188
+
189
+ ```bash
190
+ kse collab init <master-spec> [options]
191
+ ```
192
+
193
+ Options:
194
+ - `-s, --sub-specs <specs...>`: Sub-spec names
195
+ - `-d, --dependencies <deps...>`: Dependencies in format "spec:dep1,dep2"
196
+
197
+ ### `kse collab status`
198
+
199
+ Display collaboration status.
200
+
201
+ ```bash
202
+ kse collab status [spec-name] [options]
203
+ ```
204
+
205
+ Options:
206
+ - `-g, --graph`: Show dependency graph
207
+ - `--critical-path`: Highlight critical path in graph
208
+
209
+ ### `kse collab assign`
210
+
211
+ Assign a Spec to a Kiro instance.
212
+
213
+ ```bash
214
+ kse collab assign <spec-name> <kiro-instance>
215
+ ```
216
+
217
+ ### `kse collab verify`
218
+
219
+ Verify interface contracts for a Spec.
220
+
221
+ ```bash
222
+ kse collab verify <spec-name>
223
+ ```
224
+
225
+ ### `kse collab integrate`
226
+
227
+ Run integration tests across Specs.
228
+
229
+ ```bash
230
+ kse collab integrate <spec-names...>
231
+ ```
232
+
233
+ ### `kse collab migrate`
234
+
235
+ Convert a standalone Spec to collaborative mode.
236
+
237
+ ```bash
238
+ kse collab migrate <spec-name>
239
+ ```
240
+
241
+ ## Best Practices
242
+
243
+ ### 1. Clear Interface Contracts
244
+
245
+ Define clear, complete interface contracts before starting implementation. This prevents integration issues later.
246
+
247
+ ### 2. Minimal Dependencies
248
+
249
+ Keep dependencies minimal and well-justified. Too many dependencies create bottlenecks.
250
+
251
+ ### 3. Regular Verification
252
+
253
+ Run `kse collab verify` frequently to catch interface mismatches early.
254
+
255
+ ### 4. Integration Testing
256
+
257
+ Write integration tests that span multiple Specs to verify they work together correctly.
258
+
259
+ ### 5. Status Updates
260
+
261
+ Update Spec status regularly so other Kiro instances know when dependencies are ready.
262
+
263
+ ### 6. Critical Path Awareness
264
+
265
+ Use `kse collab status --graph --critical-path` to identify bottlenecks and prioritize work.
266
+
267
+ ## Troubleshooting
268
+
269
+ ### Circular Dependency Detected
270
+
271
+ **Error**: `Circular dependency detected: spec-a → spec-b → spec-c → spec-a`
272
+
273
+ **Solution**: Remove one of the dependencies to break the cycle. Redesign the architecture if necessary.
274
+
275
+ ### Interface Mismatch
276
+
277
+ **Error**: `Implementation does not match contract for 'UserService'`
278
+
279
+ **Solution**: Update either the implementation or the contract to match. Run `kse collab verify` to see specific mismatches.
280
+
281
+ ### Spec Blocked
282
+
283
+ **Error**: `Cannot assign blocked spec (reason: API key missing)`
284
+
285
+ **Solution**: Resolve the blocking issue first, then reassign the Spec.
286
+
287
+ ## Advanced Topics
288
+
289
+ ### Hierarchical Structures
290
+
291
+ You can create nested structures with Sub-Sub-Specs:
292
+
293
+ ```bash
294
+ kse collab init backend-system --sub-specs api-layer business-logic data-layer
295
+ kse collab init api-layer --sub-specs rest-api graphql-api
296
+ ```
297
+
298
+ ### Breaking Changes
299
+
300
+ When you need to make breaking changes to an interface:
301
+
302
+ 1. Version the interface (e.g., `UserServiceV2.json`)
303
+ 2. Update consumers to use the new version
304
+ 3. Run `kse collab verify` to detect breaking changes
305
+ 4. Coordinate with affected Kiro instances
306
+
307
+ ### Custom Integration Tests
308
+
309
+ Create integration tests in `.kiro/specs/{master-spec}/integration-tests/`:
310
+
311
+ ```javascript
312
+ module.exports = {
313
+ name: 'User Authentication Flow',
314
+ specs: ['user-service', 'auth-service'],
315
+ async setup() {
316
+ // Setup test environment
317
+ },
318
+ async test() {
319
+ const userService = require('../../user-service/lib/user-service');
320
+ const authService = require('../../auth-service/lib/auth-service');
321
+
322
+ // Test cross-spec functionality
323
+ const user = await userService.createUser({ name: 'Test', email: 'test@example.com' });
324
+ const token = await authService.login(user.email, 'password');
325
+ assert(token, 'Should receive auth token');
326
+ },
327
+ async teardown() {
328
+ // Cleanup
329
+ }
330
+ };
331
+ ```
332
+
333
+ ## Metadata File Format
334
+
335
+ Collaboration metadata is stored in `.kiro/specs/{spec-name}/collaboration.json`:
336
+
337
+ ```json
338
+ {
339
+ "version": "1.0.0",
340
+ "type": "master" | "sub",
341
+ "masterSpec": "parent-spec-name",
342
+ "subSpecs": ["child-1", "child-2"],
343
+ "dependencies": [
344
+ {
345
+ "spec": "other-spec",
346
+ "type": "requires-completion",
347
+ "reason": "Needs database schema"
348
+ }
349
+ ],
350
+ "assignment": {
351
+ "kiroInstance": "kiro-1",
352
+ "assignedAt": "2026-02-01T10:00:00Z"
353
+ },
354
+ "status": {
355
+ "current": "in-progress",
356
+ "updatedAt": "2026-02-01T10:00:00Z"
357
+ },
358
+ "interfaces": {
359
+ "provides": ["UserService.json"],
360
+ "consumes": ["other-spec/interfaces/DatabaseService.json"]
361
+ }
362
+ }
363
+ ```
364
+
365
+ ## See Also
366
+
367
+ - [Spec Workflow Guide](../README.md)
368
+ - [Multi-Repository Management](multi-repo-management-guide.md)
369
+ - [Environment Management](environment-management-guide.md)
@@ -0,0 +1,225 @@
1
+ # Spec Locking Guide
2
+
3
+ This guide explains how to use the Spec locking mechanism for multi-user collaboration in kse projects.
4
+
5
+ ## Overview
6
+
7
+ When multiple developers work on the same project, they may accidentally edit the same Spec simultaneously, leading to conflicts. The Spec locking mechanism prevents this by allowing developers to acquire exclusive locks on Specs before editing.
8
+
9
+ ## Quick Start
10
+
11
+ ```bash
12
+ # Before editing a Spec, acquire a lock
13
+ kse lock acquire my-feature --reason "Implementing user authentication"
14
+
15
+ # Check who has locks on which Specs
16
+ kse lock status
17
+
18
+ # When done editing, release the lock
19
+ kse unlock my-feature
20
+ ```
21
+
22
+ ## Commands
23
+
24
+ ### Acquire a Lock
25
+
26
+ ```bash
27
+ kse lock acquire <spec-name> [options]
28
+ ```
29
+
30
+ Options:
31
+ - `--reason <reason>` - Document why you're locking the Spec
32
+ - `--timeout <hours>` - Lock timeout in hours (default: 24)
33
+
34
+ Example:
35
+ ```bash
36
+ kse lock acquire 01-00-user-auth --reason "Adding OAuth support" --timeout 48
37
+ ```
38
+
39
+ ### Release a Lock
40
+
41
+ ```bash
42
+ kse unlock <spec-name> [options]
43
+ # or
44
+ kse lock release <spec-name> [options]
45
+ ```
46
+
47
+ Options:
48
+ - `--force` - Release lock even if owned by another machine
49
+
50
+ Example:
51
+ ```bash
52
+ kse unlock 01-00-user-auth
53
+ kse unlock 01-00-user-auth --force # Override someone else's lock
54
+ ```
55
+
56
+ ### Check Lock Status
57
+
58
+ ```bash
59
+ # View all locked Specs
60
+ kse lock status
61
+
62
+ # View specific Spec lock status
63
+ kse lock status <spec-name>
64
+ ```
65
+
66
+ Output includes:
67
+ - Lock owner name
68
+ - Machine hostname
69
+ - Lock duration
70
+ - Stale indicator (if lock exceeded timeout)
71
+ - "you" indicator (if you own the lock)
72
+
73
+ ### Clean Up Stale Locks
74
+
75
+ ```bash
76
+ kse lock cleanup
77
+ ```
78
+
79
+ Removes all locks that have exceeded their timeout period. This is useful when:
80
+ - A developer forgot to release their lock
81
+ - A machine crashed while holding a lock
82
+ - Someone left for vacation with an active lock
83
+
84
+ ### View Machine Identifier
85
+
86
+ ```bash
87
+ kse lock whoami
88
+ ```
89
+
90
+ Shows your machine's unique identifier, which is used to track lock ownership.
91
+
92
+ ## Integration with Status Command
93
+
94
+ The `kse status` command now shows lock indicators for each Spec:
95
+
96
+ ```
97
+ 📁 Specs (5)
98
+
99
+ 01-00-user-auth 🔒 (you)
100
+ Tasks: 3/10 completed (30%)
101
+
102
+ 02-00-api-gateway 🔒 (john)
103
+ Tasks: 5/8 completed (62%)
104
+
105
+ 03-00-dashboard
106
+ Tasks: 8/8 completed (100%)
107
+ ```
108
+
109
+ Lock indicators:
110
+ - 🔒 (you) - You own this lock
111
+ - 🔒 (username) - Another user owns this lock
112
+ - 🔒 [STALE] - Lock has exceeded timeout
113
+
114
+ ## Best Practices
115
+
116
+ ### 1. Always Lock Before Major Edits
117
+
118
+ ```bash
119
+ # Good practice
120
+ kse lock acquire my-feature --reason "Refactoring task structure"
121
+ # ... make your changes ...
122
+ kse unlock my-feature
123
+ ```
124
+
125
+ ### 2. Use Meaningful Reasons
126
+
127
+ ```bash
128
+ # Good - explains what you're doing
129
+ kse lock acquire api-spec --reason "Adding pagination to list endpoints"
130
+
131
+ # Bad - no context
132
+ kse lock acquire api-spec
133
+ ```
134
+
135
+ ### 3. Release Locks Promptly
136
+
137
+ Don't hold locks longer than necessary. Release as soon as you're done editing.
138
+
139
+ ### 4. Check Status Before Starting Work
140
+
141
+ ```bash
142
+ # Check if anyone is working on the Spec
143
+ kse lock status my-feature
144
+
145
+ # If unlocked, acquire and start working
146
+ kse lock acquire my-feature
147
+ ```
148
+
149
+ ### 5. Communicate Before Force Unlocking
150
+
151
+ If you need to force unlock someone else's lock:
152
+ 1. Try to contact them first
153
+ 2. Check if the lock is stale
154
+ 3. Use `--force` only when necessary
155
+
156
+ ```bash
157
+ # Check if stale
158
+ kse lock status their-spec
159
+
160
+ # If stale or confirmed with owner
161
+ kse unlock their-spec --force
162
+ ```
163
+
164
+ ## Configuration
165
+
166
+ ### Lock Timeout
167
+
168
+ Default timeout is 24 hours. You can customize per-lock:
169
+
170
+ ```bash
171
+ kse lock acquire my-spec --timeout 48 # 48 hours
172
+ kse lock acquire quick-fix --timeout 2 # 2 hours
173
+ ```
174
+
175
+ ### Machine ID Storage
176
+
177
+ Machine IDs are stored in `.kiro/config/machine-id.json` and are automatically generated on first use.
178
+
179
+ ## Troubleshooting
180
+
181
+ ### "Spec is already locked" Error
182
+
183
+ Someone else is editing this Spec. Options:
184
+ 1. Wait for them to finish
185
+ 2. Contact them to coordinate
186
+ 3. Use `--force` if the lock is stale or abandoned
187
+
188
+ ### "Lock owned by different machine" Error
189
+
190
+ You're trying to unlock a Spec locked by another machine. Options:
191
+ 1. Use `--force` to override
192
+ 2. Contact the lock owner
193
+
194
+ ### Stale Locks Accumulating
195
+
196
+ Run periodic cleanup:
197
+ ```bash
198
+ kse lock cleanup
199
+ ```
200
+
201
+ Consider adding this to your CI/CD pipeline or team workflow.
202
+
203
+ ## File Format
204
+
205
+ Lock files are stored as `.kiro/specs/<spec-name>/.lock` with JSON format:
206
+
207
+ ```json
208
+ {
209
+ "owner": "John Doe",
210
+ "machineId": "DESKTOP-ABC123-uuid-here",
211
+ "hostname": "DESKTOP-ABC123",
212
+ "timestamp": "2026-02-05T10:30:00.000Z",
213
+ "reason": "Implementing feature X",
214
+ "timeout": 24,
215
+ "version": "1.0.0"
216
+ }
217
+ ```
218
+
219
+ Lock files are excluded from version control via `.gitignore`.
220
+
221
+ ## See Also
222
+
223
+ - [Team Collaboration Guide](team-collaboration-guide.md)
224
+ - [Spec Workflow](spec-workflow.md)
225
+ - [Command Reference](command-reference.md)