timsquad 2.1.0 → 3.4.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 (438) hide show
  1. package/README.ko.md +288 -0
  2. package/README.md +170 -763
  3. package/dist/commands/compile.d.ts +3 -0
  4. package/dist/commands/compile.d.ts.map +1 -0
  5. package/dist/commands/compile.js +170 -0
  6. package/dist/commands/compile.js.map +1 -0
  7. package/dist/commands/daemon.d.ts +7 -0
  8. package/dist/commands/daemon.d.ts.map +1 -0
  9. package/dist/commands/daemon.js +229 -0
  10. package/dist/commands/daemon.js.map +1 -0
  11. package/dist/commands/feedback.d.ts +9 -0
  12. package/dist/commands/feedback.d.ts.map +1 -1
  13. package/dist/commands/feedback.js +235 -14
  14. package/dist/commands/feedback.js.map +1 -1
  15. package/dist/commands/full.js +2 -2
  16. package/dist/commands/full.js.map +1 -1
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +118 -22
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/knowledge.d.ts +3 -0
  21. package/dist/commands/knowledge.d.ts.map +1 -0
  22. package/dist/commands/knowledge.js +316 -0
  23. package/dist/commands/knowledge.js.map +1 -0
  24. package/dist/commands/log.d.ts +27 -0
  25. package/dist/commands/log.d.ts.map +1 -1
  26. package/dist/commands/log.js +965 -0
  27. package/dist/commands/log.js.map +1 -1
  28. package/dist/commands/meta-index.d.ts +3 -0
  29. package/dist/commands/meta-index.d.ts.map +1 -0
  30. package/dist/commands/meta-index.js +401 -0
  31. package/dist/commands/meta-index.js.map +1 -0
  32. package/dist/commands/metrics.d.ts.map +1 -1
  33. package/dist/commands/metrics.js +239 -4
  34. package/dist/commands/metrics.js.map +1 -1
  35. package/dist/commands/retro.js +154 -6
  36. package/dist/commands/retro.js.map +1 -1
  37. package/dist/commands/skills.d.ts +12 -0
  38. package/dist/commands/skills.d.ts.map +1 -0
  39. package/dist/commands/skills.js +231 -0
  40. package/dist/commands/skills.js.map +1 -0
  41. package/dist/commands/upgrade.d.ts +8 -0
  42. package/dist/commands/upgrade.d.ts.map +1 -0
  43. package/dist/commands/upgrade.js +292 -0
  44. package/dist/commands/upgrade.js.map +1 -0
  45. package/dist/commands/workflow.d.ts +3 -0
  46. package/dist/commands/workflow.d.ts.map +1 -0
  47. package/dist/commands/workflow.js +607 -0
  48. package/dist/commands/workflow.js.map +1 -0
  49. package/dist/daemon/context-writer.d.ts +16 -0
  50. package/dist/daemon/context-writer.d.ts.map +1 -0
  51. package/dist/daemon/context-writer.js +35 -0
  52. package/dist/daemon/context-writer.js.map +1 -0
  53. package/dist/daemon/entry.d.ts +7 -0
  54. package/dist/daemon/entry.d.ts.map +1 -0
  55. package/dist/daemon/entry.js +17 -0
  56. package/dist/daemon/entry.js.map +1 -0
  57. package/dist/daemon/event-queue.d.ts +52 -0
  58. package/dist/daemon/event-queue.d.ts.map +1 -0
  59. package/dist/daemon/event-queue.js +255 -0
  60. package/dist/daemon/event-queue.js.map +1 -0
  61. package/dist/daemon/file-watcher.d.ts +19 -0
  62. package/dist/daemon/file-watcher.d.ts.map +1 -0
  63. package/dist/daemon/file-watcher.js +87 -0
  64. package/dist/daemon/file-watcher.js.map +1 -0
  65. package/dist/daemon/index.d.ts +29 -0
  66. package/dist/daemon/index.d.ts.map +1 -0
  67. package/dist/daemon/index.js +296 -0
  68. package/dist/daemon/index.js.map +1 -0
  69. package/dist/daemon/jsonl-watcher.d.ts +49 -0
  70. package/dist/daemon/jsonl-watcher.d.ts.map +1 -0
  71. package/dist/daemon/jsonl-watcher.js +258 -0
  72. package/dist/daemon/jsonl-watcher.js.map +1 -0
  73. package/dist/daemon/meta-cache.d.ts +63 -0
  74. package/dist/daemon/meta-cache.d.ts.map +1 -0
  75. package/dist/daemon/meta-cache.js +249 -0
  76. package/dist/daemon/meta-cache.js.map +1 -0
  77. package/dist/daemon/session-state.d.ts +19 -0
  78. package/dist/daemon/session-state.d.ts.map +1 -0
  79. package/dist/daemon/session-state.js +132 -0
  80. package/dist/daemon/session-state.js.map +1 -0
  81. package/dist/daemon/shutdown.d.ts +21 -0
  82. package/dist/daemon/shutdown.d.ts.map +1 -0
  83. package/dist/daemon/shutdown.js +164 -0
  84. package/dist/daemon/shutdown.js.map +1 -0
  85. package/dist/index.js +24 -3
  86. package/dist/index.js.map +1 -1
  87. package/dist/lib/agent-composer.d.ts +38 -0
  88. package/dist/lib/agent-composer.d.ts.map +1 -0
  89. package/dist/lib/agent-composer.js +128 -0
  90. package/dist/lib/agent-composer.js.map +1 -0
  91. package/dist/lib/agent-generator.d.ts +22 -0
  92. package/dist/lib/agent-generator.d.ts.map +1 -0
  93. package/dist/lib/agent-generator.js +150 -0
  94. package/dist/lib/agent-generator.js.map +1 -0
  95. package/dist/lib/ast-parser.d.ts +11 -0
  96. package/dist/lib/ast-parser.d.ts.map +1 -0
  97. package/dist/lib/ast-parser.js +282 -0
  98. package/dist/lib/ast-parser.js.map +1 -0
  99. package/dist/lib/compile-rules.d.ts +66 -0
  100. package/dist/lib/compile-rules.d.ts.map +1 -0
  101. package/dist/lib/compile-rules.js +114 -0
  102. package/dist/lib/compile-rules.js.map +1 -0
  103. package/dist/lib/compiler.d.ts +105 -0
  104. package/dist/lib/compiler.d.ts.map +1 -0
  105. package/dist/lib/compiler.js +368 -0
  106. package/dist/lib/compiler.js.map +1 -0
  107. package/dist/lib/config.d.ts +7 -2
  108. package/dist/lib/config.d.ts.map +1 -1
  109. package/dist/lib/config.js +34 -3
  110. package/dist/lib/config.js.map +1 -1
  111. package/dist/lib/meta-index.d.ts +19 -0
  112. package/dist/lib/meta-index.d.ts.map +1 -0
  113. package/dist/lib/meta-index.js +573 -0
  114. package/dist/lib/meta-index.js.map +1 -0
  115. package/dist/lib/project.js +1 -1
  116. package/dist/lib/project.js.map +1 -1
  117. package/dist/lib/skill-generator.d.ts +32 -0
  118. package/dist/lib/skill-generator.d.ts.map +1 -0
  119. package/dist/lib/skill-generator.js +187 -0
  120. package/dist/lib/skill-generator.js.map +1 -0
  121. package/dist/lib/template.d.ts +16 -2
  122. package/dist/lib/template.d.ts.map +1 -1
  123. package/dist/lib/template.js +115 -20
  124. package/dist/lib/template.js.map +1 -1
  125. package/dist/lib/ui-index.d.ts +12 -0
  126. package/dist/lib/ui-index.d.ts.map +1 -0
  127. package/dist/lib/ui-index.js +239 -0
  128. package/dist/lib/ui-index.js.map +1 -0
  129. package/dist/lib/ui-parser.d.ts +12 -0
  130. package/dist/lib/ui-parser.d.ts.map +1 -0
  131. package/dist/lib/ui-parser.js +472 -0
  132. package/dist/lib/ui-parser.js.map +1 -0
  133. package/dist/lib/update-check.d.ts +6 -0
  134. package/dist/lib/update-check.d.ts.map +1 -0
  135. package/dist/lib/update-check.js +121 -0
  136. package/dist/lib/update-check.js.map +1 -0
  137. package/dist/lib/upgrade-backup.d.ts +33 -0
  138. package/dist/lib/upgrade-backup.d.ts.map +1 -0
  139. package/dist/lib/upgrade-backup.js +101 -0
  140. package/dist/lib/upgrade-backup.js.map +1 -0
  141. package/dist/lib/version.d.ts +19 -0
  142. package/dist/lib/version.d.ts.map +1 -0
  143. package/dist/lib/version.js +35 -0
  144. package/dist/lib/version.js.map +1 -0
  145. package/dist/lib/workflow-state.d.ts +48 -0
  146. package/dist/lib/workflow-state.d.ts.map +1 -0
  147. package/dist/lib/workflow-state.js +67 -0
  148. package/dist/lib/workflow-state.js.map +1 -0
  149. package/dist/types/config.d.ts +103 -2
  150. package/dist/types/config.d.ts.map +1 -1
  151. package/dist/types/config.js +184 -9
  152. package/dist/types/config.js.map +1 -1
  153. package/dist/types/feedback.d.ts +7 -0
  154. package/dist/types/feedback.d.ts.map +1 -1
  155. package/dist/types/feedback.js +1 -1
  156. package/dist/types/feedback.js.map +1 -1
  157. package/dist/types/index.d.ts +3 -0
  158. package/dist/types/index.d.ts.map +1 -1
  159. package/dist/types/index.js +3 -0
  160. package/dist/types/index.js.map +1 -1
  161. package/dist/types/meta-index.d.ts +146 -0
  162. package/dist/types/meta-index.d.ts.map +1 -0
  163. package/dist/types/meta-index.js +7 -0
  164. package/dist/types/meta-index.js.map +1 -0
  165. package/dist/types/project.d.ts +19 -3
  166. package/dist/types/project.d.ts.map +1 -1
  167. package/dist/types/project.js +23 -0
  168. package/dist/types/project.js.map +1 -1
  169. package/dist/types/task-log.d.ts +208 -0
  170. package/dist/types/task-log.d.ts.map +1 -0
  171. package/dist/types/task-log.js +6 -0
  172. package/dist/types/task-log.js.map +1 -0
  173. package/dist/types/ui-meta.d.ts +118 -0
  174. package/dist/types/ui-meta.d.ts.map +1 -0
  175. package/dist/types/ui-meta.js +7 -0
  176. package/dist/types/ui-meta.js.map +1 -0
  177. package/package.json +12 -4
  178. package/templates/base/agents/base/tsq-architect.md +68 -0
  179. package/templates/base/agents/base/tsq-dba.md +56 -0
  180. package/templates/base/agents/base/tsq-designer.md +72 -0
  181. package/templates/base/agents/base/tsq-developer.md +67 -0
  182. package/templates/base/agents/base/tsq-qa.md +55 -0
  183. package/templates/base/agents/base/tsq-security.md +65 -0
  184. package/templates/base/agents/overlays/domain/general-web/_common.md +11 -0
  185. package/templates/base/agents/overlays/domain/mobile/_common.md +13 -0
  186. package/templates/base/agents/overlays/platform/claude-code.md +12 -0
  187. package/templates/base/config.template.yaml +213 -0
  188. package/templates/base/knowledge/checklists/accessibility.md +37 -0
  189. package/templates/base/knowledge/checklists/architecture-review.md +28 -0
  190. package/templates/base/knowledge/checklists/database-standards.md +84 -0
  191. package/templates/base/knowledge/checklists/design-reference.md +97 -0
  192. package/templates/base/knowledge/checklists/security.md +50 -0
  193. package/templates/base/knowledge/checklists/ssot-validation.md +19 -0
  194. package/templates/base/knowledge/domains/_template.md +16 -0
  195. package/templates/base/knowledge/platforms/_template.md +16 -0
  196. package/templates/base/knowledge/templates/sequence-report.md +44 -0
  197. package/templates/base/knowledge/templates/task-result.md +105 -0
  198. package/templates/base/skills/_template/SKILL.md +59 -0
  199. package/templates/base/skills/_template/references/_template.md +35 -0
  200. package/templates/base/skills/_template/rules/_sections.md +34 -0
  201. package/templates/base/skills/_template/rules/_template.md +32 -0
  202. package/templates/base/skills/_template/scripts/_template.sh +31 -0
  203. package/templates/base/skills/architecture/SKILL.md +54 -0
  204. package/templates/base/skills/architecture/references/adr-template.md +50 -0
  205. package/templates/base/skills/architecture/references/api-design.md +64 -0
  206. package/templates/base/skills/backend/node/SKILL.md +81 -0
  207. package/templates/base/skills/backend/node/rules/async-patterns.md +81 -0
  208. package/templates/base/skills/backend/node/rules/deployment.md +33 -0
  209. package/templates/base/skills/backend/node/rules/env-config.md +41 -0
  210. package/templates/base/skills/backend/node/rules/error-handling.md +83 -0
  211. package/templates/base/skills/backend/node/rules/hono-app-setup.md +98 -0
  212. package/templates/base/skills/backend/node/rules/jwt-auth.md +76 -0
  213. package/templates/base/skills/backend/node/rules/middleware.md +56 -0
  214. package/templates/base/skills/backend/node/rules/testing.md +82 -0
  215. package/templates/base/skills/coding/SKILL.md +47 -0
  216. package/templates/base/skills/coding/rules/patterns.md +81 -0
  217. package/templates/base/skills/controller/SKILL.md +111 -0
  218. package/templates/base/skills/controller/references/README.md +35 -0
  219. package/templates/base/skills/controller/rules/README.md +18 -0
  220. package/templates/base/skills/database/SKILL.md +98 -0
  221. package/templates/base/skills/database/prisma/SKILL.md +57 -0
  222. package/templates/base/skills/database/prisma/rules/queries.md +133 -0
  223. package/templates/base/skills/database/prisma/rules/schema-design.md +80 -0
  224. package/templates/base/skills/frontend/nextjs/SKILL.md +59 -0
  225. package/templates/base/skills/frontend/nextjs/rules/app-router.md +138 -0
  226. package/templates/base/skills/frontend/react/SKILL.md +86 -0
  227. package/templates/base/skills/frontend/react/rules/_sections.md +88 -0
  228. package/templates/base/skills/frontend/react/rules/anti-patterns.md +67 -0
  229. package/templates/base/skills/frontend/react/rules/async-api-routes.md +38 -0
  230. package/templates/base/skills/frontend/react/rules/async-defer-await.md +80 -0
  231. package/templates/base/skills/frontend/react/rules/async-dependencies.md +36 -0
  232. package/templates/base/skills/frontend/react/rules/async-parallel.md +28 -0
  233. package/templates/base/skills/frontend/react/rules/async-suspense-boundaries.md +99 -0
  234. package/templates/base/skills/frontend/react/rules/bundle-barrel-imports.md +59 -0
  235. package/templates/base/skills/frontend/react/rules/bundle-defer-third-party.md +49 -0
  236. package/templates/base/skills/frontend/react/rules/bundle-dynamic-imports.md +35 -0
  237. package/templates/base/skills/frontend/react/rules/component-conventions.md +74 -0
  238. package/templates/base/skills/frontend/react/rules/js-combine-iterations.md +32 -0
  239. package/templates/base/skills/frontend/react/rules/js-early-exit.md +50 -0
  240. package/templates/base/skills/frontend/react/rules/js-index-maps.md +37 -0
  241. package/templates/base/skills/frontend/react/rules/js-set-map-lookups.md +24 -0
  242. package/templates/base/skills/frontend/react/rules/rendering-conditional-render.md +40 -0
  243. package/templates/base/skills/frontend/react/rules/rendering-content-visibility.md +38 -0
  244. package/templates/base/skills/frontend/react/rules/rendering-hoist-jsx.md +46 -0
  245. package/templates/base/skills/frontend/react/rules/rerender-defer-reads.md +39 -0
  246. package/templates/base/skills/frontend/react/rules/rerender-derived-state.md +29 -0
  247. package/templates/base/skills/frontend/react/rules/rerender-memo.md +44 -0
  248. package/templates/base/skills/frontend/react/rules/rerender-transitions.md +40 -0
  249. package/templates/base/skills/frontend/react/rules/server-after-nonblocking.md +73 -0
  250. package/templates/base/skills/frontend/react/rules/server-cache-react.md +26 -0
  251. package/templates/base/skills/frontend/react/rules/server-parallel-fetching.md +79 -0
  252. package/templates/base/skills/frontend/react/rules/state-location.md +55 -0
  253. package/templates/base/skills/methodology/bdd/SKILL.md +69 -0
  254. package/templates/base/skills/methodology/bdd/rules/gherkin-patterns.md +113 -0
  255. package/templates/base/skills/methodology/ddd/SKILL.md +74 -0
  256. package/templates/base/skills/methodology/ddd/rules/strategic-patterns.md +98 -0
  257. package/templates/base/skills/methodology/debugging/SKILL.md +60 -0
  258. package/templates/base/skills/methodology/debugging/references/root-cause-tracing.md +84 -0
  259. package/templates/base/skills/methodology/tdd/SKILL.md +66 -0
  260. package/templates/base/skills/methodology/tdd/rules/real-world-example.md +88 -0
  261. package/templates/base/skills/methodology/tdd/rules/techniques.md +185 -0
  262. package/templates/base/skills/mobile/dart/SKILL.md +69 -0
  263. package/templates/base/skills/mobile/dart/rules/async-patterns.md +112 -0
  264. package/templates/base/skills/mobile/dart/rules/code-style.md +96 -0
  265. package/templates/base/skills/mobile/dart/rules/null-safety.md +84 -0
  266. package/templates/base/skills/mobile/dart/rules/type-system.md +111 -0
  267. package/templates/base/skills/mobile/flutter/SKILL.md +89 -0
  268. package/templates/base/skills/mobile/flutter/ci-cd/SKILL.md +82 -0
  269. package/templates/base/skills/mobile/flutter/ci-cd/references/ci-cd-pipeline.md +314 -0
  270. package/templates/base/skills/mobile/flutter/ci-cd/rules/code-signing.md +106 -0
  271. package/templates/base/skills/mobile/flutter/ci-cd/rules/codemagic-setup.md +116 -0
  272. package/templates/base/skills/mobile/flutter/ci-cd/rules/fastlane-setup.md +105 -0
  273. package/templates/base/skills/mobile/flutter/ci-cd/rules/github-actions.md +112 -0
  274. package/templates/base/skills/mobile/flutter/ci-cd/rules/store-deployment.md +106 -0
  275. package/templates/base/skills/mobile/flutter/ci-cd/rules/versioning.md +107 -0
  276. package/templates/base/skills/mobile/flutter/i18n/SKILL.md +78 -0
  277. package/templates/base/skills/mobile/flutter/i18n/references/i18n-architecture.md +225 -0
  278. package/templates/base/skills/mobile/flutter/i18n/rules/arb-files.md +182 -0
  279. package/templates/base/skills/mobile/flutter/i18n/rules/locale-switching.md +226 -0
  280. package/templates/base/skills/mobile/flutter/i18n/rules/localization-setup.md +137 -0
  281. package/templates/base/skills/mobile/flutter/i18n/rules/plural-gender.md +159 -0
  282. package/templates/base/skills/mobile/flutter/i18n/rules/text-direction.md +199 -0
  283. package/templates/base/skills/mobile/flutter/monitoring/SKILL.md +81 -0
  284. package/templates/base/skills/mobile/flutter/monitoring/references/monitoring-architecture.md +269 -0
  285. package/templates/base/skills/mobile/flutter/monitoring/rules/analytics.md +227 -0
  286. package/templates/base/skills/mobile/flutter/monitoring/rules/crashlytics-setup.md +195 -0
  287. package/templates/base/skills/mobile/flutter/monitoring/rules/logging.md +258 -0
  288. package/templates/base/skills/mobile/flutter/monitoring/rules/performance-monitoring.md +248 -0
  289. package/templates/base/skills/mobile/flutter/monitoring/rules/sentry-integration.md +249 -0
  290. package/templates/base/skills/mobile/flutter/networking/SKILL.md +88 -0
  291. package/templates/base/skills/mobile/flutter/networking/references/api-client-architecture.md +305 -0
  292. package/templates/base/skills/mobile/flutter/networking/rules/caching.md +212 -0
  293. package/templates/base/skills/mobile/flutter/networking/rules/connectivity.md +213 -0
  294. package/templates/base/skills/mobile/flutter/networking/rules/dio-setup.md +159 -0
  295. package/templates/base/skills/mobile/flutter/networking/rules/error-handling.md +209 -0
  296. package/templates/base/skills/mobile/flutter/networking/rules/interceptors.md +205 -0
  297. package/templates/base/skills/mobile/flutter/networking/rules/retrofit-patterns.md +194 -0
  298. package/templates/base/skills/mobile/flutter/push-notifications/SKILL.md +87 -0
  299. package/templates/base/skills/mobile/flutter/push-notifications/references/notification-architecture.md +340 -0
  300. package/templates/base/skills/mobile/flutter/push-notifications/references/platform-setup.md +286 -0
  301. package/templates/base/skills/mobile/flutter/push-notifications/rules/background-processing.md +308 -0
  302. package/templates/base/skills/mobile/flutter/push-notifications/rules/deep-linking.md +217 -0
  303. package/templates/base/skills/mobile/flutter/push-notifications/rules/fcm-setup.md +164 -0
  304. package/templates/base/skills/mobile/flutter/push-notifications/rules/local-notifications.md +262 -0
  305. package/templates/base/skills/mobile/flutter/push-notifications/rules/notification-handling.md +210 -0
  306. package/templates/base/skills/mobile/flutter/push-notifications/rules/notification-permissions.md +246 -0
  307. package/templates/base/skills/mobile/flutter/push-notifications/rules/rich-notifications.md +320 -0
  308. package/templates/base/skills/mobile/flutter/references/freezed-patterns.md +162 -0
  309. package/templates/base/skills/mobile/flutter/references/project-structure.md +170 -0
  310. package/templates/base/skills/mobile/flutter/rules/animations.md +112 -0
  311. package/templates/base/skills/mobile/flutter/rules/architecture.md +121 -0
  312. package/templates/base/skills/mobile/flutter/rules/navigation-routing.md +117 -0
  313. package/templates/base/skills/mobile/flutter/rules/performance.md +112 -0
  314. package/templates/base/skills/mobile/flutter/rules/platform-adaptive.md +126 -0
  315. package/templates/base/skills/mobile/flutter/rules/state-management.md +110 -0
  316. package/templates/base/skills/mobile/flutter/rules/testing.md +131 -0
  317. package/templates/base/skills/mobile/flutter/rules/widget-conventions.md +122 -0
  318. package/templates/base/skills/mobile/flutter/security/SKILL.md +86 -0
  319. package/templates/base/skills/mobile/flutter/security/references/mobile-security-checklist.md +168 -0
  320. package/templates/base/skills/mobile/flutter/security/rules/api-key-protection.md +206 -0
  321. package/templates/base/skills/mobile/flutter/security/rules/authentication.md +248 -0
  322. package/templates/base/skills/mobile/flutter/security/rules/data-protection.md +271 -0
  323. package/templates/base/skills/mobile/flutter/security/rules/obfuscation.md +213 -0
  324. package/templates/base/skills/mobile/flutter/security/rules/secure-storage.md +171 -0
  325. package/templates/base/skills/mobile/flutter/security/rules/ssl-pinning.md +197 -0
  326. package/templates/base/skills/planning/SKILL.md +58 -0
  327. package/templates/base/skills/planning/references/prd-guide.md +47 -0
  328. package/templates/base/skills/planning/references/requirements-guide.md +46 -0
  329. package/templates/base/skills/prompt-engineering/SKILL.md +103 -0
  330. package/templates/base/skills/retrospective/SKILL.md +102 -0
  331. package/templates/base/skills/security/SKILL.md +55 -0
  332. package/templates/base/skills/security/rules/owasp-examples.md +119 -0
  333. package/templates/base/skills/security/scripts/check-secrets.sh +55 -0
  334. package/templates/base/skills/testing/SKILL.md +63 -0
  335. package/templates/base/skills/testing/references/testing-patterns.md +103 -0
  336. package/templates/base/skills/tsq-protocol/SKILL.md +51 -0
  337. package/templates/base/skills/typescript/SKILL.md +67 -0
  338. package/templates/base/skills/typescript/rules/type-patterns.md +135 -0
  339. package/templates/base/skills/typescript/rules/utility-types.md +76 -0
  340. package/templates/base/skills/ui-design/SKILL.md +70 -0
  341. package/templates/{common → base}/timsquad/feedback/routing-rules.yaml +1 -1
  342. package/templates/{common → base}/timsquad/retrospective/metrics/metrics-schema.json +46 -1
  343. package/templates/platforms/claude-code/CLAUDE.md.template +89 -0
  344. package/templates/platforms/claude-code/rules/adr-rules.md +32 -0
  345. package/templates/platforms/claude-code/rules/feedback-routing.md +18 -0
  346. package/templates/platforms/claude-code/rules/phase-management.md +23 -0
  347. package/templates/platforms/claude-code/rules/reporting-format.md +26 -0
  348. package/templates/platforms/claude-code/rules/sequence-management.md +72 -0
  349. package/templates/platforms/claude-code/rules/workspace-sync.md +33 -0
  350. package/templates/platforms/claude-code/scripts/completion-guard.sh +57 -0
  351. package/templates/platforms/claude-code/scripts/phase-guard.sh +79 -0
  352. package/templates/platforms/claude-code/settings.json +98 -0
  353. package/templates/project-types/api-backend/config.yaml +227 -0
  354. package/templates/project-types/api-backend/process/workflow.xml +214 -0
  355. package/templates/project-types/fintech/config.yaml +151 -0
  356. package/templates/project-types/fintech/process/workflow.xml +316 -0
  357. package/templates/project-types/infra/config.yaml +327 -0
  358. package/templates/project-types/infra/process/workflow.xml +296 -0
  359. package/templates/project-types/mobile-app/config.yaml +123 -0
  360. package/templates/project-types/mobile-app/process/workflow.xml +191 -0
  361. package/templates/project-types/platform/config.yaml +254 -0
  362. package/templates/project-types/platform/process/workflow.xml +254 -0
  363. package/templates/project-types/web-app/config.yaml +198 -0
  364. package/templates/project-types/web-app/process/workflow.xml +210 -0
  365. package/templates/project-types/web-service/config.yaml +136 -0
  366. package/templates/project-types/web-service/process/workflow.xml +184 -0
  367. package/templates/common/CLAUDE.md.template +0 -254
  368. package/templates/common/claude/agents/tsq-dba.md +0 -311
  369. package/templates/common/claude/agents/tsq-designer.md +0 -323
  370. package/templates/common/claude/agents/tsq-developer.md +0 -177
  371. package/templates/common/claude/agents/tsq-planner.md +0 -190
  372. package/templates/common/claude/agents/tsq-prompter.md +0 -356
  373. package/templates/common/claude/agents/tsq-qa.md +0 -168
  374. package/templates/common/claude/agents/tsq-retro.md +0 -193
  375. package/templates/common/claude/agents/tsq-security.md +0 -221
  376. package/templates/common/claude/hooks/auto-metrics.sh +0 -165
  377. package/templates/common/claude/hooks/auto-worklog.sh +0 -245
  378. package/templates/common/claude/hooks/event-logger.sh +0 -208
  379. package/templates/common/claude/settings.json +0 -86
  380. package/templates/common/claude/skills/architecture/SKILL.md +0 -123
  381. package/templates/common/claude/skills/backend/node/SKILL.md +0 -1015
  382. package/templates/common/claude/skills/coding/SKILL.md +0 -171
  383. package/templates/common/claude/skills/database/prisma/SKILL.md +0 -357
  384. package/templates/common/claude/skills/frontend/nextjs/SKILL.md +0 -279
  385. package/templates/common/claude/skills/frontend/react/SKILL.md +0 -1729
  386. package/templates/common/claude/skills/methodology/bdd/SKILL.md +0 -234
  387. package/templates/common/claude/skills/methodology/ddd/SKILL.md +0 -311
  388. package/templates/common/claude/skills/methodology/tdd/SKILL.md +0 -512
  389. package/templates/common/claude/skills/planning/SKILL.md +0 -90
  390. package/templates/common/claude/skills/security/SKILL.md +0 -234
  391. package/templates/common/claude/skills/testing/SKILL.md +0 -146
  392. package/templates/common/claude/skills/typescript/SKILL.md +0 -435
  393. package/templates/common/config.template.yaml +0 -132
  394. /package/templates/{common → base}/timsquad/architectures/clean/ARCHITECTURE.md +0 -0
  395. /package/templates/{common → base}/timsquad/architectures/clean/backend.xml +0 -0
  396. /package/templates/{common → base}/timsquad/architectures/clean/frontend.xml +0 -0
  397. /package/templates/{common → base}/timsquad/architectures/fsd/ARCHITECTURE.md +0 -0
  398. /package/templates/{common → base}/timsquad/architectures/fsd/frontend.xml +0 -0
  399. /package/templates/{common → base}/timsquad/architectures/hexagonal/ARCHITECTURE.md +0 -0
  400. /package/templates/{common → base}/timsquad/architectures/hexagonal/backend.xml +0 -0
  401. /package/templates/{common → base}/timsquad/constraints/competency-framework.xml +0 -0
  402. /package/templates/{common → base}/timsquad/constraints/ssot-schema.xml +0 -0
  403. /package/templates/{common → base}/timsquad/feedback/feedback-router.sh +0 -0
  404. /package/templates/{common → base}/timsquad/generators/data-design.xml +0 -0
  405. /package/templates/{common → base}/timsquad/generators/prd.xml +0 -0
  406. /package/templates/{common → base}/timsquad/generators/requirements.xml +0 -0
  407. /package/templates/{common → base}/timsquad/generators/service-spec.xml +0 -0
  408. /package/templates/{common → base}/timsquad/logs/_example.md +0 -0
  409. /package/templates/{common → base}/timsquad/logs/_template.md +0 -0
  410. /package/templates/{common → base}/timsquad/patterns/cqrs.xml +0 -0
  411. /package/templates/{common → base}/timsquad/patterns/event-sourcing.xml +0 -0
  412. /package/templates/{common → base}/timsquad/patterns/repository.xml +0 -0
  413. /package/templates/{common → base}/timsquad/process/phase-checklist.yaml +0 -0
  414. /package/templates/{common → base}/timsquad/process/state-machine.xml +0 -0
  415. /package/templates/{common → base}/timsquad/process/validation-rules.xml +0 -0
  416. /package/templates/{common → base}/timsquad/process/workflow-base.xml +0 -0
  417. /package/templates/{common → base}/timsquad/retrospective/cycle-report.template.md +0 -0
  418. /package/templates/{common → base}/timsquad/retrospective/patterns/failure-patterns.md +0 -0
  419. /package/templates/{common → base}/timsquad/retrospective/patterns/success-patterns.md +0 -0
  420. /package/templates/{common → base}/timsquad/retrospective/retrospective-config.xml +0 -0
  421. /package/templates/{common → base}/timsquad/retrospective/retrospective-state.xml +0 -0
  422. /package/templates/{common → base}/timsquad/ssot/adr/ADR-000-template.md +0 -0
  423. /package/templates/{common → base}/timsquad/ssot/adr/ADR-001-example.md +0 -0
  424. /package/templates/{common → base}/timsquad/ssot/data-design.template.md +0 -0
  425. /package/templates/{common → base}/timsquad/ssot/deployment-spec.template.md +0 -0
  426. /package/templates/{common → base}/timsquad/ssot/env-config.template.md +0 -0
  427. /package/templates/{common → base}/timsquad/ssot/error-codes.template.md +0 -0
  428. /package/templates/{common → base}/timsquad/ssot/functional-spec.template.md +0 -0
  429. /package/templates/{common → base}/timsquad/ssot/glossary.template.md +0 -0
  430. /package/templates/{common → base}/timsquad/ssot/integration-spec.template.md +0 -0
  431. /package/templates/{common → base}/timsquad/ssot/planning.template.md +0 -0
  432. /package/templates/{common → base}/timsquad/ssot/prd.template.md +0 -0
  433. /package/templates/{common → base}/timsquad/ssot/requirements.template.md +0 -0
  434. /package/templates/{common → base}/timsquad/ssot/security-spec.template.md +0 -0
  435. /package/templates/{common → base}/timsquad/ssot/service-spec.template.md +0 -0
  436. /package/templates/{common → base}/timsquad/ssot/test-spec.template.md +0 -0
  437. /package/templates/{common → base}/timsquad/ssot/ui-ux-spec.template.md +0 -0
  438. /package/templates/{common → base}/timsquad/state/workspace.xml +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-backup.d.ts","sourceRoot":"","sources":["../../src/lib/upgrade-backup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,UAAU,cAAc;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAYD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAS3F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Upgrade backup/restore module.
