kedovi 0.0.0-stage → 0.76.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 (427) hide show
  1. package/CHANGELOG.md +835 -0
  2. package/LICENSE +21 -0
  3. package/README.md +33 -2
  4. package/THIRD_PARTY_NOTICES.md +38 -0
  5. package/bin/docs.js +195 -0
  6. package/bin/gateway.js +93 -0
  7. package/bin/global-shim.js +125 -0
  8. package/bin/kedovi.js +3635 -0
  9. package/bin/kit.js +2535 -0
  10. package/bin/models.js +355 -0
  11. package/docs/budget.md +4 -0
  12. package/docs/clean-code.md +53 -0
  13. package/docs/commands.md +100 -0
  14. package/docs/docs-site.md +122 -0
  15. package/docs/handoff.md +81 -0
  16. package/docs/kit-dev.md +80 -0
  17. package/docs/model-catalog.md +114 -0
  18. package/docs/notify.md +68 -0
  19. package/docs/pack-making.md +244 -0
  20. package/docs/packs.md +791 -0
  21. package/docs/quickstart.md +258 -0
  22. package/docs/rules.md +101 -0
  23. package/docs/stack-catalog-sources.json +1297 -0
  24. package/docs/team-models.md +201 -0
  25. package/docs/workflow.md +460 -0
  26. package/docs/workspace.md +194 -0
  27. package/package.json +54 -4
  28. package/packs/backend/docs/SOURCES.md +198 -0
  29. package/packs/backend/docs/api-reference.md +162 -0
  30. package/packs/backend/docs/security-reference.md +115 -0
  31. package/packs/backend/pack.json +15 -0
  32. package/packs/backend/rules/10-backend-baseline.md +22 -0
  33. package/packs/backend/rules/20-layers-and-naming.md +52 -0
  34. package/packs/backend/rules/30-api-contract.md +106 -0
  35. package/packs/backend/rules/40-data-access.md +50 -0
  36. package/packs/backend/rules/50-logging.md +48 -0
  37. package/packs/backend/rules/60-security.md +87 -0
  38. package/packs/backend/rules/70-resilience-and-config.md +57 -0
  39. package/packs/backend/rules/80-testing.md +31 -0
  40. package/packs/clean-code/pack.json +10 -0
  41. package/packs/clean-code/rules/10-clean-code.md +40 -0
  42. package/packs/clean-code/rules/20-layer-responsibility.md +27 -0
  43. package/packs/consulting/pack.json +10 -0
  44. package/packs/consulting/rules/10-consulting.md +15 -0
  45. package/packs/consulting/skills/requirements/SKILL.md +35 -0
  46. package/packs/core/agents/analyst.md +49 -0
  47. package/packs/core/agents/architect.md +50 -0
  48. package/packs/core/agents/documenter.md +49 -0
  49. package/packs/core/agents/implementer.md +48 -0
  50. package/packs/core/agents/reviewer.md +57 -0
  51. package/packs/core/agents/spec-writer.md +38 -0
  52. package/packs/core/agents/tester.md +48 -0
  53. package/packs/core/assets/architecture/template.md +53 -0
  54. package/packs/core/assets/docs-site/shared/10-sidehead.js +21 -0
  55. package/packs/core/assets/docs-site/site.css +213 -0
  56. package/packs/core/assets/docs-site/src/00-core.js +67 -0
  57. package/packs/core/assets/docs-site/src/10-router.js +92 -0
  58. package/packs/core/assets/docs-site/src/20-nav.js +93 -0
  59. package/packs/core/assets/docs-site/src/30-search.js +85 -0
  60. package/packs/core/assets/docs-site/src/40-body.js +115 -0
  61. package/packs/core/assets/docs-site/src/50-print.js +71 -0
  62. package/packs/core/assets/docs-site/src/60-ink.js +370 -0
  63. package/packs/core/assets/docs-site/src/90-app.js +104 -0
  64. package/packs/core/assets/docs-site/vendor/htm-LICENSE.txt +202 -0
  65. package/packs/core/assets/docs-site/vendor/htm.js +2 -0
  66. package/packs/core/assets/docs-site/vendor/index.json +36 -0
  67. package/packs/core/assets/docs-site/vendor/minisearch-LICENSE.txt +7 -0
  68. package/packs/core/assets/docs-site/vendor/minisearch.js +2013 -0
  69. package/packs/core/assets/docs-site/vendor/perfect-freehand-LICENSE.txt +21 -0
  70. package/packs/core/assets/docs-site/vendor/perfect-freehand.js +5 -0
  71. package/packs/core/assets/docs-site/vendor/preact-LICENSE.txt +21 -0
  72. package/packs/core/assets/docs-site/vendor/preact-hooks.js +2 -0
  73. package/packs/core/assets/docs-site/vendor/preact.js +2 -0
  74. package/packs/core/assets/mermaid/mermaid-LICENSE.txt +21 -0
  75. package/packs/core/assets/mermaid/mermaid.min.js +3636 -0
  76. package/packs/core/assets/pages/github-pages.yml +34 -0
  77. package/packs/core/assets/pages/gitlab-ci.yml +15 -0
  78. package/packs/core/assets/scale/template.md +35 -0
  79. package/packs/core/bin/board.js +132 -0
  80. package/packs/core/bin/brief.js +57 -0
  81. package/packs/core/bin/budget.js +42 -0
  82. package/packs/core/bin/check-docs.js +238 -0
  83. package/packs/core/bin/check-refs.js +150 -0
  84. package/packs/core/bin/cross-review.js +220 -0
  85. package/packs/core/bin/delegate.js +428 -0
  86. package/packs/core/bin/docs-site.js +830 -0
  87. package/packs/core/bin/doctor.js +235 -0
  88. package/packs/core/bin/handoff.js +256 -0
  89. package/packs/core/bin/import-scan.js +169 -0
  90. package/packs/core/bin/issue-check.js +80 -0
  91. package/packs/core/bin/notify.js +500 -0
  92. package/packs/core/bin/plan.js +229 -0
  93. package/packs/core/bin/rename-ref.js +151 -0
  94. package/packs/core/bin/repo-activity.js +55 -0
  95. package/packs/core/bin/review.js +57 -0
  96. package/packs/core/bin/secret.js +194 -0
  97. package/packs/core/bin/strip-ai-trailers.js +34 -0
  98. package/packs/core/bin/team-status.js +197 -0
  99. package/packs/core/bin/tidy.js +189 -0
  100. package/packs/core/docs/SOURCES.md +303 -0
  101. package/packs/core/hooks/agent-budget.js +73 -0
  102. package/packs/core/hooks/agent-cleanup.js +26 -0
  103. package/packs/core/hooks/budget-check.js +25 -0
  104. package/packs/core/hooks/channel-mode.js +32 -0
  105. package/packs/core/hooks/channel-progress.js +71 -0
  106. package/packs/core/hooks/chat-prefs.js +41 -0
  107. package/packs/core/hooks/check-context-sync.js +57 -0
  108. package/packs/core/hooks/check-repo-updates.js +59 -0
  109. package/packs/core/hooks/decision-ask.js +32 -0
  110. package/packs/core/hooks/handoff-brief.js +38 -0
  111. package/packs/core/hooks/handoff-reminder.js +89 -0
  112. package/packs/core/hooks/model-profile.js +14 -0
  113. package/packs/core/hooks/notify.js +157 -0
  114. package/packs/core/hooks/plan-first.js +78 -0
  115. package/packs/core/hooks/prompt-time.js +36 -0
  116. package/packs/core/hooks/review-gate.js +47 -0
  117. package/packs/core/hooks/session-brief.js +19 -0
  118. package/packs/core/hooks/spec-commit.js +38 -0
  119. package/packs/core/hooks/task-check.js +39 -0
  120. package/packs/core/hooks/task-focus.js +37 -0
  121. package/packs/core/hooks/team-guard.js +20 -0
  122. package/packs/core/hooks/team-idle.js +52 -0
  123. package/packs/core/hooks/team-mode.js +20 -0
  124. package/packs/core/hooks.json +59 -0
  125. package/packs/core/lib/budget.js +31 -0
  126. package/packs/core/lib/chatprefs.js +112 -0
  127. package/packs/core/lib/cli.js +37 -0
  128. package/packs/core/lib/datamodel.js +237 -0
  129. package/packs/core/lib/delegate-progress.js +98 -0
  130. package/packs/core/lib/detect.js +171 -0
  131. package/packs/core/lib/docsref.js +449 -0
  132. package/packs/core/lib/hook.js +90 -0
  133. package/packs/core/lib/longrun.js +92 -0
  134. package/packs/core/lib/mdsite.js +1123 -0
  135. package/packs/core/lib/mermaid-check.js +89 -0
  136. package/packs/core/lib/notify.js +839 -0
  137. package/packs/core/lib/plan.js +512 -0
  138. package/packs/core/lib/refs.js +55 -0
  139. package/packs/core/lib/review.js +157 -0
  140. package/packs/core/lib/secrets.js +357 -0
  141. package/packs/core/lib/teamidle.js +209 -0
  142. package/packs/core/lib/teammode.js +46 -0
  143. package/packs/core/lib/topics.js +54 -0
  144. package/packs/core/lib/vendor/markdown-it-LICENSES.txt +198 -0
  145. package/packs/core/lib/vendor/markdown-it.js +5495 -0
  146. package/packs/core/lib/visibility.js +32 -0
  147. package/packs/core/lib/workspace.js +101 -0
  148. package/packs/core/lib/workspace.py +57 -0
  149. package/packs/core/models.json +1035 -0
  150. package/packs/core/pack.json +109 -0
  151. package/packs/core/rules/10-communication.md +21 -0
  152. package/packs/core/rules/11-confirm-request-tone.md +45 -0
  153. package/packs/core/rules/20-evidence.md +19 -0
  154. package/packs/core/rules/21-verification.md +69 -0
  155. package/packs/core/rules/25-work-principles.md +19 -0
  156. package/packs/core/rules/26-safety.md +13 -0
  157. package/packs/core/rules/27-security.md +65 -0
  158. package/packs/core/rules/28-work-detail.md +93 -0
  159. package/packs/core/rules/29-agents.md +16 -0
  160. package/packs/core/rules/30-change-impact.md +82 -0
  161. package/packs/core/rules/35-issue-handling.md +18 -0
  162. package/packs/core/rules/40-context.md +11 -0
  163. package/packs/core/rules/41-context-detail.md +55 -0
  164. package/packs/core/rules/45-docs-writing.md +26 -0
  165. package/packs/core/rules/50-git.md +14 -0
  166. package/packs/core/skills/architecture/SKILL.md +45 -0
  167. package/packs/core/skills/autopilot/SKILL.md +52 -0
  168. package/packs/core/skills/common-practice/SKILL.md +43 -0
  169. package/packs/core/skills/cross-review/SKILL.md +59 -0
  170. package/packs/core/skills/doctor/SKILL.md +42 -0
  171. package/packs/core/skills/go/SKILL.md +44 -0
  172. package/packs/core/skills/handoff/SKILL.md +166 -0
  173. package/packs/core/skills/handoff-organize/SKILL.md +47 -0
  174. package/packs/core/skills/idea/SKILL.md +68 -0
  175. package/packs/core/skills/import/SKILL.md +62 -0
  176. package/packs/core/skills/kedovi/SKILL.md +113 -0
  177. package/packs/core/skills/resume/SKILL.md +69 -0
  178. package/packs/core/skills/review/SKILL.md +32 -0
  179. package/packs/core/skills/takeover/SKILL.md +59 -0
  180. package/packs/core/skills/team/SKILL.md +146 -0
  181. package/packs/core/skills/team-status/SKILL.md +30 -0
  182. package/packs/core/skills/ticket/SKILL.md +41 -0
  183. package/packs/core/skills/tidy/SKILL.md +49 -0
  184. package/packs/core/stacks.json +1670 -0
  185. package/packs/datamodel/assets/erd/ddl.js +81 -0
  186. package/packs/datamodel/assets/erd/elk.bundled.js +6605 -0
  187. package/packs/datamodel/assets/erd/elkjs-LICENSE.txt +267 -0
  188. package/packs/datamodel/assets/erd/erd.css +285 -0
  189. package/packs/datamodel/assets/erd/src/00-model.js +115 -0
  190. package/packs/datamodel/assets/erd/src/10-layout.js +181 -0
  191. package/packs/datamodel/assets/erd/src/20-view.js +169 -0
  192. package/packs/datamodel/assets/erd/src/30-canvas.js +246 -0
  193. package/packs/datamodel/assets/erd/src/40-panels.js +132 -0
  194. package/packs/datamodel/assets/erd/src/50-bar.js +127 -0
  195. package/packs/datamodel/assets/erd/src/90-app.js +105 -0
  196. package/packs/datamodel/assets/erd/template.md +62 -0
  197. package/packs/datamodel/assets/erd/viewer.html +21 -0
  198. package/packs/datamodel/bin/check-datamodel.js +81 -0
  199. package/packs/datamodel/pack.json +67 -0
  200. package/packs/datamodel/skills/datamodel/SKILL.md +80 -0
  201. package/packs/db/agents/dba.md +49 -0
  202. package/packs/db/docs/SOURCES.md +269 -0
  203. package/packs/db/docs/backup-and-restore.md +48 -0
  204. package/packs/db/docs/dangerous-operations.md +64 -0
  205. package/packs/db/docs/dbms-notes.md +87 -0
  206. package/packs/db/docs/environment-table-template.md +29 -0
  207. package/packs/db/docs/expand-contract-playbooks.md +121 -0
  208. package/packs/db/pack.json +18 -0
  209. package/packs/db/rules/10-db-safety.md +16 -0
  210. package/packs/db/rules/20-schema-change.md +95 -0
  211. package/packs/db/rules/30-data-change.md +67 -0
  212. package/packs/db/rules/40-access-and-data.md +45 -0
  213. package/packs/db/rules/50-transactions-and-connections.md +51 -0
  214. package/packs/db/rules/60-data-modeling.md +67 -0
  215. package/packs/db/rules/70-seed-and-test-data.md +38 -0
  216. package/packs/desktop/docs/SOURCES.md +162 -0
  217. package/packs/desktop/pack.json +16 -0
  218. package/packs/desktop/rules/10-desktop-baseline.md +19 -0
  219. package/packs/desktop/rules/20-web-shell.md +51 -0
  220. package/packs/desktop/rules/30-native-ui-threading.md +38 -0
  221. package/packs/desktop/rules/40-packaging-distribution.md +39 -0
  222. package/packs/enhancement/pack.json +10 -0
  223. package/packs/enhancement/rules/10-enhancement.md +17 -0
  224. package/packs/frontend/docs/SOURCES.md +222 -0
  225. package/packs/frontend/docs/accessibility.md +124 -0
  226. package/packs/frontend/docs/alert-placement.md +103 -0
  227. package/packs/frontend/docs/confirm-dialog.md +108 -0
  228. package/packs/frontend/docs/content-and-i18n.md +90 -0
  229. package/packs/frontend/docs/file-attachment.md +35 -0
  230. package/packs/frontend/docs/keyboard-a11y.md +125 -0
  231. package/packs/frontend/docs/loading-state.md +37 -0
  232. package/packs/frontend/docs/modal-and-scroll.md +50 -0
  233. package/packs/frontend/docs/number-format.md +75 -0
  234. package/packs/frontend/docs/performance.md +84 -0
  235. package/packs/frontend/docs/permission-gating.md +77 -0
  236. package/packs/frontend/docs/testing.md +69 -0
  237. package/packs/frontend/docs/url-state.md +89 -0
  238. package/packs/frontend/docs/web-security.md +120 -0
  239. package/packs/frontend/pack.json +15 -0
  240. package/packs/frontend/rules/10-frontend-baseline.md +19 -0
  241. package/packs/frontend/rules/20-structure-and-api.md +49 -0
  242. package/packs/frontend/rules/30-permission-gating.md +55 -0
  243. package/packs/frontend/rules/40-feedback-ui.md +65 -0
  244. package/packs/frontend/rules/50-forms-and-inputs.md +56 -0
  245. package/packs/frontend/rules/60-url-state.md +37 -0
  246. package/packs/frontend/rules/65-state-management.md +39 -0
  247. package/packs/frontend/rules/70-keyboard-a11y.md +56 -0
  248. package/packs/frontend/rules/80-web-security.md +42 -0
  249. package/packs/frontend/rules/85-performance.md +53 -0
  250. package/packs/frontend/rules/90-content-and-i18n.md +38 -0
  251. package/packs/frontend/rules/95-testing-and-verification.md +33 -0
  252. package/packs/github/pack.json +30 -0
  253. package/packs/github/rules/10-branch-and-merge.md +26 -0
  254. package/packs/github/rules/20-commit-message.md +13 -0
  255. package/packs/github/rules/30-issue-pr-tone.md +41 -0
  256. package/packs/github/rules/40-branch-detail.md +55 -0
  257. package/packs/github/skills/github-issue/SKILL.md +89 -0
  258. package/packs/github/skills/pr/SKILL.md +121 -0
  259. package/packs/gitlab/bin/gitlab-issue.js +112 -0
  260. package/packs/gitlab/bin/gitlab-mr.js +283 -0
  261. package/packs/gitlab/pack.json +40 -0
  262. package/packs/gitlab/rules/10-branch-and-merge.md +26 -0
  263. package/packs/gitlab/rules/20-commit-message.md +13 -0
  264. package/packs/gitlab/rules/30-issue-mr-tone.md +40 -0
  265. package/packs/gitlab/rules/40-branch-detail.md +54 -0
  266. package/packs/gitlab/skills/gitlab-issue/SKILL.md +91 -0
  267. package/packs/gitlab/skills/mr/SKILL.md +117 -0
  268. package/packs/infra/agents/infra.md +48 -0
  269. package/packs/infra/docs/SOURCES.md +38 -0
  270. package/packs/infra/docs/environment-table-template.md +23 -0
  271. package/packs/infra/pack.json +18 -0
  272. package/packs/infra/rules/10-infra-safety.md +15 -0
  273. package/packs/infra/rules/20-containers.md +17 -0
  274. package/packs/infra/rules/30-kubernetes.md +17 -0
  275. package/packs/infra/rules/40-iac.md +25 -0
  276. package/packs/infra/rules/50-pipelines.md +15 -0
  277. package/packs/lang-c/pack.json +13 -0
  278. package/packs/lang-c/rules/10-c.md +22 -0
  279. package/packs/lang-cpp/pack.json +13 -0
  280. package/packs/lang-cpp/rules/10-cpp.md +20 -0
  281. package/packs/lang-dart/pack.json +13 -0
  282. package/packs/lang-dart/rules/10-dart.md +32 -0
  283. package/packs/lang-java/pack.json +13 -0
  284. package/packs/lang-java/rules/10-java.md +37 -0
  285. package/packs/lang-kotlin/pack.json +13 -0
  286. package/packs/lang-kotlin/rules/10-kotlin.md +37 -0
  287. package/packs/lang-python/pack.json +13 -0
  288. package/packs/lang-python/rules/10-python.md +35 -0
  289. package/packs/lang-python/rules/20-ml-ai.md +17 -0
  290. package/packs/lang-swift/pack.json +13 -0
  291. package/packs/lang-swift/rules/10-swift.md +36 -0
  292. package/packs/mobile/docs/SOURCES.md +169 -0
  293. package/packs/mobile/pack.json +17 -0
  294. package/packs/mobile/rules/10-mobile-baseline.md +20 -0
  295. package/packs/mobile/rules/20-hybrid-webview-bridge.md +48 -0
  296. package/packs/mobile/rules/30-permissions-privacy-storage.md +47 -0
  297. package/packs/mobile/rules/40-lifecycle-offline-network.md +51 -0
  298. package/packs/mobile/rules/50-release-signing-store.md +41 -0
  299. package/packs/modernization/bin/asis-config.js +77 -0
  300. package/packs/modernization/bin/asis-dialect.js +37 -0
  301. package/packs/modernization/bin/asis-effects.js +145 -0
  302. package/packs/modernization/bin/asis-field-writes.js +79 -0
  303. package/packs/modernization/bin/asis-reads.js +133 -0
  304. package/packs/modernization/bin/asis-tobe-diff.js +137 -0
  305. package/packs/modernization/bin/asis-tobe-map.js +299 -0
  306. package/packs/modernization/bin/check-cobol-coverage.py +405 -0
  307. package/packs/modernization/bin/dialects/_common.js +76 -0
  308. package/packs/modernization/bin/dialects/cobol.js +310 -0
  309. package/packs/modernization/bin/dialects/egl.js +364 -0
  310. package/packs/modernization/bin/fixtures/cobol/prog01.cbl +61 -0
  311. package/packs/modernization/bin/fixtures/cobol/prog02.cbl +17 -0
  312. package/packs/modernization/bin/fixtures/egl/LOWER.egl +14 -0
  313. package/packs/modernization/bin/fixtures/egl/STCOPY.egl +145 -0
  314. package/packs/modernization/bin/fixtures/mapping/legacy.yaml +16 -0
  315. package/packs/modernization/bin/fixtures/mapping/main.yaml +33 -0
  316. package/packs/modernization/bin/fixtures/schema/app.sql +5 -0
  317. package/packs/modernization/bin/fixtures/stub-tobe-query.js +9 -0
  318. package/packs/modernization/bin/fixtures/views/alt/DTLV.md +9 -0
  319. package/packs/modernization/bin/fixtures/views/main/DTLV.md +9 -0
  320. package/packs/modernization/bin/fixtures/views/main/INVV.md +22 -0
  321. package/packs/modernization/bin/fixtures/views/main/JNV.sql +8 -0
  322. package/packs/modernization/docs/adding-a-dialect.md +49 -0
  323. package/packs/modernization/docs/asis-tools.md +101 -0
  324. package/packs/modernization/pack.json +44 -0
  325. package/packs/modernization/rules/10-asis-parity.md +46 -0
  326. package/packs/modernization/rules/20-asis-parity-procedure.md +49 -0
  327. package/packs/modernization/rules/30-data-migration.md +32 -0
  328. package/packs/modernization/skills/asis-analysis-team/SKILL.md +39 -0
  329. package/packs/modernization/skills/asis-compare/SKILL.md +55 -0
  330. package/packs/screens/assets/storyboard/src/00-sheets.js +254 -0
  331. package/packs/screens/assets/storyboard/src/50-app.js +242 -0
  332. package/packs/screens/assets/storyboard/storyboard.css +319 -0
  333. package/packs/screens/assets/storyboard/template.html +130 -0
  334. package/packs/screens/bin/check-screens.js +153 -0
  335. package/packs/screens/pack.json +19 -0
  336. package/packs/screens/rules/10-prototype-fidelity.md +17 -0
  337. package/packs/screens/skills/screens/SKILL.md +90 -0
  338. package/packs/stack-android/pack.json +14 -0
  339. package/packs/stack-android/rules/10-android.md +23 -0
  340. package/packs/stack-django/pack.json +14 -0
  341. package/packs/stack-django/rules/10-django.md +15 -0
  342. package/packs/stack-fastapi/pack.json +14 -0
  343. package/packs/stack-fastapi/rules/10-fastapi.md +17 -0
  344. package/packs/stack-flutter/pack.json +14 -0
  345. package/packs/stack-flutter/rules/10-flutter.md +21 -0
  346. package/packs/stack-nestjs/pack.json +14 -0
  347. package/packs/stack-nestjs/rules/10-nestjs.md +19 -0
  348. package/packs/stack-nextjs/pack.json +14 -0
  349. package/packs/stack-nextjs/rules/10-nextjs.md +14 -0
  350. package/packs/stack-postgres/pack.json +19 -0
  351. package/packs/stack-postgres/rules/10-postgres.md +13 -0
  352. package/packs/stack-postgres/rules/20-sql-patterns.md +68 -0
  353. package/packs/stack-react/bin/check-a11y-labels.py +314 -0
  354. package/packs/stack-react/bin/check-a11y-runtime.js +567 -0
  355. package/packs/stack-react/bin/check-shared-placement.js +176 -0
  356. package/packs/stack-react/bin/lib/react-repo.js +54 -0
  357. package/packs/stack-react/docs/react-a11y.md +99 -0
  358. package/packs/stack-react/pack.json +104 -0
  359. package/packs/stack-react/rules/10-react-baseline.md +17 -0
  360. package/packs/stack-react/rules/20-react-patterns.md +74 -0
  361. package/packs/stack-react/rules/30-react-a11y.md +34 -0
  362. package/packs/stack-react/rules/40-logic-placement.md +16 -0
  363. package/packs/stack-react/skills/form-validation-pattern/SKILL.md +113 -0
  364. package/packs/stack-spring/bin/check-logging-convention.js +94 -0
  365. package/packs/stack-spring/bin/check-querydsl-distinct-order.js +136 -0
  366. package/packs/stack-spring/bin/check-querydsl-projection-arity.js +378 -0
  367. package/packs/stack-spring/bin/fixtures/sample-app/src/main/java/com/example/app/model/base/BaseEntity.java +15 -0
  368. package/packs/stack-spring/bin/fixtures/sample-app/src/main/java/com/example/app/model/entity/order/OrderLine.java +19 -0
  369. package/packs/stack-spring/bin/fixtures/sample-app/src/main/java/com/example/app/model/entity/order/PurchaseOrder.java +28 -0
  370. package/packs/stack-spring/bin/fixtures/sample-app/src/main/java/com/example/app/query/order/OrderQuery.java +53 -0
  371. package/packs/stack-spring/bin/fixtures/sample-app/src/main/java/com/example/app/repository/order/PurchaseOrderRepository.java +17 -0
  372. package/packs/stack-spring/bin/fixtures/sample-app/src/main/java/com/example/app/service/order/OrderSequenceService.java +32 -0
  373. package/packs/stack-spring/bin/lib/spring-src.js +58 -0
  374. package/packs/stack-spring/bin/query-predicates.js +430 -0
  375. package/packs/stack-spring/docs/example-api-spec.md +159 -0
  376. package/packs/stack-spring/docs/example-logging.md +112 -0
  377. package/packs/stack-spring/docs/java-convention.md +83 -0
  378. package/packs/stack-spring/docs/versioning.md +36 -0
  379. package/packs/stack-spring/pack.json +30 -0
  380. package/packs/stack-spring/rules/10-spring-baseline.md +15 -0
  381. package/packs/stack-spring/rules/20-layers-and-naming.md +49 -0
  382. package/packs/stack-spring/rules/30-persistence.md +81 -0
  383. package/packs/stack-spring/rules/40-api-and-validation.md +37 -0
  384. package/packs/stack-spring/rules/50-logging.md +24 -0
  385. package/packs/stack-spring/rules/60-clean-code.md +26 -0
  386. package/packs/tv/docs/SOURCES.md +173 -0
  387. package/packs/tv/pack.json +17 -0
  388. package/packs/tv/rules/10-tv-baseline.md +19 -0
  389. package/packs/tv/rules/20-focus-navigation.md +77 -0
  390. package/packs/tv/rules/30-media-lifecycle.md +54 -0
  391. package/packs/tv/rules/40-platform-store.md +46 -0
  392. package/packs/watch/docs/SOURCES.md +139 -0
  393. package/packs/watch/pack.json +17 -0
  394. package/packs/watch/rules/10-watch-baseline.md +17 -0
  395. package/packs/watch/rules/20-watch-ui-input.md +53 -0
  396. package/packs/watch/rules/30-watch-surfaces-background.md +45 -0
  397. package/packs/watch/rules/40-watch-companion-sync-health.md +47 -0
  398. package/templates/docs-repo/.gitattributes +12 -0
  399. package/templates/docs-repo/00-overview/glossary.md +8 -0
  400. package/templates/docs-repo/00-overview/idea.md +30 -0
  401. package/templates/docs-repo/00-overview/overview.md +41 -0
  402. package/templates/docs-repo/10-system/README.md +10 -0
  403. package/templates/docs-repo/20-features/README.md +18 -0
  404. package/templates/docs-repo/20-features/_template.md +25 -0
  405. package/templates/docs-repo/20-features/requirements.md +9 -0
  406. package/templates/docs-repo/25-policies/README.md +17 -0
  407. package/templates/docs-repo/30-screens/README.md +24 -0
  408. package/templates/docs-repo/30-screens/prototype/README.md +7 -0
  409. package/templates/docs-repo/40-data/README.md +31 -0
  410. package/templates/docs-repo/45-api/README.md +12 -0
  411. package/templates/docs-repo/90-decisions/README.md +16 -0
  412. package/templates/docs-repo/90-decisions/_template.md +25 -0
  413. package/templates/docs-repo/90-decisions/open-questions.md +9 -0
  414. package/templates/docs-repo/AGENTS.md +18 -0
  415. package/templates/docs-repo/CLAUDE.md +1 -0
  416. package/templates/docs-repo/README.md +63 -0
  417. package/templates/docs-repo/docs-site.json +72 -0
  418. package/templates/docs-repo/gitignore +9 -0
  419. package/templates/docs-repo/md/README.md +16 -0
  420. package/templates/docs-repo/originals/README.md +6 -0
  421. package/templates/workspace/.agents/local.example.md +7 -0
  422. package/templates/workspace/gitignore +8 -0
  423. package/templates/workspace/handoffs/README.md +20 -0
  424. package/templates/workspace/packs/project/pack.json +6 -0
  425. package/templates/workspace/packs/project/rules/00-project.md +22 -0
  426. package/templates/workspace/packs/project/skills/.gitkeep +0 -0
  427. package/templates/workspace/workspace.json +27 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,835 @@