3
+ * Creates a single backup directory before each upgrade, enabling rollback to the previous version.
4
+ */
5
+ import path from 'path';
6
+ import fs from 'fs-extra';
7
+ const BACKUP_DIR = '.timsquad/.upgrade-backup';
8
+ const MANIFEST_FILE = 'backup-manifest.json';
9
+ /** Assets to back up before upgrade (relative to project root) */
10
+ const BACKUP_TARGETS = [
11
+ { path: '.claude/agents', type: 'dir' },
12
+ { path: '.claude/skills', type: 'dir' },
13
+ { path: '.claude/knowledge', type: 'dir' },
14
+ { path: '.claude/rules', type: 'dir' },
15
+ { path: '.claude/settings.json', type: 'file' },
16
+ { path: 'CLAUDE.md', type: 'file' },
17
+ ];
18
+ /**
19
+ * Create backup of all upgradeable assets before upgrade.
20
+ * Overwrites any existing backup (single backup only).
21
+ */
22
+ export async function createUpgradeBackup(projectRoot, currentVersion) {
23
+ const backupRoot = path.join(projectRoot, BACKUP_DIR);
24
+ // Remove previous backup
25
+ await fs.remove(backupRoot);
26
+ await fs.ensureDir(backupRoot);
27
+ const entries = [];
28
+ for (const target of BACKUP_TARGETS) {
29
+ const srcPath = path.join(projectRoot, target.path);
30
+ const destPath = path.join(backupRoot, target.path);
31
+ if (!await fs.pathExists(srcPath))
32
+ continue;
33
+ if (target.type === 'dir') {
34
+ await fs.copy(srcPath, destPath);
35
+ }
36
+ else {
37
+ await fs.ensureDir(path.dirname(destPath));
38
+ await fs.copy(srcPath, destPath);
39
+ }
40
+ entries.push(target.path);
41
+ }
42
+ // Write manifest
43
+ const manifest = {
44
+ framework_version: currentVersion,
45
+ created: new Date().toISOString(),
46
+ entries,
47
+ };
48
+ await fs.writeJson(path.join(backupRoot, MANIFEST_FILE), manifest, { spaces: 2 });
49
+ }
50
+ /**
51
+ * Restore from backup directory.
52
+ * Returns the framework_version that was backed up.
53
+ */
54
+ export async function restoreFromBackup(projectRoot) {
55
+ const backupRoot = path.join(projectRoot, BACKUP_DIR);
56
+ const manifest = await getBackupManifest(projectRoot);
57
+ if (!manifest) {
58
+ throw new Error('No upgrade backup found. Run "tsq upgrade" first to create a backup.');
59
+ }
60
+ for (const entry of manifest.entries) {
61
+ const srcPath = path.join(backupRoot, entry);
62
+ const destPath = path.join(projectRoot, entry);
63
+ if (!await fs.pathExists(srcPath))
64
+ continue;
65
+ // For directories, remove target first to avoid merge conflicts
66
+ const stat = await fs.stat(srcPath);
67
+ if (stat.isDirectory()) {
68
+ await fs.remove(destPath);
69
+ }
70
+ await fs.copy(srcPath, destPath, { overwrite: true });
71
+ }
72
+ return manifest.framework_version;
73
+ }
74
+ /**
75
+ * Check if a backup exists
76
+ */
77
+ export async function hasBackup(projectRoot) {
78
+ const manifestPath = path.join(projectRoot, BACKUP_DIR, MANIFEST_FILE);
79
+ return fs.pathExists(manifestPath);
80
+ }
81
+ /**
82
+ * Get backup manifest (null if no backup)
83
+ */
84
+ export async function getBackupManifest(projectRoot) {
85
+ const manifestPath = path.join(projectRoot, BACKUP_DIR, MANIFEST_FILE);
86
+ if (!await fs.pathExists(manifestPath))
87
+ return null;
88
+ try {
89
+ return await fs.readJson(manifestPath);
90
+ }
91
+ catch {
92
+ return null;
93
+ }
94
+ }
95
+ /**
96
+ * Remove backup directory after successful rollback
97
+ */
98
+ export async function removeBackup(projectRoot) {
99
+ await fs.remove(path.join(projectRoot, BACKUP_DIR));
100
+ }
101
+ //# sourceMappingURL=upgrade-backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-backup.js","sourceRoot":"","sources":["../../src/lib/upgrade-backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared version utilities.
3
+ * Used by update-check, upgrade command, and CLI entrypoint.
4
+ */
5
+ /** Default version for projects created before framework_version was introduced */
6
+ export declare const LEGACY_VERSION = "3.0.0";
7
+ /**
8
+ * Read installed package version from package.json
9
+ */
10
+ export declare function getInstalledVersion(): string;
11
+ /**
12
+ * Parse semver string to [major, minor, patch]
13
+ */
14
+ export declare function parseSemver(v: string): [number, number, number];
15
+ /**
16
+ * Returns true if version `a` is newer than version `b`
17
+ */
18
+ export declare function isNewer(a: string, b: string): boolean;
19
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,mFAAmF;AACnF,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAG/D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAMrD"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Shared version utilities.
3
+ * Used by update-check, upgrade command, and CLI entrypoint.
4
+ */
5
+ import { createRequire } from 'module';
6
+ /** Default version for projects created before framework_version was introduced */
7
+ export const LEGACY_VERSION = '3.0.0';
8
+ /**
9
+ * Read installed package version from package.json
10
+ */
11
+ export function getInstalledVersion() {
12
+ const require = createRequire(import.meta.url);
13
+ const pkg = require('../../package.json');
14
+ return pkg.version;
15
+ }
16
+ /**
17
+ * Parse semver string to [major, minor, patch]
18
+ */
19
+ export function parseSemver(v) {
20
+ const parts = v.split('.').map(Number);
21
+ return [parts[0] || 0, parts[1] || 0, parts[2] || 0];
22
+ }
23
+ /**
24
+ * Returns true if version `a` is newer than version `b`
25
+ */
26
+ export function isNewer(a, b) {
27
+ const [aMaj, aMin, aPat] = parseSemver(a);
28
+ const [bMaj, bMin, bPat] = parseSemver(b);
29
+ if (aMaj !== bMaj)
30
+ return aMaj > bMaj;
31
+ if (aMin !== bMin)
32
+ return aMin > bMin;
33
+ return aPat > bPat;
34
+ }
35
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC;IACtC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC;IACtC,OAAO,IAAI,GAAG,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { AutomationConfig } from '../types/config.js';
2
+ /**
3
+ * Tracked task in a sequence
4
+ */
5
+ export interface TrackedTask {
6
+ agent: string;
7
+ task_log: string;
8
+ completed_at: string;
9
+ }
10
+ /**
11
+ * Sequence state within workflow
12
+ */
13
+ export interface SequenceWorkflowState {
14
+ status: 'pending' | 'in_progress' | 'completed';
15
+ phase: string;
16
+ expected_agents: string[];
17
+ completed_tasks: TrackedTask[];
18
+ report_path: string | null;
19
+ l2_created: boolean;
20
+ }
21
+ /**
22
+ * Full workflow state
23
+ */
24
+ export interface WorkflowState {
25
+ schema_version: string;
26
+ automation: AutomationConfig;
27
+ current_phase: {
28
+ id: string;
29
+ started_at: string;
30
+ sequences: string[];
31
+ } | null;
32
+ sequences: Record<string, SequenceWorkflowState>;
33
+ completed_phases: string[];
34
+ pending_feedback: string[];
35
+ }
36
+ export declare function getWorkflowStatePath(projectRoot: string): string;
37
+ export declare function loadWorkflowState(projectRoot: string): Promise<WorkflowState>;
38
+ export declare function saveWorkflowState(projectRoot: string, state: WorkflowState): Promise<void>;
39
+ /**
40
+ * Check if a sequence is complete (all expected agents have tasks)
41
+ */
42
+ export declare function isSequenceComplete(seq: SequenceWorkflowState): boolean;
43
+ /**
44
+ * Find matching active sequence for an agent
45
+ * Returns null if 0 or multiple matches (ambiguous)
46
+ */
47
+ export declare function findSequenceForAgent(state: WorkflowState, agent: string): string | null;
48
+ //# sourceMappingURL=workflow-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-state.d.ts","sourceRoot":"","sources":["../../src/lib/workflow-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,GAAG,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACjD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAoBD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAWnF;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAItE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAaf"}
@@ -0,0 +1,67 @@
1
+ import path from 'path';
2
+ import fs from 'fs-extra';
3
+ const DEFAULT_AUTOMATION = {
4
+ sequence_log: true,
5
+ phase_log: true,
6
+ phase_gate: true,
7
+ metrics: true,
8
+ retro: true,
9
+ feedback: true,
10
+ };
11
+ const DEFAULT_STATE = {
12
+ schema_version: '1.0.0',
13
+ automation: DEFAULT_AUTOMATION,
14
+ current_phase: null,
15
+ sequences: {},
16
+ completed_phases: [],
17
+ pending_feedback: [],
18
+ };
19
+ export function getWorkflowStatePath(projectRoot) {
20
+ return path.join(projectRoot, '.timsquad', 'state', 'workflow.json');
21
+ }
22
+ export async function loadWorkflowState(projectRoot) {
23
+ const statePath = getWorkflowStatePath(projectRoot);
24
+ if (await fs.pathExists(statePath)) {
25
+ const data = await fs.readJson(statePath);
26
+ return {
27
+ ...DEFAULT_STATE,
28
+ ...data,
29
+ automation: { ...DEFAULT_AUTOMATION, ...(data.automation || {}) },
30
+ };
31
+ }
32
+ return { ...DEFAULT_STATE };
33
+ }
34
+ export async function saveWorkflowState(projectRoot, state) {
35
+ const statePath = getWorkflowStatePath(projectRoot);
36
+ await fs.ensureDir(path.dirname(statePath));
37
+ await fs.writeJson(statePath, state, { spaces: 2 });
38
+ }
39
+ /**
40
+ * Check if a sequence is complete (all expected agents have tasks)
41
+ */
42
+ export function isSequenceComplete(seq) {
43
+ if (seq.expected_agents.length === 0)
44
+ return false;
45
+ const completedAgents = new Set(seq.completed_tasks.map(t => t.agent));
46
+ return seq.expected_agents.every(a => completedAgents.has(a));
47
+ }
48
+ /**
49
+ * Find matching active sequence for an agent
50
+ * Returns null if 0 or multiple matches (ambiguous)
51
+ */
52
+ export function findSequenceForAgent(state, agent) {
53
+ const matches = [];
54
+ for (const [seqId, seq] of Object.entries(state.sequences)) {
55
+ if (seq.status === 'completed')
56
+ continue;
57
+ if (!seq.expected_agents.includes(agent))
58
+ continue;
59
+ // Agent hasn't completed a task in this sequence yet
60
+ const alreadyDone = seq.completed_tasks.some(t => t.agent === agent);
61
+ if (alreadyDone)
62
+ continue;
63
+ matches.push(seqId);
64
+ }
65
+ return matches.length === 1 ? matches[0] : null;
66
+ }
67
+ //# sourceMappingURL=workflow-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../../src/lib/workflow-state.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ProjectType, ProjectLevel, AgentType } from './project.js';
1
+ import type { ProjectType, ProjectLevel, AgentType, Platform, Domain } from './project.js';
2
2
  /**
3
3
  * Methodology settings
4
4
  */
@@ -44,6 +44,59 @@ export interface ConsensusConfig {
44
44
  enabled: boolean;
45
45
  required_for?: string[];
46
46
  }
47
+ /**
48
+ * Knowledge configuration
49
+ */
50
+ export interface KnowledgeConfig {
51
+ platforms: string[];
52
+ domains: string[];
53
+ checklists: string[];
54
+ }
55
+ /**
56
+ * Naming convention configuration
57
+ * PM이 Phase/Sequence/Task ID를 자동 생성할 때 사용하는 패턴
58
+ */
59
+ export interface NamingConfig {
60
+ phase: {
61
+ /** Phase ID 패턴 (기본: "P{N}") */
62
+ pattern: string;
63
+ /** Phase 순서 (SSOT 프로세스 순서) */
64
+ order: string[];
65
+ };
66
+ sequence: {
67
+ /** Sequence ID 패턴 (기본: "P{N}-S{NNN}") */
68
+ pattern: string;
69
+ /** 시퀀스 번호 zero-padding 자릿수 */
70
+ counter_pad: number;
71
+ };
72
+ task: {
73
+ /** Task ID 패턴 (기본: "P{N}-S{NNN}-T{NNN}") */
74
+ pattern: string;
75
+ /** 태스크 번호 zero-padding 자릿수 */
76
+ counter_pad: number;
77
+ };
78
+ }
79
+ /**
80
+ * Default naming configuration
81
+ */
82
+ export declare const DEFAULT_NAMING: NamingConfig;
83
+ /**
84
+ * Workflow automation configuration
85
+ */
86
+ export interface AutomationConfig {
87
+ /** Auto-create L2 sequence log when all expected agents complete tasks */
88
+ sequence_log: boolean;
89
+ /** Auto-create L3 phase log when all sequences complete */
90
+ phase_log: boolean;
91
+ /** Auto-run phase gate check after L3 creation */
92
+ phase_gate: boolean;
93
+ /** Auto-collect metrics on session end */
94
+ metrics: boolean;
95
+ /** Auto-generate retrospective on phase end */
96
+ retro: boolean;
97
+ /** Auto-execute L2/L3 feedback actions (workflow state, phase gate blocking) */
98
+ feedback: boolean;
99
+ }
47
100
  /**
48
101
  * Full TimSquad configuration
49
102
  */