1
+ # 변경 기록
2
+
3
+ `kedovi upgrade` 가 올린 버전 사이의 항목을 표로 보여 준다. 배포할 때 이번 버전 항목을 맨 위에 더한다 (`## 버전` 아래 `| 구분 | 내용 |` 표, 한 줄씩 짧게).
4
+
5
+ ## 0.76.0
6
+
7
+ | 구분 | 내용 |
8
+ |---|---|
9
+ | 규칙 | 규모 판단은 수치로: 「과하다 · 이 규모엔 필요 없다 · 충분하다」 는 기록된 수치(사용자 · 동시 접속 · 하루 데이터 건수 · 증가량 · 보존 기간)로만. 수치가 없으면 묻고 남김. 서버 · 코드 · 요구 · 기능 · 화면 모두 |
10
+ | 규칙 | 실제 수치가 기록과 다르면 바로 알리고, 그 수치를 전제로 한 결정을 다시 볼지 물음. 「지금 필요 없는 일반화」 도 요구 · 기록된 규모로 판단 (core · clean-code) |
11
+ | 기능 | 기획 repo 규모 문서 `00-overview/scale.md` (지금 · 1년 · 3년 · 근거, 목표, 실측과 차이). 결정 기록 양식에 「전제한 규모」 칸 |
12
+ | 기능 | `idea` 스킬이 규모를 물음 (8가지, 기획서가 있어 건너뛰어도 규모는 물음). `architecture` 스킬은 부하 수치를 규모 문서에서 가져옴 |
13
+ | 기능 | `kedovi docs build` · `check` 문서 점검: 결정 · 구성 문서는 있는데 규모 문서가 없거나 「지금」 칸이 비었으면 경고 (기획 repo 만) |
14
+ | 수정 | 머리말이 인용구(`> 상태: 동결`)인 문서도 동결로 봄 (문서 점검 · 추적에서 뺌) |
15
+ | 적용 | 이미 있는 기획 repo 는 `packs/core/assets/scale/template.md` 를 `00-overview/scale.md` 로 복사하고, `docs-site.json` 개요 묶음에 `00-overview/scale.md` 를 `idea.md` 다음에 넣는다 |
16
+
17
+ ## 0.75.1
18
+
19
+ | 구분 | 내용 |
20
+ |---|---|
21
+ | 기능 | Codex 도 응답 언어 한 줄을 요청마다 · 긴 작업 중(도구 15번 · 4분마다) 넣음. Codex 는 훅이 바뀌어 `/hooks` 에서 다시 신뢰해야 돈다 |
22
+ | 기능 | 코드 repo 에서 `git commit` 하기 전에 기획 ID(`@spec`)가 없는 새 진입 파일을 에이전트에게 알림 (Claude Code, 막지 않음, 끄기 `vars.docs.traceOnCommit: off`) |
23
+ | 수정 | 설정 수정이 잠긴 팀의 팀원 PC 에서 sync 가 repo 지침을 `workspace.json` 에 적어 커밋할 수 없던 것: 알리기만 하고 관리자가 sync 할 때 기록 |
24
+ | 규칙 | repo 지침 우선이면 repo 안의 스킬은 SKILL.md 를 직접 읽고 따름 (워크스페이스에서는 스킬 목록에 오지 않음) |
25
+
26
+ ## 0.75.0
27
+
28
+ | 구분 | 내용 |
29
+ |---|---|
30
+ | 기능 | repo 자체 지침: 받은 repo 안의 CLAUDE.md · AGENTS.md · 룰 · 스킬을 sync 가 찾아 `repos[].guides` 에 기록, AGENTS.md 「repo 자체 지침」 표 |
31
+ | 기능 | 따르는 방식 `kedovi repo guides <이름> follow\|kit\|ignore` (follow = repo 지침 우선, 기본 · kit = 킷 규칙 우선 · ignore = 무시, Claude 가 그 CLAUDE.md · 룰을 불러오지 않게 막음). 지침이 바뀌면 sync 가 알림 |
32
+ | 규칙 | 제대로가 기본: 권장안은 요구사항 전체 + 사이드이펙트까지 처리하는 안 (작업량이 적다는 것은 권장 이유가 아님). 간단한 안은 빠지는 것과 함께 보기로, 착수 전 확인에 「방식」 칸 |
33
+ | 규칙 | 시간 예산을 넘으면 남은 일 · 예상 시간을 보이고 묻기 (계속이 권장). MVP 는 기능 수만 줄이고 완성도는 줄이지 않음 |
34
+ | 기능 | 남은 파일 정리: `kedovi tidy` (읽기만: 이번 작업 새 파일 · 안 쓰는 이미지 · 문서 · 백업 이름) + `tidy` 스킬 (표 → 승인 → 지움 → 검증). 방향이 바뀌면 정리할지 묻는 규칙, 핸드오프 · 단계 완료 보고에 정리 후보 개수 |
35
+ | 기능 | `kedovi upgrade --all [--scan <폴더>]`: 이 PC 의 워크스페이스를 한꺼번에 새 버전으로 (관리자 아님 · 받지 않은 커밋 · 커밋 안 한 변경이면 건너뜀). `npm i -g` 뒤 첫 명령이 옛 버전 워크스페이스 수를 알림 |
36
+ | 수정 | 한국어로 정해도 긴 작업 중 진행 알림이 영어로 바뀌던 것: 요청 시작 때만 넣던 언어 한 줄을 작업 중에도 도구 15번 · 4분마다 다시 넣음 (Claude Code) |
37
+ | 화면 | `kedovi start` 가 워크스페이스가 옛 버전이면 「킷 새 버전을 지금 올릴까요」 (올릴 수 없으면 알리기만) |
38
+ | 적용 | upgrade 뒤 첫 sync 가 받은 repo 의 지침을 `workspace.json` 에 적는다. 그 `workspace.json` 도 commit · push |
39
+
40
+ ## 0.74.0
41
+
42
+ | 구분 | 내용 |
43
+ |---|---|
44
+ | 기능 | 신규 구축의 첫 단계 「아이디어 · 전체 그림」: 무엇을 왜 만드는지 대화 → 기능 지도 → MVP 범위 (`idea` 스킬, `✔ 건너뜀` 으로 건너뜀) |
45
+ | 화면 | `kedovi init` 신규 구축에서 개발 방식 선택: MVP · 스프린트(권장) · 워터폴 · 전체 |
46
+ | 기능 | 기획 repo 뼈대를 읽는 순서로: 개요 → 시스템 구성(서버 아키텍처 양식) → 기능(요구 목록 · 영역별 기능 문서 · 수용 기준 · 업무 규칙) → 화면(목록 · 정책 · 스크린샷, 정본은 프로토타입) → 데이터 · API → 결정 · 미결. ID 규칙 한 표 |
47
+ | 규칙 | 사실마다 정본 하나 (다른 문서는 ID 링크), 결정 · 이력은 본문에 쌓지 않음 |
48
+ | 규칙 | 코드 · 화면이 문서와 다르면 판정 후 `vars.docs.syncMode` 대로 (approve = 승인 뒤 정본 고침, 기본 · ask = 미결 목록 · 확인 요청만). 기획자가 기획 repo 를 따로 관리하는 팀은 upgrade 뒤 `workspace.json` 의 `vars.docs.syncMode` 를 `ask` 로 |
49
+ | 기능 | `@spec` 주석 추적: `kedovi docs trace` 가 테스트에 없는 수용 기준을 알림, `--md` 추적표, `--new` 새 진입 파일 중 ID 없는 것. 머리말을 비우면 `FN,SCR,API` + 수용 기준 `AC` (`vars.docs.acceptanceIds`) |
50
+ | 적용 | 기존 기획 repo 는 그대로 (새 뼈대는 `kedovi init-docs` 로 만드는 repo 부터). 옛 신규 로드맵에는 아이디어 단계를 끼우지 않음 |
51
+
52
+ ## 0.73.0
53
+
54
+ | 구분 | 내용 |
55
+ |---|---|
56
+ | 기능 | 언어 감지(`repos[].languages`): Java · Kotlin · Python · C · C++ · Swift · Dart · TypeScript · JavaScript · Go · C# |
57
+ | 기능 | 클린 코드 규칙: 언어 공통(`clean-code`) + 언어별(`lang-*`). 이름 · 함수 · 클래스 · 주석 · 읽히는 코드 |
58
+ | 기능 | 레이어 책임: 컨트롤러 · 서비스 · 설정 · 컴포넌트에 private 상수 · 함수를 늘어놓지 않고 공통 로직을 정해진 위치 · 이름으로 |
59
+ | 기능 | 새 스택 팩: FastAPI · Django · NestJS · Next.js · Android · Flutter. Spring · React 에 레이어 책임 규칙 |
60
+ | 명령 | `kedovi rules off <ID> --repo <이름>` (repo 별 끄기 · `rules.offIn`), project 규칙 머리말 `repos:` (그 repo 만 바꾸기) |
61
+ | 문서 | 「클린 코드 규칙」 쪽: 붙는 규칙 · repo 별로 바꾸기 · 검사 도구 · 근거 |
62
+ | 적용 | `kedovi upgrade` 가 repo 언어를 감지해 채운다 |
63
+
64
+ ## 0.72.0
65
+
66
+ | 구분 | 내용 |
67
+ |---|---|
68
+ | 기능 | 응답 언어 (한국어 · English): 진행 알림 · 중간 설명까지 고른 언어로. Claude `language` 설정 · 개인 지침 맨 앞 · 요청마다 한 줄 |
69
+ | 기능 | 대화 스타일: 학습(단계마다 왜 · 어떻게) · 일반(지금 수준) · 전문가(현업 용어 · 결과 · 근거 표와 그림). Claude 는 출력 스타일로도 |
70
+ | 기능 | 그림: claude-mermaid 가 있으면 브라우저로 띄우고, 없으면 텍스트 그림 |
71
+ | 명령 | `kedovi prefs` · `language ko\|en` · `style learn\|normal\|expert` · `--team` · `mermaid install` · `setup` |
72
+ | 화면 | `kedovi install` 이 이 PC 의 응답 언어 · 대화 스타일과 claude-mermaid 설치를 물음 |
73
+
74
+ ## 0.71.1
75
+
76
+ | 구분 | 내용 |
77
+ |---|---|
78
+ | 개선 | `kedovi --help` 를 자주 쓰는 명령 · 분류 8개로 줄임. 터미널에서는 분류를 골라 그 명령들을 봄 |
79
+ | 명령 | `kedovi help <번호\|명령>` · `kedovi help --all`. 명령 설명은 화면 폭에 맞춰 줄바꿈 |
80
+
81
+ ## 0.71.0
82
+
83
+ | 구분 | 내용 |
84
+ |---|---|
85
+ | 수정 | 게이트웨이 1M 모델 이름에 `[1m]` 을 붙임 (Claude Code 가 200k 로 보고 일찍 압축하던 문제) |
86
+ | 개선 | 게이트웨이마다 다른 Claude 모델 이름 모양을 같은 모델로 알아봄 |
87
+ | 진단 | `kedovi doctor` 가 `ANTHROPIC_DEFAULT_*_MODEL` 에 `[1m]` 이 빠진 것을 알림 |
88
+ | 기능 | GitHub · GitLab 이슈 스킬 (`github-issue` · `gitlab-issue`): 찾기 · 읽기 · 등록 · 조치 보고 댓글 |
89
+ | 보안 | 이슈 · 댓글을 올리기 전에 비밀값 · 개인 경로 · 이메일 · 사설 IP · 금지 낱말(`vars.issue.forbid`) 검사, 공개 repo 경고 |
90
+
91
+ ## 0.70.1
92
+
93
+ | 구분 | 내용 |
94
+ |---|---|
95
+ | 문서 | 공개판 GitHub 주소 · 문서 사이트를 evrenjo 로 |
96
+
97
+ ## 0.70.0
98
+
99
+ | 구분 | 내용 |
100
+ |---|---|
101
+ | 보안 | 워크스페이스 커밋 훅이 비밀값 모양(키 · 토큰 · 개인키)을 찾으면 커밋을 막음 (값은 찍지 않고 파일:줄만, 예외는 gitleaks:allow) |
102
+ | 보안 | `kedovi init` 이 워크스페이스 repo 가 공개면 한 번 더 묻고, `kedovi doctor` 가 공개면 알림 (작업 기록 · workspace.json 이 보이므로 비공개 권장) |
103
+ | 규칙 | 핸드오프 스킬: 명령 결과 · 로그를 옮길 때 토큰 · 비밀번호는 *** 로 가림 |
104
+
105
+ ## 0.69.6
106
+
107
+ | 구분 | 내용 |
108
+ |---|---|
109
+ | 수정 | 여러 개 고르기 화면(규칙 켜고 끄기 등)에서 커서 줄을 › · 굵은 청록으로 표시 |
110
+ | 문서 | 공개판 README · npm 소개에 개발 중 · 사용 책임 안내 |
111
+
112
+ ## 0.69.5
113
+
114
+ | 구분 | 내용 |
115
+ |---|---|
116
+ | 수정 | `npm test` 의 금지 낱말 검사가 목록을 못 읽던 것 · 한글 낱말을 못 잡던 것 |
117
+ | 개선 | 금지 낱말을 repo 안 `banned.local.txt`(git 제외)에도 적을 수 있음, 공개판 내보내기가 비밀값 모양도 검사 |
118
+ | 개선 | 배포: CI 에서 test 단계를 빼고 배포 전에 이 PC 에서 한 번 (배포 시간 단축) |
119
+
120
+ ## 0.69.4
121
+
122
+ | 구분 | 내용 |
123
+ |---|---|
124
+ | 보안 | workspace.json 의 repo · 그룹 이름 `..` · `-` 로 시작을 막음 (repos/ 밖 clone · 지우기 방지) |
125
+ | 보안 | git 주소 `ext::` · `-` 로 시작을 막음, git grep 패턴 주입 막음 |
126
+ | 보안 | 비밀값 범위 이름 검사 (키체인 명령 주입 · 폴더 밖 쓰기 방지) |
127
+ | 보안 | 문서 사이트: 위험한 SVG(우회 표기 포함)를 넣지 않음, `kedovi docs serve` 가 다른 Host · NUL 경로를 거부 |
128
+ | 보안 | GitHub Pages 견본 · CI: 액션을 커밋 SHA 로 고정, 자격 증명 남기지 않음, 설치 스크립트 끔 (`kedovi docs pages on` 을 다시 하면 새 견본) |
129
+ | 보안 | 문서 사이트 라이브러리 받기에 sha512 대조 |
130
+
131
+ ## 0.69.3
132
+
133
+ | 구분 | 내용 |
134
+ |---|---|
135
+ | 문서 | 이름을 「AI 협업 워크스페이스 킷」으로 (README 제목 · 패키지 설명) |
136
+
137
+ ## 0.69.2
138
+
139
+ | 구분 | 내용 |
140
+ |---|---|
141
+ | 개선 | kedovi 스킬: "워크스페이스 문서 사이트 만들어줘" 로 `kedovi docs build .` (여러 repo 산출물을 한 사이트로) |
142
+ | 문서 | README 구조 그림을 실제 폴더대로 (workspace.json · packs · docs-site · repos 의 clone · 링크 · 새 repo), 문서 사이트를 만드는 말 표 |
143
+
144
+ ## 0.69.1
145
+
146
+ | 구분 | 내용 |
147
+ |---|---|
148
+ | 수정 | init 에서 고른 AI 연결 방식(게이트웨이)이 프로필 단계에서 지워지던 것 |
149
+ | 개선 | `kedovi ai gateway --url` 만 주면 이 PC 설정에서 같은 주소의 키 환경변수를 찾아 씀 |
150
+ | 개선 | 연결 방식을 안 정했는데 이 PC 가 게이트웨이로 이어져 있으면 `ai show` · `doctor` 가 알림 |
151
+ | 개선 | init 이어 만들기: 가져온 repo 를 「가져옴 n개」 로 나눠 보이고 「확정 (가져온 그대로)」 기본, 목록 사이 중복 막기 |
152
+ | 개선 | init: clone 하지 못한 repo 를 생성 직후 보이고 인증을 물을 수 있는 git clone 으로 다시 받기, 끝 화면에 repo 상태 표 |
153
+ | 개선 | 권한 확인을 끄는 실행 인자를 고르면 한 번 더 확인 |
154
+
155
+ ## 0.69.0
156
+
157
+ | 구분 | 내용 |
158
+ |---|---|
159
+ | 위임 진행 보기 | 새 명령 `kedovi delegate watch · status · list`: Claude Code ↔ Codex 에 맡긴 리뷰 · 작업이 읽은 파일 · 실행한 명령 · 중간에 한 말을 줄마다. 기다리는 동안에도 진행 현황 표시 |
160
+ | 팀 모드 | 팀원 창에 승인 질문이 떠 멈추면 리더(다음 요청 · 턴 끝)와 텔레그램에 알림. 시작 줄에 「팀원 창에서 승인해야 시작」 안내 |
161
+ | 권한 | 읽기 · 조회 명령(git log · diff · grep · `kedovi docs show` 등)을 프로젝트 설정에 미리 허용 (팀원이 승인 대기로 멈추지 않게) |
162
+ | 문서 사이트 | 사이드바 머리 줄(🏠 홈 + 모두 접기 ↔ 펴기 토글)을 문서 · ERD 공통으로 |
163
+ | 문서 사이트 | 짧은 쪽으로 옮기거나 본문이 줄면 아래가 비고 사이드바가 끊기던 문제 · 검색칸에 칠 때 화면이 올라가던 문제 고침 |
164
+ | ERD | 두 손가락 확대 · 표 위에서 끌기 (iPad), 좁은 화면 조작 막대 「보기 ▾」, 머리 줄 배치, 미니맵 보이는 곳 표시 |
165
+
166
+ ## 0.68.0
167
+
168
+ | 구분 | 내용 |
169
+ |---|---|
170
+ | 문서 사이트 | 앱으로 다시 만듦 (Preact): 메뉴 · 링크 · 검색 결과로 옮겨도 새로고침 없음, 뒤로 가기는 읽던 자리로. 주소는 그대로 |
171
+ | 문서 사이트 | 검색이 본문까지 찾는다 (맞은 곳 앞뒤 글자 표시) |
172
+ | 문서 사이트 | md 해석을 GitHub · GitLab 과 같은 규칙으로 (markdown-it). 한국어 조사가 붙은 굵게 · 목록 안 코드 · 이스케이프 · 표 칸 접기 고침 |
173
+ | 펜 필기 | 필압 · 속도에 따라 굵기가 바뀌는 선, 켠 채 다른 쪽으로 옮겨도 켜져 있음 |
174
+ | ERD · 화면설계서 | 뷰어를 같은 앱 틀로 다시 만듦. 화면설계서 ☰(미리보기 목록 접기) 동작 |
175
+ | 문서 사이트 | 다시 만들면 옛 메뉴 파일을 쓰지 않음(파일 버전). 옮긴 문서의 옛 주소는 새 주소로 넘김 |
176
+ | 문서 사이트 | 메뉴 접기 화살표를 크게 · 새 명령 `kedovi docs serve` (이 PC 에서 웹 주소로 보기) |
177
+ | 기획 repo | 다른 워크스페이스에서 링크로 빌린 repo 는 커밋 훅을 덮지 않음 (빌려 쓰는 쪽 sync 로 원래 쪽 커밋이 막히던 문제) |
178
+ | 화면 | init 체크박스 · 질문 번호 · 위임 검사 줄 · 개인 봇 안내 문구 다듬음 |
179
+
180
+ ## 0.67.0
181
+
182
+ | 구분 | 내용 |
183
+ |---|---|
184
+ | 보안: 문서 사이트 | 파일 이름이 `javascript:` 처럼 보여도 상대 주소로 링크. 「원본」 버튼은 http(s) 만. 스크립트가 든 SVG 는 넣지 않고 알림 |
185
+ | 문서 사이트 | 줄 앞의 `<!-- … -->` 주석은 보이지 않음 (GitHub 와 같게) |
186
+ | 라이선스 | MIT `LICENSE` · 외부 라이브러리 고지 `THIRD_PARTY_NOTICES.md` |
187
+ | 킷 개발 | 공개판 내보내기 `npm run export:public`, 금지 낱말 목록은 repo 밖(`KEDOVI_BANNED` · `~/.config/kedovi/banned.txt`) |
188
+
189
+ ## 0.66.0
190
+
191
+ | 구분 | 내용 |
192
+ |---|---|
193
+ | 보안: 게이트웨이 키 | 팀 설정(workspace.json)에서 온 게이트웨이는 https(또는 이 PC 안 주소)만, 그리고 이 PC 에서 처음 한 번 승인한 뒤에만 키를 보냄 |
194
+ | 보안: GitLab 토큰 | `gitlab.apiBase` 가 `gitlab.host` 와 같은 호스트의 https 일 때만 토큰을 보냄 (MR · 파이프라인 · secret test · doctor) |
195
+ | 보안: npm 토큰 확인 | `kedovi secret test` 가 워크스페이스의 `.npmrc` 가 아닌 내 PC 레지스트리, https 로만 확인 |
196
+ | 보안: Windows secret exec | .cmd 명령에 넘기는 인자를 따옴표로 묶고 `"` `%` `!` 가 든 인자는 거절 (명령 주입 막기) |
197
+ | 보안: 문서 사이트 검색 | 검색 결과 링크의 따옴표를 바꿔 넣음 (파일 이름으로 스크립트가 끼어들지 않게) |
198
+ | 보안: 상태 폴더 | 임시 상태 폴더를 사용자마다 따로 두고 권한 700 |
199
+ | 패키지 | npm 패키지에서 테스트 파일 · 파이썬 캐시 제외 |
200
+
201
+ ## 0.65.6
202
+
203
+ | 구분 | 내용 |
204
+ |---|---|
205
+ | 필기 손가락 | 펜이 닿은 뒤 한 손가락 = 화면 이동. 필기를 켠 동안 확대를 막아 두 손가락이 확대와 겹치지 않음 |
206
+
207
+ ## 0.65.5
208
+
209
+ | 구분 | 내용 |
210
+ |---|---|
211
+ | 필기 손가락 스크롤 | 펜이 닿은 뒤 손가락은 브라우저 기본 스크롤 · 확대 (두 손가락 이동이 위아래로 튀던 것). 펜을 대고 있는 동안은 막음 |
212
+
213
+ ## 0.65.4
214
+
215
+ | 구분 | 내용 |
216
+ |---|---|
217
+ | 필기 두 손가락 이동 | 펜을 쥔 손바닥이 닿았다 떨어져도 화면이 떨지 않고 손가락만큼 움직임 |
218
+ | 필기 지우개 | 누른 채 움직이면 지나간 길의 획을 모두 지움 (아이패드에서 획을 찍고 끌면 멈추던 것 · 빠르게 움직이면 건너뛰던 것) |
219
+ | 필기 도구 막대 | 펜 · 형광펜에서 막대가 두 줄로 꺾여 X 단추가 아래로 떨어지던 것 |
220
+
221
+ ## 0.65.3
222
+
223
+ | 구분 | 내용 |
224
+ |---|---|
225
+ | 필기 Esc | 필기 중 Esc 를 어디에 초점이 있든 받아 필기를 끝냄 (다른 스크립트가 막아도). 펜 단추에 「끝내기: Esc」 표시 |
226
+
227
+ ## 0.65.2
228
+
229
+ | 구분 | 내용 |
230
+ |---|---|
231
+ | 펜 감지 | Apple Pencil · S Pen 이 닿으면 펜 = 필기, 한 손가락 = 무시, 두 손가락 = 화면 이동 |
232
+ | 펜 없을 때 | 한 손가락 = 필기, 두 손가락 = 화면 이동 |
233
+ | 필기 중 스크롤 | 두 손가락 · 휠 · 트랙패드는 그 자리의 요소(넓은 표 · 코드 · 그림)부터 움직이고, 없으면 쪽 전체 |
234
+ | 자 | 필기 도구 막대의 자: 흔들려도 곧은 선 (가로 · 세로 · 45° 에 붙음, 마우스는 Shift 도) |
235
+
236
+ ## 0.65.1
237
+
238
+ | 구분 | 내용 |
239
+ |---|---|
240
+ | 펜 필기 (iPad) | 애플펜슬을 대면 화면이 움직이며 획이 취소되던 문제 수정. 펜을 쓴 뒤 손가락은 기본 스크롤로 화면 이동 |
241
+ | 필기 중 | 본문 글자 선택 · 길게 누름 메뉴를 막음 |
242
+
243
+ ## 0.65.0
244
+
245
+ | 구분 | 내용 |
246
+ |---|---|
247
+ | 전역 kedovi 명령 | nvm 등으로 기본 Node 를 바꿔도 `kedovi` 이 그대로 실행. `~/.local/bin/kedovi` (Windows `%LOCALAPPDATA%\kedovi\bin\kedovi.cmd`) 를 두고 PATH 에 한 번 넣는다. 끄기 `KEDOVI_NO_GLOBAL_SHIM=1` |
248
+ | 문서 사이트 펜 필기 | 펜 · 형광펜 · 지우개, 색 5 · 크기 4단계, 되돌리기, 쪽마다 이 기기에 저장, PNG 받기, 인쇄 포함. 끄기 `docs-site.json` `"ink": false` |
249
+ | 머리 줄 아이콘 | 펜 필기 · 인쇄 · 테마를 같은 크기 선 아이콘으로 |
250
+ | 메뉴 접기 | 모든 묶음을 접고 펴고, 「모두 펴기 · 접기」 가 전체에 듣는다 |
251
+ | 표 · 인쇄 | 표 칸의 긴 코드는 칸 안에서 줄바꿈, 인쇄 때 표를 쪽 너비에 맞춤 |
252
+ | 전체 인쇄 | `"printAll": { "autoPrint": false }` 면 인쇄 창 없이 안내만 |
253
+ | 로고 | 사이트 이름 첫 낱말이 2~3자 영문 약어면 그대로 대문자 (「XD 분석」 → XD) |
254
+ | 이 repo 덧붙임 | 기획 repo 의 `docs-site.extra.css` · `.js` 를 사이트에 붙이고, check · pre-commit 도 붙인 결과로 비교 |
255
+ | 근거 분리 | `kedovi docs refs-quote <파일…>`: 본문 괄호 속 파일:줄을 아래 「> 근거:」 인용구로 |
256
+
257
+ ## 0.64.0
258
+
259
+ | 구분 | 내용 |
260
+ |---|---|
261
+ | 문서 제목 | 제목 · 헤더는 명사 · 명사구로 (~다 · ~요 · ~까 · ~나 · ~가 · ~기 · ? 금지). 문서 점검 「문장형 제목」 경고 |
262
+ | 코드 · 줄 번호 | 사람이 읽는 문서는 표 · mermaid + 짧은 설명으로. 「긴 코드 블록」(`vars.docs.codeMax` 15줄) · 「파일:줄 참조」 경고 |
263
+ | 근거 · 출처 | 부가 설명 · 근거 · 출처는 인용구(`> 근거: …`)로. 「본문에 쓴 근거 · 출처」 경고, 인용구 안 파일:줄은 허용 |
264
+ | 인용구 모양 | 흐린 회색 막대 · 흐린 작은 글씨, 「출처: · 근거: · 참고:」 줄은 더 작게 |
265
+ | 기본 메뉴 | 루트 묶음 이름 「시작하기」 → 「시작」 |
266
+ | 분석·설계 | 현행 분석 근거 · 요구사항 출처 위치를 인용구로 |
267
+ | 킷 문서 | 제목 20곳 명사형으로, 부가 근거를 인용구로 |
268
+
269
+ ## 0.63.0
270
+
271
+ | 구분 | 내용 |
272
+ |---|---|
273
+ | 이슈형 진행 방식 | 운영·고도화용 `kedovi approach issue`: 단계 대신 이슈 보드 (접수 · 분석 · 수정 · 검증 · 운영 반영 · 보류, `상태:` 줄로 변경) |
274
+ | 멈춘 이슈 | 갱신 뒤 14일 지나면 ⚠ (`멈춤 기준: N일`), 핸드오프 때 이슈 줄 갱신을 물음 |
275
+ | 주간 보고 | `kedovi plan --report [시작 [끝]]`: 운영 반영 · 진행 중 · 새 접수 · 보류 · 멈춘 이슈 |
276
+ | init 진행 방식 | 운영·고도화를 고르면 진행 방식(이슈형 · 스프린트 · 전체)을 물음 |
277
+ | init 이어 만들기 | 분석·설계 워크스페이스를 고르면 기획 · 이슈 repo 를 채움 |
278
+ | `kedovi type` | 유형 바꾸기: 현행 → 개발 repo 전환, 팩 교체, 새 로드맵 (지난 로드맵은 아래 절에 보관) |
279
+ | 고도화 단계 | 전체 = 요구사항 → 설계 → 구현 → 테스트 → 오픈. 옛 기본 단계(접수 → … → 배포)는 그대로 둠 |
280
+ | 기존 운영·고도화 | upgrade 때 `kedovi approach issue` 안내 한 줄 |
281
+
282
+ ## 0.62.3
283
+
284
+ | 구분 | 내용 |
285
+ |---|---|
286
+ | 문서 사이트 인쇄 | 테마 버튼 옆 ⎙: 이 문서 인쇄 · 전체 문서 인쇄 (메뉴 순서대로 모든 문서를 이어 한 번에, PDF 저장 가능) |
287
+ | 전체 인쇄 | 웹 주소(Pages)로 열었을 때만. `file://` 는 안내만 |
288
+ | 인쇄 공통 | 접힌 곳을 펴고 그림을 그린 뒤 인쇄 (Ctrl+P 도) |
289
+
290
+ ## 0.62.2
291
+
292
+ | 구분 | 내용 |
293
+ |---|---|
294
+ | repo 입력 | init 의 repo 질문 · `kedovi repo add` 화면에서 방식부터 고름: clone · 기존 로컬 폴더 · 새로 만들기 · 없음 |
295
+ | 로컬 repo | 원격 없이 로컬에서만 커밋하는 repo 는 기존 로컬 폴더로 (`repos/<이름>` 링크, `~` · 공백 경로 가능) |
296
+ | init 기획 · 이슈 | 새로 만들기 (git init) 가능 |
297
+
298
+ ## 0.62.1
299
+
300
+ | 구분 | 내용 |
301
+ |---|---|
302
+ | repo clone | `init` · `install` · `repo add` 가 repo 마다 진행 한 줄 (`(3/15)` 순번 · 받는 % · 받은 양 · 속도 · 걸린 시간), 끝나는 대로 결과 줄 |
303
+ | clone 멈춤 | 30초 넘게 연결 중이면 확인 안내, 60초 동안 1KB/s 아래면 끊고 ✖ |
304
+ | init 메인 모델 | 프로필 다음에 「메인(리드) 모델」을 따로 고름 (예: 표준 + 메인 Opus). `workspace.json` `agents.main` |
305
+
306
+ ## 0.62.0
307
+
308
+ | 구분 | 내용 |
309
+ |---|---|
310
+ | 문서 사이트 메뉴 | 쪽마다 넣지 않고 `assets/nav.js` 한 파일 (문서 1,000개 견본 87.5MB → 2.6MB) |
311
+ | 메뉴 접기 · 트리 | `docs-site.json` 묶음에 `collapsed` · `tree`. 지금 문서가 든 묶음 · 폴더만 펴고 접힘 상태 기억, 「모두 펴기 · 모두 접기」 |
312
+ | docs-site.json | `files` 의 `폴더/**` 가 그 폴더 아래 전부와 맞음 |
313
+ | INDEX.md | README 처럼 폴더 쪽. 대소문자만 다른 출력 경로는 ✖ 로 알리고 쓰지 않음 |
314
+ | 문서 점검 | 사이트에 넣는 문서만 검사 (`include` · `exclude` 밖은 경고 안 함) |
315
+ | 명령 | 모든 하위 명령 `--help` · `-h` 는 사용법만 (`upgrade --help` 가 실행되던 것 고침) · `upgrade` · `reset` · `install` 은 모르는 옵션이면 실행 안 함 |
316
+ | repo add | 이름만 주면 기획 · 이슈 repo 도 새로 만듦 (레거시 제외) |
317
+
318
+ ## 0.61.0
319
+
320
+ | 구분 | 내용 |
321
+ |---|---|
322
+ | repo 그룹 폴더 | `repos[].group` 이 있으면 `repos/<그룹>/<이름>` 에 받음 (한 단계, 이름은 그룹이 달라도 하나만). 없으면 그대로 |
323
+ | 명령 | `kedovi repo add … --group <그룹>` (이미 그룹을 쓰면 화면에서 고름) · `kedovi repo move <이름> --group <그룹>` · `--no-group` |
324
+ | AGENTS.md | 그룹이 있으면 repo 표에 그룹 칸 · 그룹 순서로 묶음 |
325
+ | 점검 | doctor 가 「그룹 폴더와 실제 위치가 다름」 을 알림 · 문서 사이트(루트) · check-refs 가 그룹 repo 를 앎 |
326
+
327
+ ## 0.60.1
328
+
329
+ | 구분 | 내용 |
330
+ |---|---|
331
+ | docs-site/ 옮기기 | CI 파일의 `cp` · `artifacts` · 주석의 `html/` 경로까지 바꾸고 고친 줄 수를 알림. 못 고친 줄은 「⚠ N행에 html/ 경로가 남음」 |
332
+ | 칸 안 경위 경고 | 「개정」 · 「다시 엶」 은 같은 칸에 날짜가 있을 때만 셈 (「개정 후보」 같은 용어는 경고 안 함) |
333
+ | 위임 리뷰어 | 읽기 전용 Claude 리뷰어가 읽기용 셸(`git diff` · `git show` · `git log` · `grep` 등)을 돌림 |
334
+ | 위임 사용량 한도 | 429 로 실패하면 결과에 「상대 도구로 다시:」 명령 한 줄 (지시서는 작업 폴더 `task.md`) |
335
+
336
+ ## 0.60.0
337
+
338
+ | 구분 | 내용 |
339
+ |---|---|
340
+ | 문서 기준 | 규칙 `core--45-docs-writing`: 표 칸은 한두 문장 · 결정 기록 표는 ID · 결정 한 줄 · 정본 · 상태 · 흐름은 mermaid · 개요 문서 순서 · 미결은 목록 하나 |
341
+ | 문서 점검 경고 | 긴 표 칸(`vars.docs.cellMax` 400) · 문단형 표(`cellAvg` 80) · 칸 안 경위 · 그림 없는 큰 문서(`figureKB` 20) · 메뉴 「기타」 문서 · ASCII 그림 전체 요약 |
342
+ | 문서 사이트 표 | 긴 칸은 첫 문장 + 「더 보기」(`vars.docs.cellFold` 200) · 결정 기록 표는 한 줄 목록 + 펼침 카드 · 넓은 표는 좁은 화면에서 카드 |
343
+ | docs-site.json | `split` 에 `[glob]`(그 파일만 쪽 나누기) · `labels`(메뉴 이름) · `groups.files` 는 나열 순서대로 |
344
+ | 기획 repo 견본 | 결정 표에 정본 칸 · 결정 끝 「결정 경위」 · 개요 순서(범위 → 구성 → 흐름 → 결정 → 미결) · 미결 목록 `00-overview/open-questions.md` (새 기획 repo 부터) |
345
+ | 킷 가이드 | 프로젝트 문서 사이트와 같은 생성기로 `docs-site/` (메뉴 5묶음). README 는 소개 · 설치만, 나머지는 주제별 문서로 |
346
+
347
+ ## 0.59.0
348
+
349
+ | 구분 | 내용 |
350
+ |---|---|
351
+ | 출력 폴더 | 문서 사이트를 `html/` 대신 `docs-site/` 에 만든다. 옛 `html/` 은 처음 `kedovi docs build` 때 옮긴다 (git mv · 킷이 만든 CI 경로 · .gitignore 도) |
352
+ | Pages 선택 | `kedovi docs pages on \| off [repo]` 로 repo 마다 켜고 끈다 (인자 없이 = 상태). on = 원격에 맞는 CI 파일만 두고 `docs-site/` 커밋, off = `.gitignore` 에 `/docs-site/` |
353
+ | init | 기획 repo 를 넣으면 「기획 문서 사이트를 Pages 로 올릴까요?」 를 묻는다 (기본 아니오) |
354
+ | 모바일 서랍 | 메뉴를 연 동안 본문 스크롤을 잠그고 머리 띠를 맨 위에 고정한다 |
355
+
356
+ ## 0.58.2
357
+
358
+ | 구분 | 내용 |
359
+ |---|---|
360
+ | 모바일 메뉴 | 문서 사이트 · 현황판 · 킷 가이드가 좁은 화면(760px 이하)에서 메뉴를 ☰ 서랍으로 숨기고 본문을 바로 보인다. 링크 · 바깥 · Esc 로 닫힘 |
361
+ | 모바일 검색 | 검색창이 서랍 맨 위에 고정된다 (넓은 화면은 머리 띠 그대로). 프로젝트 사이트는 `kedovi docs build` 로 다시 만들면 적용 |
362
+
363
+ ## 0.58.1
364
+
365
+ | 구분 | 내용 |
366
+ |---|---|
367
+ | Description | 화면설계서 설명은 마커마다 결론 한 줄(60자 안). 날짜 · 결정 번호 · 바뀐 경위 · 세부 조건은 근거 문서에 두고 근거 ID 로 잇는다 (screens 스킬 「Description 쓰는 법」 · 「이미 쓴 설계서 다듬기」) |
368
+ | 검사 | `kedovi screens check` 가 60자 넘음 · 날짜 · 결정 경위가 든 설명 줄을 장 · 줄 번호와 함께 ⚠ 로 알린다 |
369
+
370
+ ## 0.58.0
371
+
372
+ | 구분 | 내용 |
373
+ |---|---|
374
+ | 내부 정보 | 화면설계서 뷰어가 Check Point · 근거 줄 · 마커별 근거 ID · `class="sb-dev"` 요소를 기본 보기 · 인쇄에서 숨긴다. 「내부 정보」 버튼 · I 키로 보이고 켠 상태를 기억한다. 켠 채 인쇄하면 함께 인쇄 |
375
+ | 마커 호버 | 와이어프레임 마커와 설명 줄을 같은 색으로 짝지어 강조하고, 그 줄의 근거 ID 를 흐린 유리 카드로 보인다 |
376
+ | 넘침 기준 | 「⚠ 한 쪽 넘침」 은 토글과 상관없이 기본 보기(내부 정보 제외) 높이로 잰다. 이미 만든 장도 HTML 을 고치지 않고 적용 |
377
+ | 색 | 기본 포인트 색을 인디고로. `vars.screens.theme` 로 blue · teal · orange(이전 색) · rose 를 고른다 |
378
+
379
+ ## 0.57.2
380
+
381
+ | 구분 | 내용 |
382
+ |---|---|
383
+ | 팀원 막기 | 채널 세션의 PATH 앞에 `bun` 대리 실행을 두어 `--channels` 로 시작한 세션만 텔레그램 서버를 띄운다. 팀원 · 위임 · 채널 아닌 세션이 리더 수신을 끊지 않는다 (`kedovi start -c` 로 다시 시작해야 켜짐) |
384
+ | 끊김 알림 | 마지막 띄움 · 막음 기록과 수신을 가져간 쪽(팀원 이름 · pid), 바로 할 일 한 줄을 붙인다 |
385
+
386
+ ## 0.57.1
387
+
388
+ | 구분 | 내용 |
389
+ |---|---|
390
+ | 끝남 알림 | 이어서 시작(-c)해 세션 ID 가 바뀐 리더도 팀을 찾아, 일하는 팀원이 남은 동안 「모든 작업 끝」 을 보내지 않는다 (팀 설정 leadSessionId · 대화 기록의 team_name) |
391
+ | 팀원 점검 | 대기 팀원 · 오래 일하는 팀원 점검도 같은 방법으로 팀을 찾는다 |
392
+
393
+ ## 0.57.0
394
+
395
+ | 구분 | 내용 |
396
+ |---|---|
397
+ | 리모트 컨트롤 | Claude 앱 연결 중에도 작업 끝은 텔레그램으로 「모든 작업 끝」 한 줄 (기본). 결정 · 입력 대기는 앱이 알린다 |
398
+ | 명령 | `kedovi notify my remote done\|quiet\|send`: 작업 끝만(기본) · 쉼 · 모두 |
399
+
400
+ ## 0.56.1
401
+
402
+ | 구분 | 내용 |
403
+ |---|---|
404
+ | 테스트 | 채널 세션(`kedovi start`) · 리모트 컨트롤 세션 안에서 돌려도 알림 테스트가 같게 (`KEDOVI_CHANNEL` 등 환경 변수를 지우고 시작) |
405
+
406
+ ## 0.56.0
407
+
408
+ | 구분 | 내용 |
409
+ |---|---|
410
+ | 리모트 컨트롤 | 세션이 리모트 컨트롤로 Claude 앱에 이어져 있으면 텔레그램을 보내지 않고 결정은 질문 창으로. `kedovi notify my remote quiet\|send` (기본 쉼) |
411
+ | 자리에 있을 때 | 결정 대기는 「선택할 것이 있습니다」 한 줄, 작업 끝은 「모든 작업 끝」 한 줄 (일하는 팀원 · 백그라운드 작업이 남았으면 쉼) |
412
+ | 자리 비움 | 지금처럼 설명 · 보기 · 답 앞부분까지. 에이전트 진행 · 진행 현황도 자리 비움(또는 전체 수준)일 때만 |
413
+
414
+ ## 0.55.0
415
+
416
+ | 구분 | 내용 |
417
+ |---|---|
418
+ | 원본 링크 | 워크스페이스 사이트의 하위 repo 문서는 그 repo 원격 + 기본 브랜치 + repo 안 경로로. 원격이 없으면 버튼 숨김 |
419
+ | 포함 범위 | `docs-site.json` 의 `include` · `exclude`, 워크스페이스 루트는 repo 마다 `copy` · `link` · `off` (legacy 는 기본 제외) |
420
+ | 크기 | `kedovi docs build` 가 `html/` 파일 수 · 크기 · 묶음별 내역을 한 줄로, 20MB 넘으면 ⚠ |
421
+ | upgrade | 아직 커밋한 적 없는 `html/` 은 `git add` 안내에서 빼고 따로 알림 |
422
+
423
+ ## 0.54.0
424
+
425
+ | 구분 | 내용 |
426
+ |---|---|
427
+ | ERD 배치 | 「영역 · 스키마 · 관계」 배치. 영역 배치는 영역 덩어리를 화면 비율 바둑판으로, 덩어리 안은 부모 → 자식 위에서 아래로, 덩어리 사이 선은 숨김 |
428
+ | 영역 개요 | 영역이 있으면 영역마다 카드(이름 · 테이블 수 · 대표 테이블)로 연다. 카드 · 사이드바 ⌖ 를 누르면 그 덩어리로 확대 |
429
+ | 논리 참조 | 참조 칸 `논리: 스키마.테이블[.컬럼]` (DB 외래키 없이 앱이 지킴): FK 경고 없음, ERD 에서 켜면 점선 · 덩어리 사이는 요약선 하나에 개수 |
430
+ | 검사 | 설명 줄 `고정 스키마: <근거>`: 기본키 없음 ⚠ · 이름 · 공통 컬럼 · 타입 규칙 건너뜀. `vars.datamodel.jsonReason`: JSON 컬럼에 「JSON 허용: <사유>」 |
431
+
432
+ ## 0.53.0
433
+
434
+ | 구분 | 내용 |
435
+ |---|---|
436
+ | mermaid 그림 | 문서 사이트가 ```mermaid 블록을 그림으로: 라이트/다크 다시 그리기 · 확대 · 새 창 · 오류면 원문과 오류 문구. 11.17.2 를 넣어 오프라인 · file:// 에서도 |
437
+ | 검사 | `kedovi docs build` · `check` 가 mermaid 문법 오류 ✖ (check · pre-commit 실패), ASCII 그림 ⚠ |
438
+ | 구성도 | architecture 스킬: 서비스 · DB 스키마 · 미들웨어 · 외부 · 서버 사양을 단계별 mermaid 그림과 표로 (견본 `packs/core/assets/architecture/template.md`) |
439
+ | 읽기 | 날짜 항목이 쌓인 긴 표 칸 접기(나머지 n건 보기) · ID 링크 배지 · 표 칸 너비 · 줄 간격 |
440
+
441
+ ## 0.52.1
442
+
443
+ | 구분 | 내용 |
444
+ |---|---|
445
+ | 화면 | `kedovi start --pixel-agents`: 설치된 Pixel Agents(`npm i -g pixel-agents`)로 에이전트 · 팀원을 캐릭터 화면으로 띄움. 세션이 끝나면 함께 끔 · 없으면 안내만 |
446
+
447
+ ## 0.52.0
448
+
449
+ | 구분 | 내용 |
450
+ |---|---|
451
+ | ERD 선 숨김 | 툴바 「참조 많은 표 선 숨김」(기본 꺼짐): 들어오는 관계 10개 이상 · 「분류: 코드」 · 「ERD: 선 숨김」 · `vars.datamodel.erdHideEdgesTo` 로 가는 선을 빼고 배치. 그 표를 고르면 보임 |
452
+ | ERD 주제 영역 | 설명 줄 「영역: 주문」 → 상단 「영역」 선택, 영역 밖 관계는 「→ 영역 밖: …」, 사이드바 스키마 → 영역 → 표 |
453
+ | 검사 | 영역 꼬리표가 일부 테이블에만 있으면 ⚠ |
454
+ | Export | PDF · 영역마다 한 쪽 (A4 가로) |
455
+ | 적용 | 정의서에 꼬리표를 달고 `kedovi docs build` |
456
+
457
+ ## 0.51.2
458
+
459
+ | 구분 | 내용 |
460
+ |---|---|
461
+ | ERD 넓게 배치 | 많이 참조되는 테이블이 있어도 세로로 길어지지 않게 층마다 테이블 수에 상한 (124표 견본: 가로:세로 0.43 → 1.45) |
462
+ | 스키마 묶기 | 스키마마다 따로 배치한 상자를 나란히 놓는다. 스키마 사이 관계선은 옅게, 선택하면 강조 |
463
+ | 적용 | 기획 repo 에서 `kedovi docs build` 로 html 을 다시 만든다 |
464
+
465
+ ## 0.51.1
466
+
467
+ | 구분 | 내용 |
468
+ |---|---|
469
+ | ERD 미니맵 | 오른쪽 아래에 전체 배치(스키마 색)와 지금 보이는 영역. 누르거나 끌면 이동, 접고 펴기 기억, 인쇄 · SVG 에는 없음 |
470
+ | ERD 스키마 접기 | 사이드바 스키마 제목 줄로 표 목록 접기 · 펴기, 모두 접기 · 펴기, 검색에 맞으면 펼침, 브라우저에 기억. ⌖ 는 스키마 묶기를 켜고 그 스키마에 맞춤 |
471
+ | 적용 | 기획 repo 에서 `kedovi docs build` 로 html 을 다시 만든다 |
472
+
473
+ ## 0.51.0
474
+
475
+ | 구분 | 내용 |
476
+ |---|---|
477
+ | PC 앞이면 생략 | 2분 안에 키보드 · 마우스를 만졌으면 요청 결과 · 위임 끝 · 에이전트 진행 · 음성 알림을 보내지 않는다 (질문 · 권한 대기는 보냄, macOS). `kedovi notify my desk <초>\|off` |
478
+ | 음성 | 기본 범위를 결정 질문만으로. 끝남 보고도 읽게 하려면 `kedovi notify my voice scope both` |
479
+ | 위임 끝 알림 | 진행 현황 · 전체 수준에서만 보낸다 |
480
+
481
+ ## 0.50.0
482
+
483
+ | 구분 | 내용 |
484
+ |---|---|
485
+ | 착수 전 확인 | 요청마다 코드 repo 첫 수정 전에 답변에 `착수 전 확인:` 머리말이 없으면 알린다 (기본: 요청마다 한 번). 막기면 보일 때까지 수정을 막는다. 문서 · 스타일 두 줄 이하와 repo 밖은 제외. `kedovi team-mode enforce plan off\|warn\|block [--team]` |
486
+ | 리뷰 위임 | 결과의 `[반복]` 은 2차부터, 블로커 줄에 붙은 것만 센다 (인용한 문구는 세지 않음) |
487
+
488
+ ## 0.49.0
489
+
490
+ | 구분 | 내용 |
491
+ |---|---|
492
+ | 오래 일하는 팀원 · 위임 | 일하는 팀원이나 위임 작업이 상한(기본 60분)을 넘으면 요청 때 한 줄, 멈출 때 한 번 막고 계속할지 묻게 한다. 같은 대상은 상한만큼 지나 다시. `kedovi team-mode enforce run off\|warn\|block [--after 분] [--team]` |
493
+ | 리뷰 전 검사 | 리뷰 지시서에 `검사: <명령> 통과` 줄이 없으면 위임(`delegate.js`)과 리뷰 에이전트를 막는다. 검사가 없으면 `검사: 없음 (사유)`. `kedovi team-mode enforce check off\|warn\|block [--team]` |
494
+ | 리뷰어 | 회귀는 머리로 판정하지 않는다. 검사가 덮지 않는 갈래는 "검사로 확인 필요" |
495
+ | team 스킬 | 순서: 구현 → 해당 검사 → 리뷰 → 수정 → 해당 검사 |
496
+
497
+ ## 0.48.0
498
+
499
+ | 구분 | 내용 |
500
+ |---|---|
501
+ | 답변 시각 | Claude Code 답변 첫 줄에 요청 받은 시각(yyyy-MM-dd HH:mm:ss). 기본 켜짐, `kedovi timestamp on\|off\|team [--team]` |
502
+ | 리뷰 위임 | 블로커 기준을 지시서에 늘 붙인다 (재현 경로 없는 경쟁 조건 · 범위 밖 구조 개선은 권장 이하). `delegate.js start --scope <라벨>` 로 같은 범위 차수를 세고, 앞 차수 블로커를 붙이며 같은 영역은 `[반복]`, 3차부터 경고 |
503
+ | 위임 결과 | 머리에 실패 원인(사용량 한도 429 · 로그인 · 시간 초과 · 네트워크)과 대안, 실행 중 대상이 바뀌면 "결과가 낡았을 수 있음" |
504
+ | 위임 중 멈추기 | 위임이 도는 채 멈춰도 답변에 "지금 도는 것:" 상태 줄이 있으면 막지 않는다 (`wait` 는 백그라운드로) |
505
+ | 시간 예산 | `node packs/core/bin/budget.js start "<작업>" 30m` · `extend` · `done`. 요청마다 경과 한 줄, 1.5배를 넘으면 멈출 때 한 번 막고 계속할지 묻게 한다 |
506
+ | 착수 전 확인 | 상시 룰: 세션 중간의 새 기능 · 공유 상태 변경도 `go` 스킬 3단계 먼저. 계획표에 공유 상태 · 구조 결정, 시간 예산 칸 |
507
+ | 결정 질문 | 미리보기는 모든 보기에, 모양 비교가 아니면 쓰지 않는다 |
508
+ | repo 빼기 | `kedovi repo remove <이름> [--delete]`: workspace.json · 리뷰 대상에서 지우고 sync, 이름이 남은 문서 알림. 폴더는 `--delete` 때만 |
509
+ | 프로토타입 | screens 팩 룰: 프로토타입은 화면 · 흐름까지, 서버 몫은 예시와 "서버 책임" 표시 |
510
+ | 그 밖 | 팀원의 늦은 알림은 "앞 지시 기준 보고" 한 줄로. 이슈 repo 가 없으면 documenter 가 둘 곳을 묻는다 |
511
+
512
+ ## 0.47.0
513
+
514
+ | 구분 | 내용 |
515
+ |---|---|
516
+ | 결정 질문 점검 | Claude Code 에서 번호 선택지 2개 이상인 결정 질문을 질문 창 없이 글로 끝내면 훅이 한 번 막고 질문 창으로 다시 묻게 한다. `kedovi team-mode enforce ask off\|block [--team]` (기본 막기). 자리 비움 세션은 제외 |
517
+ | "진행해" 범위 | 상시 룰: 답하지 않은 질문이 남은 채 온 "진행해" 는 그 항목을 뺀 승인이다. 남은 항목은 다시 묻는다 |
518
+ | kedovi import | `kedovi import <폴더> [--json]`: 기존 AI 작업 폴더 훑기 (읽기만). 지침 · 룰 · 스킬 · 메모 · 핸드오프 · 스크립트 분류, 큰 폴더, 문서 속 절대경로, 비밀값 의심 줄(값은 찍지 않는다) |
519
+ | import 스킬 | "기존 폴더 가져와": 훑기 → 옮길 계획 표 → 승인 → 반영 → 점검. 킷과 겹치는 룰은 버리고 프로젝트 사실만 `packs/project/` 로 |
520
+ | 스크립트 위치 | 필요할 때 읽는 룰: 프로젝트 공용 도구는 `packs/project/bin/`, 다시 만들 수 있는 큰 산출물은 gitignore 하고 각자 만든다 |
521
+ | 프로젝트 룰 템플릿 | 새 워크스페이스의 `packs/project/rules/00-project.md` 에 채울 항목 안내 (기존 워크스페이스는 그대로) |
522
+ | 기획 repo 경고 | 운영·고도화 유형은 "기획 repo 가 없습니다" 를 알리지 않는다. 다른 유형은 `workspace.json` 의 `"docsRepo": false` 로 끈다 |
523
+
524
+ ## 0.46.0
525
+
526
+ | 구분 | 내용 |
527
+ |---|---|
528
+ | 상태 줄 점검 | Claude Code 에서 팀원(일하는 중 · 대기)이나 리더의 백그라운드 작업이 남은 채 멈추는데 답변에 `지금 도는 것: … · 예상 종료: … · 사용자가 할 일: …` 줄이 없으면 훅이 한 번 막는다. 팀 모드가 아니어도 백그라운드 명령이 있으면 본다 |
529
+ | 설정 | `kedovi team-mode enforce status off\|block [--team]` (기본 막기). `workspace.json` 의 `agents.enforce.waitStatus` |
530
+ | 끝남 알림 | 남은 것이 있으면 텔레그램 끝남 알림에 일하는 팀원 · 대기 팀원 · 리더의 백그라운드 작업 수를 한 줄 덧붙인다 |
531
+ | 종료 규칙 | 상시 룰 · team 스킬: 다시 맡길 일이 정해져 있지 않은 팀원은 종료한다. 대기 중인 팀원은 상태 줄에 일하는 것으로 적지 않는다 |
532
+
533
+ ## 0.45.0
534
+
535
+ | 구분 | 내용 |
536
+ |---|---|
537
+ | 대기 팀원 점검 | 팀 모드(Claude Code agent teams)에서 일을 마친 팀원이 대기로 10분 넘게 남으면, 리더가 멈출 때 훅이 한 번 막고 이름 · 대기 시간을 알린다. 요청 시작 때도 한 줄. 같은 팀원은 30분 뒤 다시 |
538
+ | 리더가 할 일 | 종료하거나, 남겨 둘 것이면 보고에 "대기 중: <역할> · 사유" 를 적는다. 훅은 팀원을 종료하지 않는다 |
539
+ | 설정 | `kedovi team-mode enforce idle off\|warn\|block [--after <분>] [--remind <분>] [--team]` (기본 막기. 시간은 팀 값). `workspace.json` 의 `agents.enforce` (`idleTeammates` · `idleMinutes` · `idleRemindMinutes`) |
540
+ | 종료 절차 | 정식 종료 요청 뒤 몇 분 지나도 팀원 목록에 남아 있으면 `TaskStop`(`task_id` 에 팀원 이름)으로 멈춘다 (등록까지 빠진다). team 스킬 · 창 강제 종료를 막는 훅의 안내 문구 |
541
+
542
+ ## 0.44.0
543
+
544
+ | 구분 | 내용 |
545
+ |---|---|
546
+ | 팀원 이름 검사 | 팀 모드(Claude Code agent teams)인데 역할 에이전트를 이름(`name`) 없이 띄우면 훅이 막는다 (이름이 없으면 서브에이전트로 돈다). `kedovi team-mode enforce name off\|warn\|block` (기본 막기) |
547
+ | 요약 뒤 재주입 | 「역할 에이전트 실행 방식」 줄을 세션 시작뿐 아니라 이어서 시작 · 비우기 · 대화 요약 뒤에도 다시 넣는다 |
548
+ | 구성표 알림 | 한 요청의 첫 역할 에이전트 때 실행 방식 · 구성표를 알렸는지 한 줄 (막지 않는다). `kedovi team-mode enforce roster off\|warn` (기본 알림) |
549
+ | 리뷰 확인 | 기본 꺼짐. 켜면 에이전트의 `git commit` · `git push` 때 리뷰 안 된 줄 수가 기준을 넘으면 알리거나 막는다. `kedovi team-mode enforce review warn\|block [--repos a,b\|*] [--min-lines N] [--paths p1,p2] --team` |
550
+ | kedovi review | `status`(대상 repo 마다 리뷰 안 된 줄 수 · 마지막 리뷰) · `mark`(지금 상태를 리뷰했다고 기록) · `skip --reason "<사유>"`(사용자 승인 뒤 한 번 생략) |
551
+ | 리뷰 기록 | reviewer 역할 에이전트 · reviewer 위임 · 교차 검토 때 자동으로 남는다. 리뷰 뒤 고치면 더한 줄만 다시 센다. 핸드오프 기록 · 워크스페이스 repo 는 세지 않는다 |
552
+ | 설정 | `workspace.json` 의 `agents.enforce` (`teammateName` · `rosterAnnounce` · `reviewBeforePush` · `reviewRepos` · `reviewMinLines` · `reviewPaths`). 이 PC 값은 팀 값보다 세게만 |
553
+
554
+ ## 0.43.0
555
+
556
+ | 구분 | 내용 |
557
+ |---|---|
558
+ | kedovi gitlab pipeline | GitLab 파이프라인 조회 (gitlab 팩, 읽기만): 최근 목록 · 맨 위(또는 `--id`) 파이프라인의 단계별 작업 상태. `--ref <브랜치>` · `--mr <번호>` · `--limit` · `--json` |
559
+ | MR 파이프라인 | `--mr` 은 MR 파이프라인이 없으면 머지 커밋(머지 전이면 source 커밋)의 파이프라인을 찾는다 |
560
+ | 실패 로그 | `--log [줄 수]` 는 실패한 작업의 로그 끝부분 (기본 40줄) |
561
+ | 봇 토큰 숨김 입력 | `kedovi notify my setup` · `team setup` · `my channel on` 이 토큰을 숨김 입력(또는 표준 입력)으로 받는다. 봇 바꾸기는 `--new`. 인자로 주는 옛 방식은 동작하되 ⚠ 를 낸다 |
562
+ | 알림 설정 화면 | 토큰 입력을 가리고 표준 입력으로 넘긴다 (프로세스 목록에 남지 않는다) |
563
+ | kedovi 스킬 | 봇 토큰 연결은 AI 가 하지 않고 사용자에게 터미널 명령을 알린다 |
564
+
565
+ ## 0.42.0
566
+
567
+ | 구분 | 내용 |
568
+ |---|---|
569
+ | kedovi docs trace | 기획 ID 와 코드 주석의 구현 표시 대조: ⚠ 코드에 표시 없는 ID · ✖ 기획에 정의 없는 ID(오타 · 지운 기능), 각각 파일:줄. `--strict` 면 ✖ 에 exit 1 |
570
+ | 변수 | `vars.docs.traceIds` (예: FN). 비우면 `screens.functionIds`. 「다음 스프린트」 · 동결 문서 ID 는 누락에서 뺀다 |
571
+ | 룰 | 구현한 기획 ID 는 진입 함수·클래스 머리 주석에 한 번 적는다 (`// FN-001 수동 주문`) |
572
+
573
+ ## 0.41.0
574
+
575
+ | 구분 | 내용 |
576
+ |---|---|
577
+ | kedovi secret | 비밀값(토큰)을 OS 저장소에: macOS 키체인 · Windows 자격 증명 관리자 · Linux libsecret (못 쓰면 본인만 읽는 파일). `set`(숨김 입력) · `list` · `test` · `rm` · `import` · `exec` |
578
+ | 범위 | 프로젝트(workspace.json 프로젝트 이름) · 전역. 찾는 순서: 환경변수 > 프로젝트 > 전역 > 옛 파일. 값은 어떤 출력에도 나오지 않는다 |
579
+ | GitLab 토큰 | gitlab-mr 이 저장소에서 읽음 (`kedovi secret set GITLAB_TOKEN`). 401 이면 git 비밀번호는 API 에 못 쓴다고 안내 |
580
+ | 텔레그램 토큰 | 저장소를 먼저 읽고 기존 telegram.env 도 그대로 동작. `kedovi secret import` 로 옮기기 |
581
+ | 팩 선언 · doctor | `pack.json` 의 `secrets`(이름 · 범위 · 용도 · 권한 · 확인 방법). doctor 가 없음 · 옛 파일 · 권한 부족 · 만료 30일 이내를 알림 |
582
+ | 위임 | 다른 AI 에게 맡길 때 비밀값 이름을 모두 뺀 환경으로 |
583
+ | 텔레그램 답 버튼 | 보기마다 한 줄에 보기 이름(`1-1 ✅ 보기 이름`). 한 번 누르면 접힘(⌨ 로 다시). 답을 받고 작업이 끝나면 끝남 알림이 버튼을 걷음 |
584
+
585
+ ## 0.40.0
586
+
587
+ | 구분 | 내용 |
588
+ |---|---|
589
+ | kedovi docs show | 기획 문서에서 ID 하나의 정의 부분만 출력 (제목 절 · 표 행 · 문단 · 화면설계서 장). 큰 문서를 통째로 읽지 않는다 |
590
+ | kedovi docs refs | 그 ID 가 나오는 곳 (기획 · 코드 · 이슈 repo, 파일:줄, ★ 정의 · [동결]) |
591
+ | 근거 룰 | 기획 문서는 ID 단위로 읽기 (show · refs), 동결 문서는 고치지 않기 |
592
+ | 기획 문서 쓰기 룰 | 사실 하나 = 문서 하나 · 다른 층은 ID 링크만 · 변경 이력은 결정 문서 · 60KB 넘으면 나누기 · 구현 끝나면 동결 (필요할 때만 읽는 룰) |
593
+ | 문서 점검 경고 | `kedovi docs build` · `check` 가 큰 문서(`vars.docs.maxKB`, 기본 60KB) · 머리말에 쌓인 변경 이력 · 여러 문서에 같은 문장을 알림 (막지 않음) |
594
+ | 동결 | 문서 머리말 `상태: 동결 (날짜, 정본: <repo/경로>)`. 점검에서 빠지고 show · refs 에 [동결] |
595
+ | upgrade | 그 유형의 기본 팩인데 꺼진 팩을 알림 (예: 옛 신규 워크스페이스의 screens · datamodel, 켜기 `kedovi upgrade --add`) |
596
+ | 채팅에서 말로 | kedovi 스킬에 빠졌던 명령 추가 (진행 방식 · 로드맵 · docs show/refs · datamodel check · models --migrate · 팩 켜기 등) |
597
+
598
+ ## 0.39.0
599
+
600
+ | 구분 | 내용 |
601
+ |---|---|
602
+ | 진행 방식 | `workspace.json` 의 `project.approach`: 스프린트 `sprint` · 전체 `full`. 새 워크스페이스는 신규 · 운영·고도화 = 스프린트, 차세대 · 분석·설계 = 전체 |
603
+ | 스프린트 | 기능 단위(기간 아님). 첫 스프린트는 끝까지 동작하는 최소 기능 하나, 나머지는 백로그. 설계 · 화면설계 · 데이터 설계도 이번 스프린트만. 끝은 데모 · 회고 |
604
+ | 로드맵 | 스프린트면 스프린트 계획 → 구현 → 데모 → 회고 반복, `## 이번 스프린트`(목표 · 끝 날짜(선택) · 기능) · `## 백로그` · `## 지난 스프린트`. 끝 날짜가 지났는데 데모 전이면 ⚠ |
605
+ | kedovi approach | 진행 방식 보기 · 바꾸기 (관리자). 기본 단계 그대로인 로드맵은 새 뼈대로 |
606
+ | 화면 · 데이터 검사 | 「다음 스프린트」 로 적은 기능은 누락으로 세지 않음 |
607
+ | 기존 워크스페이스 | 진행 방식이 없으면 지금처럼(전체) 동작. 바꾸려면 `kedovi approach sprint` |
608
+
609
+ ## 0.38.0
610
+
611
+ | 구분 | 내용 |
612
+ |---|---|
613
+ | 화면설계서 넘침 표시 | A4 한 쪽을 넘는 장은 뷰어에서 장 위에 「⚠ 한 쪽 넘침」, 썸네일에 ⚠ (인쇄 · 발표에는 안 나옴) |
614
+ | screens 스킬 | 한 장 = A4 가로 한 쪽. 넘치면 설명 축약 → 결정 경위는 정책 · 결정 문서로 → 그래도 길면 「(계속)」 장으로 나눔 |
615
+ | 이어지는 장 | `data-continues="<화면 ID>"` 를 단 장은 `kedovi screens check` 가 화면 목록 대조에서 뺌. 원래 화면 장이 없으면 ✖ |
616
+ | 반영 | `kedovi upgrade` 뒤 `kedovi docs build` 로 기획 repo 의 html/ 을 다시 만든다 |
617
+
618
+ ## 0.37.3
619
+
620
+ | 구분 | 내용 |
621
+ |---|---|
622
+ | 가이드 | 화면설계서 인쇄 설명에 「설명이 길어 넘치는 장은 한 쪽에 맞춰 더 줄임」 (0.37.1 동작) |
623
+
624
+ ## 0.37.2
625
+
626
+ | 구분 | 내용 |
627
+ |---|---|
628
+ | 퇴역 모델 | `gpt-5.2` 계열 · `gpt-5.3-codex` 를 퇴역 목록에 추가 (Codex 에서 이미 지원 중단). 쓰고 있으면 sync 가 알리고 `kedovi models --migrate` 가 gpt-6.1-sol 로 바꿈 |
629
+
630
+ ## 0.37.1
631
+
632
+ | 구분 | 내용 |
633
+ |---|---|
634
+ | 화면설계서 인쇄 | 설명이 길어 한 쪽을 넘는 장의 아래가 잘리던 것 (넘치는 장만 한 쪽에 맞춰 더 줄임) |
635
+
636
+ ## 0.37.0
637
+
638
+ | 구분 | 내용 |
639
+ |---|---|
640
+ | 새 계층 팩 infra | Docker · Compose · Kubernetes(Helm) · Terraform·OpenTofu · Ansible 을 감지해 그 repo 에 인프라 원칙(환경 확정 · plan/diff 먼저 · 파괴적 작업 승인 · 비밀은 출처만 · 버전 고정)을 붙임. 상시 룰 1개, 나머지는 필요할 때 |
641
+ | 새 역할 dba · infra | DB 스택 repo 면 `dba`(스키마 · 마이그레이션 · SQL 파일, 실행은 승인 뒤), 인프라 스택 repo 면 `infra`(plan · diff 근거, 반영은 승인 뒤). 둘 다 grade high |
642
+ | 역할 grade 수정 | repo 스택으로 붙은 팩의 역할이 grade 를 무시하고 메인 모델로 돌던 것, project 팩의 같은 이름 역할이 덮이던 것 |
643
+ | 스택 선택 화면 | 「인프라만」 종류와 「배포·인프라 도구」 질문 |
644
+ | 기존 워크스페이스 | 스택이 이미 정해진 repo 는 다시 감지하지 않는다. 인프라 스택을 받으려면 `kedovi detect` |
645
+ | 자리 비움 | 끝 응답이 결정 질문인데 텔레그램 버튼 질문(ask)을 안 보냈으면 한 번 막고 보내게 함. `away on` 때 알림이 꺼져 있으면 「결과와 결정」 으로 켬 |
646
+ | 핸드오프 | `handoff check` 끝에 「로드맵을 볼까요?」 를 물으라는 줄 (보고 끝 질문을 놓치던 것) |
647
+ | 모델 주간 점검 | CI 로그에 알림을 보냈는지(보냄 · 건너뜀 · 실패) 남김. 실패 · CI 변수 없음이면 작업 실패 |
648
+ | 킷 테스트 알림 격리 | `npm test` 가 이 PC 의 실제 텔레그램 봇으로 「채널 끊김」 알림을 보내던 것 (빈 설정 · 닫힌 로컬 주소로 격리, 격리 검사 추가) |
649
+ | 개인 봇 겹침 경고 | 개인 알림 봇이 다른 프로젝트의 양방향 채널 봇과 같으면 `kedovi notify` 가 ⚠ (그 프로젝트 대화방으로 섞여 들어가는 것) |
650
+ | ChatGPT Pro 요금제 | 금액별 배수 안내: $100 = Plus 5배 · $200 = 20배 (공식) · $500 = 약 25배 |
651
+
652
+ ## 0.36.1
653
+
654
+ | 구분 | 내용 |
655
+ |---|---|
656
+ | kedovi plan 분모 변경 (최근) | 목록에 적은 순서(위가 최신 · 아래가 최신)와 상관없이 날짜가 가장 늦은 줄을 보임 (최신을 위에 적는 PLAN.md 에서 가장 오래된 줄이 나오던 것) |
657
+
658
+ ## 0.36.0
659
+
660
+ | 구분 | 내용 |
661
+ |---|---|
662
+ | 새 팩 datamodel (데이터 설계) | md 테이블 정의서(「### 스키마.테이블 논리명」 + 컬럼 표) → `kedovi docs build` 가 폴더마다 ERD 뷰어 `erd.html`. 신규 · 차세대 기본, 다른 유형은 `kedovi upgrade --add datamodel` |
663
+ | ERD 뷰어 | 관계 중심 배치(elkjs, 킷에 포함) · 스키마 묶기 · 이름 보기 3종 · 표시 수준 자동 전환 · 돋보기 · 상세 드로어 · 기능 · 결정 ID 근거 패널 · Export SQL DDL(DB 종류별) · SVG · PDF |
664
+ | 문서 사이트 | 데이터 설계 개요 쪽 맨 위에 ERD 블록, 메뉴 묶음 제목 옆 ▶ ERD 보기, 뷰어 「← 문서」 는 개요로 |
665
+ | kedovi datamodel check | 참조 · 기본키 · 중복 · 표 형식(✖), 논리명 · 컨벤션 · 기능 ID 대조(⚠). 「없음」 으로 적은 것은 세지 않음 |
666
+ | datamodel 스킬 | 진행 방식 합의 → DB 컨벤션(하나씩 질문, `vars.datamodel` 에 저장) → 엔티티 목록 → 정의서 → ERD · 검사 |
667
+ | 로드맵 | 스택에 DB 가 있으면 「데이터 설계」, 화면이 있으면 「화면설계」 를 구현 앞에. 단계별 스킬 안내. 기본 단계 그대로인 PLAN.md 는 upgrade 가 단계를 더하고, 고친 PLAN.md 는 ⚠ 한 줄만 |
668
+ | 기획 repo 뼈대 | `06-data/` (엔티티 목록 · 컨벤션 · 정의서 양식) |
669
+ | screens check | 화면 목록의 「화면 없음」 행 기능을 미배치로 세지 않음 |
670
+
671
+ ## 0.35.0
672
+
673
+ | 구분 | 내용 |
674
+ |---|---|
675
+ | 새 스킬 common-practice | 흔한 방식 · 업계 관례 · 표준을 웹 검색으로 확인해 출처 링크가 있는 비교표로 답함. 검색할 수 없으면 「검색 불가: 내 지식 기준」 을 밝힘 |
676
+ | 근거와 검증 (상시 룰) | 「보통은 ~」 을 말하려면 common-practice 로 확인한다는 한 줄 |
677
+ | Codex 웹 검색 | `kedovi start` 가 Codex 에 `--search` 를 기본으로 붙임. 끄기 `workspace.json` 의 `agents.webSearch: false` |
678
+ | 스킬 이름 겹침 | project 팩 사본이 킷 기본 스킬과 같으면 지우라고 sync 경고에 안내 (예: `packs/project/skills/common-practice/` 삭제) |
679
+
680
+ ## 0.34.2
681
+
682
+ | 구분 | 내용 |
683
+ |---|---|
684
+ | 화면설계 개요 | 설계서 블록(장 수 · 묶음별 화면 · 설계서 보기)을 README 쪽 맨 위에 (긴 화면 목록 README 아래에 묻혀 안 보이던 것) |
685
+ | 뷰어 「← 문서」 | 개요 블록 위치(`#sheet-docs`)로 바로 |
686
+ | 새 버전 알림 | `kedovi start` 가 npm 레지스트리의 최신 버전을 하루 한 번 확인해, 이 PC 설치본보다 새로우면 `npm i -g` → `kedovi upgrade` 를 알림 (2초 · 실패하면 조용히, 끄기 `KEDOVI_NO_UPDATE_CHECK=1`) |
687
+
688
+ ## 0.34.1
689
+
690
+ | 구분 | 내용 |
691
+ |---|---|
692
+ | 문서 목록 | 폴더 · README 쪽의 문서 표를 메뉴 묶음마다 제목 + 표로 |
693
+ | 화면설계 메뉴 | 장 파일은 메뉴에 따로 두지 않음. 묶음 첫 항목 = 개요(장 수 · 묶음별 화면 · 설계서 보기), 묶음 제목 옆 ▶ 로 설계서 |
694
+ | 화면설계서 뷰어 | 상단 바 「← 문서」(개요로), 휴대폰 폭에서는 장을 원래 배치 그대로 줄여 보임(두 손가락 확대) |
695
+ | 화면설계 안내 | 설계서 하나 = 장 파일 하나, 구분은 `data-group` (screens 스킬) |
696
+ | 스크롤바 | 뷰어 · 문서 사이트 · 가이드를 화면 색에 맞춘 가는 스크롤바로 |
697
+
698
+ ## 0.34.0
699
+
700
+ | 구분 | 내용 |
701
+ |---|---|
702
+ | 문서 사이트 화면 틀 | `kedovi docs build` 결과가 가이드와 같은 틀: 상단 바(검색 ⌘K · 버전 · 라이트/다크) · 왼쪽 구분 메뉴 · 본문 머리(구분 · 상태 · 원본 버튼) · 오른쪽 목차 · 이전/다음. 쪽 주소 · ID 앵커 · ids.json 은 그대로 |
703
+ | 메뉴 묶음 | 기본은 폴더 · 파일 이름 앞 번호 띠로 묶고 이름은 문서 제목의 공통 낱말. 루트 README 는 `##` 마다 한 쪽. 바꾸기는 기획 repo 의 `docs-site.json` (groups · title · version · source) |
704
+ | 검색 | 문서 제목 · 소제목 · 정의 ID (file:// 로도) |
705
+ | 원본 버튼 | `docs-site.json` 의 source. 없으면 첫 build 가 origin 으로 채워 둠 |
706
+ | 워크스페이스 현황판 | `kedovi board`: 로드맵 · 팀원별 마지막 핸드오프 · 미완 작업 · 공지 + 기록 쪽을 `.agents/board/` 에 만들어 연다 (보기 전용) |
707
+ | Pages | 기획 repo 뼈대에 GitHub 워크플로(`.github/workflows/pages.yml`) 추가, build 가 원격에 맞는 Pages 방법을 알려 줌 |
708
+ | 가이드 | 문서 사이트와 같은 스타일 파일을 씀, 화면 폭 상한을 없애고 메뉴 · 목차 칸이 넓어짐, 가로줄 `---` 표시 |
709
+
710
+ ## 0.33.0
711
+
712
+ | 구분 | 내용 |
713
+ |---|---|
714
+ | 문서 사이트 | `kedovi docs build [repo]`: 기획 repo 의 md 를 같은 경로 구조의 `html/` 로. 정의 ID 에 앵커, 본문 ID 는 정의로 링크, 근거 색인 `html/assets/ids.json`. `kedovi docs check` · 기획 repo pre-commit 이 md 와 어긋남을 막음 |
715
+ | 화면설계서 (새 팩 `screens`) | 장 양식(표지 · 이력 · 메뉴 구조 · 정책 · 화면) · 뷰어(썸네일 · 발표 · A4 인쇄 · 근거 패널) · `screens` 스킬 · `kedovi screens check`. 신규 · 차세대는 기본, 다른 유형은 `kedovi upgrade --add screens` |
716
+ | 기획 repo 뼈대 | `02-screens/` 가 화면 목록 + 장 양식 `_template.html` 로 바뀜, GitLab Pages CI(`.gitlab-ci.yml`) 추가 |
717
+ | 변수 | `vars.docs.ids`(정의 없는 ID 경고 머리말) · `vars.screens.functionIds`(기능 ID 누락 검사) |
718
+ | 음성 알림 | 보고하듯 문장만 읽음: 표 · 코드 · 기호 · 해시 · ID · 파일 이름은 빼고, 날짜 · 시각 · `n / N` · 단축키는 말로 |
719
+
720
+ ## 0.32.0
721
+
722
+ | 구분 | 내용 |
723
+ |---|---|
724
+ | 자리 비움 결정 질문 | 텔레그램으로 머리 메시지 + 결정마다 메시지(굵은 제목 · 배경 인용 · ✅ 권장안) + 답 버튼(`1-1 ✅` · `1 ✏️` · `모두 권장안`). 버튼 · `1-1, 2-1` · `2: 내용` 으로 답함 |
725
+ | 직접 입력 | `✏️` 버튼을 누르면 그 결정에 답장하는 입력창이 열림. 답을 다 받으면 버튼을 걷음 |
726
+ | 텔레그램 서식 | 제목 앞 빈 줄 · 인용 블록 · 긴 보고는 앞부분만 보이고 나머지는 접힘 (`notify.js say`) |
727
+ | 음성 | `kedovi notify my voice on` 이면 결정 질문 · 끝남 보고를 짧게 읽어 음성 메시지로 (기본 꺼짐 · Yuna · macOS 기본 도구). 범위 · 목소리는 `voice scope` · `voice name` 또는 대화로 |
728
+
729
+ ## 0.31.0
730
+
731
+ | 구분 | 내용 |
732
+ |---|---|
733
+ | 팀 구성 자동 | 새 워크스페이스 기본. 리더가 작업마다 역할 · 등급 · 모델을 골라 구성표를 알리고 시작 (웹 검색 모델 · high 4개 이상이면 승인). 옛 워크스페이스는 고정 유지, `kedovi team-mode auto` 로 켬 |
734
+ | 요금제 | `kedovi ai` 에서 회사마다 요금제를 묻고(이 PC 로그인 값을 미리 골라 둠) 여유도(빠듯 · 넉넉 · 종량)로 모델을 나눔. `kedovi ai plan claude\|gpt <요금제>` |
735
+ | 모델 메뉴 | 개인 지침 「팀 구성」 에 역할 목록 · 쓸 수 있는 모델(등급 · LiveBench 분야별 점수 · 부르는 법) · 고르는 규칙 |
736
+ | 역할 등급 | 역할 머리말 `grade: high\|standard\|low` 로 팩 · 프로젝트가 더한 역할도 성향에 맞는 모델. 새 역할 `spec-writer`(설계 문서) |
737
+ | 선호 모델 | `kedovi team-mode prefer <역할> <도구:모델>` |
738
+ | 문서 검사 | `check-docs.js` 에 `--cover`(원본 ID 전수) · `§` 참조 · `--link A:B` · 금지 표시(`vars.docs.forbid`) |
739
+ | models 표시 | 팀 구성 · 요금제 · 역할별 등급과 출처. 화면 없이 실행해도 표 (`--json` 은 JSON) |
740
+ | 카탈로그 | 요금제(`plans`) · 분야별 점수. 워크스페이스 임시 목록 `workspace.json` 의 `catalog`. 모델 조사는 팀 공용 `handoffs/MODELS.md` |
741
+ | 로드맵 | `kedovi start` 브리핑에 흐름도 · 지금 단계 표. 핸드오프가 끝나면 "로드맵을 볼까요?" |
742
+ | Codex 한도 | 개인 지침 몫을 12KB 로 잡아 넘으면 한도를 자동으로 올림 (팀 구성 절이 잘리지 않게) |
743
+
744
+ ## 0.30.1
745
+
746
+ | 구분 | 내용 |
747
+ |---|---|
748
+ | TODO | 사용자가 등록한 것만: "TODO 에 넣어줘" 할 때만 넣고, 지우는 것도 사용자가 정함. 에이전트가 미완 업무를 알아서 옮기지 않음 |
749
+ | TODO 정리 | "TODO 정리해줘": 목록을 보이고 항목마다 끝남 · 진행 중(작업 기록으로 옮길지) · 그대로를 고르게 함 |
750
+ | 미완 작업 | 남은 일의 정본은 작업별 기록(진행 중 + 완료 조건 `[ ]`). 브리핑 · 재개 · 팀 현황에 미완 작업 · 내 TODO 를 나눠 보여 줌 |
751
+ | 검사 | `kedovi handoff check` 가 진행 중인데 완료 조건이 없거나 비었거나 `상태:` 줄이 없는 작업 기록을 ✖ 로 막음 |
752
+ | 인수인계 | 미완 작업은 내 작업 기록으로, TODO 는 고른 항목만 내 TODO 로 |
753
+
754
+ ## 0.30.0
755
+
756
+ | 구분 | 내용 |
757
+ |---|---|
758
+ | 로드맵 | `handoffs/PLAN.md` (팀 공용): 프로젝트 전체 단계와 상태의 정본. init 이 유형별 기본 단계로 만들고, upgrade 는 없을 때만 만든다 |
759
+ | kedovi plan | 단계 흐름도 · 지금 단계 표(영역 × 하위 작업) · 이번에 생긴 것(커밋 · 새 파일 · ID) · 다음. `--short` · `--json` · `init` · `check` |
760
+ | 보고 | 세션 브리핑 · 재개 · 팀 현황에 로드맵 한 줄, 단계를 끝낸 보고에 전체 블록. 진행은 `완료 n / 전체 N` |
761
+ | 갱신 누락 | `kedovi handoff check` 가 기본 단계 그대로 · 진행 단계 없음 · 다 끝났는데 단계가 그대로 같은 것을 알림. 핸드오프 때 상태를 묻고 고침 |
762
+ | 질문 제목 | 결정 질문이 여러 개면 제목 끝에 `주제 n/N`, 하위 질문은 `(m/k)` |
763
+ | 팀 | 설정 잠금이어도 팀원이 `handoffs/PLAN.md` 는 커밋할 수 있음. PLAN.md 가 바뀐 push 는 팀 방에 알림 |
764
+
765
+ ## 0.29.0
766
+
767
+ | 구분 | 내용 |
768
+ |---|---|
769
+ | 알림 수준 | 개인 알림을 수준 하나로: 전체 · 결과와 결정(기본) · 진행 현황 · 끄기. 결과와 결정은 오래 걸린 요청의 답 앞부분과 질문 · 권한 확인만. 응답 뒤 "입력 대기" 알림은 없앰. 옛 설정은 가까운 수준으로 읽음 |
770
+ | 자리 비움 | `kedovi notify my away on\|off` (옛 `channel ask text\|dialog`): 질문을 번호 목록으로, 결과는 시간과 상관없이 |
771
+ | 설정 화면 | 알림 수준 · 양방향 대화 · 자리 비움 · 개인 봇 · 팀 방 · 고급(결과 기준 · 진행 현황 간격) 순서로 정리 |
772
+
773
+ ## 0.28.7
774
+
775
+ | 구분 | 내용 |
776
+ |---|---|
777
+ | 텔레그램 표시 | 마크다운을 텔레그램 형식으로 바꿔 보냄: 표 → "• 항목: 내용" 목록, 굵게 · 코드 · 제목 · 링크. Claude 가 reply 로 보낼 때도 표 대신 목록으로 |
778
+
779
+ ## 0.28.6
780
+
781
+ | 구분 | 내용 |
782
+ |---|---|
783
+ | 알림 설정 화면 | `kedovi notify setup` 하나로 개인 봇 · 자동 알림 · 양방향 대화 · 질문 방식 · 진행 현황 · 팀 방 · 시험 발송. 이미 한 것은 바꾸기 · 제거, 모두 지우기 |
784
+ | 초기화 | `kedovi reset`: 이 PC 의 개인 설정(이 PC 설정 · 텔레그램 채널 · 임시 기록 · 개인 지침 · 토큰)을 골라 처음 상태로. 팀 설정 · repos 는 그대로 |
785
+ | 진행 현황 | 채널 세션에서 사용자 입력 없이 5분 넘게 작업하면 5분마다 지금 하는 일(경과 · 도구 수 · 최근 작업)을 텔레그램으로. `kedovi notify my channel progress <분\|off>` |
786
+
787
+ ## 0.28.5
788
+
789
+ | 구분 | 내용 |
790
+ |---|---|
791
+ | doctor | kit check 줄에 경고 마지막 줄 대신 결과(생성물 일치 · AGENTS.md 크기)를 보여 줌 |
792
+ | 설치 안내 | 문서 사이트(설치 · 빠르게 시작하기)에 이미 등록 · 로그인 · 설치돼 있는지 확인하는 순서 추가 · Node 기준을 20.19 로 통일 (doctor 포함) |
793
+
794
+ ## 0.28.4
795
+
796
+ | 구분 | 내용 |
797
+ |---|---|
798
+ | 질문 방식 | 채널 세션도 기본은 터미널 선택지 창(방향키 · 직접 입력), 텔레그램에는 질문과 선택지를 알림으로. 자리를 비울 때 `kedovi notify my channel ask text` 로 번호 목록 |
799
+ | 팀원 정리 | 팀원 종료는 정식 종료 요청 → 팀원 승인으로만 (team 스킬). tmux 창 · 프로세스 강제 종료는 훅이 막음 (등록만 남아 대기 팀원이 쌓이던 원인) |
800
+
801
+ ## 0.28.3
802
+
803
+ | 구분 | 내용 |
804
+ |---|---|
805
+ | 채널 끊김 감시 | 채널 세션에서 요청마다 · 끝날 때 수신 상태를 보고, 끊기면 텔레그램 · 터미널에 한 번 알림(/mcp 재연결 안내), 다시 붙으면 알림 |
806
+ | 진행 상황 | 채널 세션에서 역할 에이전트 · 팀원 시작 · 끝 · 대기를 텔레그램에 한 줄씩. 일하는 동안 텔레그램 질문에는 누가 무엇을 하는지 바로 답 |
807
+ | 팀원 세션 | 팀원(agent teams) · 서브에이전트 안에서는 리더 몫 훅(완료 조건 · 핸드오프 · 위임 정리 · 알림)이 돌지 않음 |
808
+ | 끊김 원인 막기 | `channel on` 이 플러그인을 이 워크스페이스 전용(local)으로 설치하고 user 범위 · 워크스페이스 안 다른 폴더 설치를 지움 · 기본 폴더의 같은 봇 토큰을 끔(409 충돌) · 위임 세션은 서버를 띄우지 않음 · doctor 경고 |
809
+
810
+ ## 0.28.2
811
+
812
+ | 구분 | 내용 |
813
+ |---|---|
814
+ | 이어서 시작 | `kedovi start -c` 마지막 대화 · `-r <세션 ID>` 그 세션(`/exit` 때 나온 ID) · `-r` 목록에서 고르기. 모델 · 텔레그램 채널 그대로, 브리핑 없이 (Codex 는 resume 으로) |
815
+
816
+ ## 0.28.1
817
+
818
+ | 구분 | 내용 |
819
+ |---|---|
820
+ | 텔레그램 채널 | 프로젝트마다 전용 봇 · 상태 폴더(`~/.claude/channels/telegram-<프로젝트>/`). 다른 프로젝트가 쓰는 봇은 거부 |
821
+ | 텔레그램 알림 | 채널을 켠 워크스페이스는 개인 알림도 그 프로젝트 봇으로 |
822
+ | 채널 세션 | 터미널 요청의 질문 · 답을 텔레그램으로, 텔레그램 요청의 답은 터미널에도 전문으로 · 선택지 창 대신 번호 목록(양쪽에서 답) |
823
+ | channel on | 연결 방식 · Claude Code · Bun · 봇 · 내 채팅 · 플러그인 · 상태 폴더를 한 줄씩 보여 준다. 봇이 없으면 만드는 순서 안내 |
824
+ | upgrade | 버전 변화 · 변경 내용 표 · 바뀐 파일 요약 · 다음 할 일 |
825
+
826
+ ## 0.28.0
827
+
828
+ | 구분 | 내용 |
829
+ |---|---|
830
+ | 새 명령 | `kedovi notify my\|team …` · `kedovi handoff find\|check\|…` · `kedovi rules ondemand\|always` · `kedovi start --no-channel` |
831
+ | 텔레그램 | setup 이 자동 알림까지 켬 · 질문 · 권한 확인 · 입력 대기 문구 구분 · 위임 끝 알림 · 양방향 채널 `kedovi notify my channel on` (기본 꺼짐) |
832
+ | 생성 · 검사 | JSON 생성물은 키 순서 무관 비교 · `rules.onDemand` 로 AGENTS.md 줄이기 |
833
+ | doctor | 전역 · 워크스페이스 킷 버전 차이 · 플러그인 실행 파일(bun 등) · 채널 상태 |
834
+ | 훅 | 완료 조건은 이번 세션에 손댄 작업만, `[~]` 제외 · 같은 작업 안내는 한 줄로 · 위임 세션에서는 훅이 돌지 않음 |
835
+ | 위임 · 문서 | `delegate wait` 경과 · 마지막 로그 · 문서 검사 `check-docs.js` · idle 에이전트 정리 순서 |