@@ -53,17 +106,65 @@ export interface TimsquadConfig {
53
106
  type: ProjectType;
54
107
  level: ProjectLevel;
55
108
  created: string;
109
+ framework_version?: string;
110
+ domain?: Domain;
111
+ platform?: Platform;
112
+ stack?: string[];
113
+ workspaces?: string[];
56
114
  };
57
115
  methodology: MethodologyConfig;
58
116
  stack: StackConfig;
59
- agents: Record<AgentType, AgentConfig>;
117
+ agents: Partial<Record<AgentType, AgentConfig>>;
118
+ knowledge: KnowledgeConfig;
60
119
  quality: QualityConfig;
120
+ naming?: NamingConfig;
61
121
  consensus?: ConsensusConfig;
62
122
  ssot?: {
63
123
  required: string[];
64
124
  optional: string[];
65
125
  };
66
126
  }
127
+ /**
128
+ * Default configuration
129
+ */
130
+ /**
131
+ * Agent presets by project type
132
+ */
133
+ export declare const AGENT_PRESETS: Record<ProjectType, AgentType[]>;
134
+ /**
135
+ * Skill presets by project type.
136
+ * BASE_SKILLS are always included; these are the type-specific additions.
137
+ */
138
+ export declare const SKILL_PRESETS: Record<ProjectType, string[]>;
139
+ /** Skills always deployed regardless of project type */
140
+ export declare const BASE_SKILLS: string[];
141
+ /**
142
+ * Knowledge presets by project type.
143
+ * BASE_KNOWLEDGE is always included; these are the type-specific additions.
144
+ */
145
+ export declare const KNOWLEDGE_PRESETS: Record<ProjectType, string[]>;
146
+ /** Knowledge always deployed */
147
+ export declare const BASE_KNOWLEDGE: string[];
148
+ /**
149
+ * Domain-specific skill additions (v4.0 Composition Layer)
150
+ * Merged with SKILL_PRESETS[type] during init
151
+ */
152
+ export declare const DOMAIN_SKILL_MAP: Partial<Record<Domain, string[]>>;
153
+ /**
154
+ * Domain-specific knowledge additions (v4.0 Composition Layer)
155
+ * Merged with KNOWLEDGE_PRESETS[type] during init.
156
+ * Only add domain-unique knowledge not already in KNOWLEDGE_PRESETS.
157
+ */
158
+ export declare const DOMAIN_KNOWLEDGE_MAP: Partial<Record<Domain, string[]>>;
159
+ /**
160
+ * Stack-to-skill mapping (v4.0 Composition Layer)
161
+ * Auto-selects skills based on detected/configured stack
162
+ */
163
+ export declare const STACK_SKILL_MAP: Record<string, string[]>;
164
+ /**
165
+ * Build agents config from preset
166
+ */
167
+ export declare function buildAgentsConfig(projectType: ProjectType): Partial<Record<AgentType, AgentConfig>>;
67
168
  /**
68
169
  * Default configuration
69
170
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC;IACrD,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC;IACtC,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;IAC5C,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxD,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,YAAY,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CA+B1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,cAAc,CA0B5D,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,182 @@
1
+ /**
2
+ * Default naming configuration
3
+ */
4
+ export const DEFAULT_NAMING = {
5
+ phase: {
6
+ pattern: 'P{N}',
7
+ order: ['planning', 'design', 'implementation', 'review', 'security', 'deployment'],
8
+ },
9
+ sequence: {
10
+ pattern: 'P{N}-S{NNN}',
11
+ counter_pad: 3,
12
+ },
13
+ task: {
14
+ pattern: 'P{N}-S{NNN}-T{NNN}',
15
+ counter_pad: 3,
16
+ },
17
+ };
18
+ /**
19
+ * Default configuration
20
+ */
21
+ /**
22
+ * Agent presets by project type
23
+ */
24
+ export const AGENT_PRESETS = {
25
+ 'web-service': ['architect', 'developer', 'designer', 'qa'],
26
+ 'api-backend': ['architect', 'developer', 'dba', 'qa'],
27
+ 'fintech': ['architect', 'developer', 'dba', 'security', 'qa'],
28
+ 'web-app': ['architect', 'developer', 'designer', 'qa'],
29
+ 'platform': ['architect', 'developer', 'qa'],
30
+ 'infra': ['architect', 'developer', 'security'],
31
+ 'mobile-app': ['architect', 'developer', 'designer', 'qa'],
32
+ };
33
+ /**
34
+ * Skill presets by project type.
35
+ * BASE_SKILLS are always included; these are the type-specific additions.
36
+ */
37
+ export const SKILL_PRESETS = {
38
+ 'web-service': [
39
+ 'frontend/react', 'frontend/nextjs', 'backend/node',
40
+ 'database', 'database/prisma', 'ui-design',
41
+ 'security', 'methodology/tdd',
42
+ ],
43
+ 'web-app': [
44
+ 'frontend/react', 'frontend/nextjs',
45
+ 'ui-design', 'security', 'methodology/tdd',
46
+ ],
47
+ 'api-backend': [
48
+ 'backend/node', 'database', 'database/prisma',
49
+ 'security', 'methodology/tdd',
50
+ ],
51
+ 'platform': [
52
+ 'backend/node', 'methodology/tdd',
53
+ 'methodology/ddd', 'security',
54
+ ],
55
+ 'fintech': [
56
+ 'backend/node', 'database', 'database/prisma',
57
+ 'security', 'methodology/tdd', 'methodology/ddd',
58
+ ],
59
+ 'infra': [
60
+ 'security',
61
+ ],
62
+ 'mobile-app': [
63
+ 'mobile/flutter', 'mobile/dart',
64
+ 'security', 'methodology/tdd',
65
+ ],
66
+ };
67
+ /** Skills always deployed regardless of project type */
68
+ export const BASE_SKILLS = [
69
+ 'tsq-protocol',
70
+ 'controller',
71
+ 'coding', 'testing', 'typescript',
72
+ 'planning', 'architecture',
73
+ 'retrospective', 'prompt-engineering',
74
+ ];
75
+ /**
76
+ * Knowledge presets by project type.
77
+ * BASE_KNOWLEDGE is always included; these are the type-specific additions.
78
+ */
79
+ export const KNOWLEDGE_PRESETS = {
80
+ 'web-service': [
81
+ 'checklists/security', 'checklists/accessibility',
82
+ 'checklists/design-reference', 'checklists/architecture-review',
83
+ 'checklists/database-standards',
84
+ ],
85
+ 'web-app': [
86
+ 'checklists/security', 'checklists/accessibility',
87
+ 'checklists/design-reference', 'checklists/architecture-review',
88
+ ],
89
+ 'api-backend': [
90
+ 'checklists/security', 'checklists/architecture-review',
91
+ 'checklists/database-standards',
92
+ ],
93
+ 'platform': [
94
+ 'checklists/security', 'checklists/architecture-review',
95
+ ],
96
+ 'fintech': [
97
+ 'checklists/security', 'checklists/accessibility',
98
+ 'checklists/architecture-review', 'checklists/database-standards',
99
+ ],
100
+ 'infra': [
101
+ 'checklists/security', 'checklists/architecture-review',
102
+ ],
103
+ 'mobile-app': [
104
+ 'checklists/security', 'checklists/architecture-review',
105
+ ],
106
+ };
107
+ /** Knowledge always deployed */
108
+ export const BASE_KNOWLEDGE = [
109
+ 'checklists/ssot-validation',
110
+ 'templates/task-result',
111
+ 'templates/sequence-report',
112
+ 'platforms/_template',
113
+ 'domains/_template',
114
+ ];
115
+ /**
116
+ * Domain-specific skill additions (v4.0 Composition Layer)
117
+ * Merged with SKILL_PRESETS[type] during init
118
+ */
119
+ export const DOMAIN_SKILL_MAP = {
120
+ 'general-web': [], // web 스킬은 SKILL_PRESETS[type]에서 이미 커버
121
+ 'ml-engineering': ['methodology/tdd'],
122
+ 'fintech': ['methodology/ddd'], // DDD는 도메인 고유 (security는 type에서 커버)
123
+ 'mobile': ['mobile/flutter', 'mobile/dart'],
124
+ 'gamedev': [],
125
+ 'systems': [], // security는 type에서 커버
126
+ };
127
+ /**
128
+ * Domain-specific knowledge additions (v4.0 Composition Layer)
129
+ * Merged with KNOWLEDGE_PRESETS[type] during init.
130
+ * Only add domain-unique knowledge not already in KNOWLEDGE_PRESETS.
131
+ */
132
+ export const DOMAIN_KNOWLEDGE_MAP = {
133
+ 'general-web': [], // web knowledge는 KNOWLEDGE_PRESETS[type]에서 커버
134
+ 'fintech': [], // security/db는 KNOWLEDGE_PRESETS[fintech]에서 커버
135
+ 'ml-engineering': [],
136
+ 'mobile': [],
137
+ 'systems': [],
138
+ };
139
+ /**
140
+ * Stack-to-skill mapping (v4.0 Composition Layer)
141
+ * Auto-selects skills based on detected/configured stack
142
+ */
143
+ export const STACK_SKILL_MAP = {
144
+ 'react': ['frontend/react'],
145
+ 'nextjs': ['frontend/nextjs'],
146
+ 'node': ['backend/node'],
147
+ 'prisma': ['database/prisma'],
148
+ 'typescript': ['typescript'],
149
+ 'postgresql': ['database'],
150
+ 'mysql': ['database'],
151
+ 'flutter': ['mobile/flutter'],
152
+ 'dart': ['mobile/dart'],
153
+ };
154
+ /**
155
+ * Default agent model by type
156
+ */
157
+ const AGENT_MODELS = {
158
+ architect: 'opus',
159
+ developer: 'sonnet',
160
+ qa: 'sonnet',
161
+ security: 'sonnet',
162
+ dba: 'sonnet',
163
+ designer: 'sonnet',
164
+ };
165
+ /**
166
+ * Build agents config from preset
167
+ */
168
+ export function buildAgentsConfig(projectType) {
169
+ const activeAgents = AGENT_PRESETS[projectType];
170
+ const allAgents = ['architect', 'developer', 'qa', 'security', 'dba', 'designer'];
171
+ const agents = {};
172
+ for (const agent of allAgents) {
173
+ agents[agent] = {
174
+ model: AGENT_MODELS[agent],
175
+ enabled: activeAgents.includes(agent),
176
+ };
177
+ }
178
+ return agents;
179
+ }
1
180
  /**
2
181
  * Default configuration
3
182
  */
@@ -15,15 +194,11 @@ export const DEFAULT_CONFIG = {
15
194
  database: 'postgresql',
16
195
  orm: 'prisma',
17
196
  },
18
- agents: {
19
- planner: { model: 'opus', enabled: true },
20
- developer: { model: 'sonnet', enabled: true },
21
- qa: { model: 'sonnet', enabled: true },
22
- security: { model: 'sonnet', enabled: true },
23
- dba: { model: 'sonnet', enabled: true },
24
- designer: { model: 'sonnet', enabled: true },
25
- prompter: { model: 'sonnet', enabled: true },
26
- retro: { model: 'haiku', enabled: true },
197
+ agents: buildAgentsConfig('web-service'),
198
+ knowledge: {
199
+ platforms: [],
200
+ domains: [],
201
+ checklists: ['security'],
27
202
  },
28
203
  quality: {
29
204
  test_coverage: {