timsquad 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.ko.md +103 -111
  2. package/README.md +100 -108
  3. package/dist/commands/init.js +4 -8
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/{upgrade.d.ts → update.d.ts} +3 -3
  6. package/dist/commands/update.d.ts.map +1 -0
  7. package/dist/commands/{upgrade.js → update.js} +12 -17
  8. package/dist/commands/update.js.map +1 -0
  9. package/dist/daemon/event-queue.d.ts +3 -11
  10. package/dist/daemon/event-queue.d.ts.map +1 -1
  11. package/dist/daemon/event-queue.js +62 -203
  12. package/dist/daemon/event-queue.js.map +1 -1
  13. package/dist/daemon/index.d.ts +1 -1
  14. package/dist/daemon/index.d.ts.map +1 -1
  15. package/dist/daemon/index.js +15 -14
  16. package/dist/daemon/index.js.map +1 -1
  17. package/dist/index.js +3 -43
  18. package/dist/index.js.map +1 -1
  19. package/dist/lib/agent-generator.d.ts.map +1 -1
  20. package/dist/lib/agent-generator.js +10 -10
  21. package/dist/lib/agent-generator.js.map +1 -1
  22. package/dist/lib/compile-rules.d.ts.map +1 -1
  23. package/dist/lib/compile-rules.js +37 -4
  24. package/dist/lib/compile-rules.js.map +1 -1
  25. package/dist/lib/compiler.d.ts +1 -0
  26. package/dist/lib/compiler.d.ts.map +1 -1
  27. package/dist/lib/compiler.js +67 -11
  28. package/dist/lib/compiler.js.map +1 -1
  29. package/dist/{commands/log.d.ts → lib/log-utils.d.ts} +7 -15
  30. package/dist/lib/log-utils.d.ts.map +1 -0
  31. package/dist/lib/log-utils.js +347 -0
  32. package/dist/lib/log-utils.js.map +1 -0
  33. package/dist/lib/skill-generator.d.ts.map +1 -1
  34. package/dist/lib/skill-generator.js +4 -44
  35. package/dist/lib/skill-generator.js.map +1 -1
  36. package/dist/lib/ssot-map.d.ts.map +1 -1
  37. package/dist/lib/ssot-map.js +3 -0
  38. package/dist/lib/ssot-map.js.map +1 -1
  39. package/dist/lib/template.d.ts +10 -3
  40. package/dist/lib/template.d.ts.map +1 -1
  41. package/dist/lib/template.js +136 -22
  42. package/dist/lib/template.js.map +1 -1
  43. package/dist/lib/upgrade-backup.js +1 -1
  44. package/dist/lib/upgrade-backup.js.map +1 -1
  45. package/dist/types/config.d.ts.map +1 -1
  46. package/dist/types/config.js +34 -34
  47. package/dist/types/config.js.map +1 -1
  48. package/dist/types/feedback.d.ts +1 -54
  49. package/dist/types/feedback.d.ts.map +1 -1
  50. package/dist/types/feedback.js +1 -22
  51. package/dist/types/feedback.js.map +1 -1
  52. package/dist/types/project.d.ts +5 -0
  53. package/dist/types/project.d.ts.map +1 -1
  54. package/dist/types/project.js +15 -0
  55. package/dist/types/project.js.map +1 -1
  56. package/dist/types/ssot-map.d.ts +2 -0
  57. package/dist/types/ssot-map.d.ts.map +1 -1
  58. package/package.json +1 -1
  59. package/templates/base/agents/base/tsq-architect.md +1 -1
  60. package/templates/base/agents/base/tsq-dba.md +3 -1
  61. package/templates/base/agents/base/tsq-designer.md +3 -1
  62. package/templates/base/agents/base/tsq-developer.md +3 -1
  63. package/templates/base/agents/base/tsq-librarian.md +1 -1
  64. package/templates/base/agents/base/tsq-qa.md +3 -1
  65. package/templates/base/agents/base/tsq-security.md +3 -1
  66. package/templates/base/agents/overlays/platform/claude-code.md +2 -2
  67. package/templates/base/config.template.yaml +17 -28
  68. package/templates/base/knowledge/templates/task-result.md +5 -10
  69. package/templates/base/skills/_template/SKILL.md +1 -3
  70. package/templates/base/skills/{architecture → tsq-architecture}/SKILL.md +2 -2
  71. package/templates/base/skills/tsq-audit/SKILL.md +74 -0
  72. package/templates/base/skills/{methodology/bdd → tsq-bdd}/SKILL.md +14 -9
  73. package/templates/base/skills/{coding → tsq-coding}/SKILL.md +2 -4
  74. package/templates/base/skills/tsq-controller/SKILL.md +81 -0
  75. package/templates/base/skills/{mobile/dart → tsq-dart}/SKILL.md +5 -3
  76. package/templates/base/skills/{database → tsq-database}/SKILL.md +5 -2
  77. package/templates/base/skills/{methodology/ddd → tsq-ddd}/SKILL.md +15 -10
  78. package/templates/base/skills/{methodology/debugging → tsq-debugging}/SKILL.md +2 -2
  79. package/templates/base/skills/tsq-decompose/SKILL.md +117 -0
  80. package/templates/base/skills/tsq-delete/SKILL.md +72 -0
  81. package/templates/base/skills/{mobile/flutter → tsq-flutter}/SKILL.md +6 -3
  82. package/templates/base/skills/tsq-grill/SKILL.md +86 -0
  83. package/templates/base/skills/{backend/node → tsq-hono}/SKILL.md +6 -4
  84. package/templates/base/skills/tsq-librarian/SKILL.md +78 -0
  85. package/templates/base/skills/tsq-log/SKILL.md +30 -0
  86. package/templates/base/skills/{frontend/nextjs → tsq-nextjs}/SKILL.md +14 -9
  87. package/templates/base/skills/{planning → tsq-planning}/SKILL.md +2 -2
  88. package/templates/base/skills/{database/prisma → tsq-prisma}/SKILL.md +15 -9
  89. package/templates/base/skills/{product-audit → tsq-product-audit}/SKILL.md +2 -4
  90. package/templates/base/skills/{prompt-engineering → tsq-prompt}/SKILL.md +6 -4
  91. package/templates/base/skills/tsq-protocol/SKILL.md +85 -33
  92. package/templates/base/skills/{frontend/react → tsq-react}/SKILL.md +6 -3
  93. package/templates/base/skills/tsq-retro/SKILL.md +86 -0
  94. package/templates/base/skills/tsq-retro/references/feedback-guide.md +58 -0
  95. package/templates/base/skills/tsq-retro/references/improve-protocol.md +87 -0
  96. package/templates/base/skills/{security → tsq-security}/SKILL.md +2 -4
  97. package/templates/base/skills/{spec → tsq-spec}/SKILL.md +4 -6
  98. package/templates/base/skills/{stability-verification → tsq-stability}/SKILL.md +3 -3
  99. package/templates/base/skills/tsq-start/SKILL.md +90 -0
  100. package/templates/base/skills/tsq-start/references/onboarding-questions.md +177 -0
  101. package/templates/base/skills/tsq-status/SKILL.md +32 -0
  102. package/templates/base/skills/{methodology/tdd → tsq-tdd}/SKILL.md +6 -3
  103. package/templates/base/skills/{testing → tsq-testing}/SKILL.md +5 -7
  104. package/templates/base/skills/{typescript → tsq-typescript}/SKILL.md +2 -2
  105. package/templates/base/skills/{ui-design → tsq-ui}/SKILL.md +2 -2
  106. package/templates/base/skills/tsq-update/SKILL.md +48 -0
  107. package/templates/base/timsquad/constraints/competency-framework.xml +2 -2
  108. package/templates/base/timsquad/constraints/ssot-schema.xml +2 -2
  109. package/templates/base/timsquad/process/phase-checklist.yaml +1 -1
  110. package/templates/base/timsquad/process/state-machine.xml +2 -2
  111. package/templates/base/timsquad/process/validation-rules.xml +8 -8
  112. package/templates/base/timsquad/process/workflow-base.xml +8 -8
  113. package/templates/base/timsquad/retrospective/cycle-report.template.md +2 -2
  114. package/templates/base/timsquad/retrospective/patterns/failure-patterns.md +1 -1
  115. package/templates/base/timsquad/retrospective/patterns/success-patterns.md +2 -2
  116. package/templates/base/timsquad/retrospective/retrospective-state.xml +2 -2
  117. package/templates/base/timsquad/ssot/audit-trail-spec.template.md +155 -0
  118. package/templates/base/timsquad/ssot/compliance-matrix.template.md +105 -0
  119. package/templates/base/timsquad/ssot/component-map.template.md +181 -0
  120. package/templates/base/timsquad/ssot/data-design.template.md +4 -4
  121. package/templates/base/timsquad/ssot/deployment-spec.template.md +29 -22
  122. package/templates/base/timsquad/ssot/env-config.template.md +4 -2
  123. package/templates/base/timsquad/ssot/error-codes.template.md +3 -3
  124. package/templates/base/timsquad/ssot/functional-spec.template.md +40 -3
  125. package/templates/base/timsquad/ssot/glossary.template.md +2 -2
  126. package/templates/base/timsquad/ssot/infra-topology.template.md +191 -0
  127. package/templates/base/timsquad/ssot/integration-spec.template.md +2 -2
  128. package/templates/base/timsquad/ssot/monitoring-spec.template.md +185 -0
  129. package/templates/base/timsquad/ssot/navigation-map.template.md +154 -0
  130. package/templates/base/timsquad/ssot/performance-budget.template.md +132 -0
  131. package/templates/base/timsquad/ssot/planning.template.md +3 -3
  132. package/templates/base/timsquad/ssot/prd/_template.md +73 -0
  133. package/templates/base/timsquad/ssot/prd.template.md +10 -21
  134. package/templates/base/timsquad/ssot/requirements.template.md +3 -3
  135. package/templates/base/timsquad/ssot/sdk-spec.template.md +223 -0
  136. package/templates/base/timsquad/ssot/service-spec.template.md +3 -3
  137. package/templates/base/timsquad/ssot/state-machine.template.md +127 -0
  138. package/templates/base/timsquad/ssot/ui-ux-spec.template.md +43 -3
  139. package/templates/base/timsquad/ssot-map.template.yaml +28 -0
  140. package/templates/base/timsquad/state/workspace.xml +11 -11
  141. package/templates/platforms/claude-code/rules/adr-rules.md +1 -1
  142. package/templates/platforms/claude-code/rules/build-gate.md +1 -1
  143. package/templates/platforms/claude-code/rules/completion-verification.md +0 -2
  144. package/templates/platforms/claude-code/rules/context-monitor.md +1 -1
  145. package/templates/platforms/claude-code/rules/feedback-routing.md +2 -2
  146. package/templates/platforms/claude-code/rules/phase-management.md +2 -2
  147. package/templates/platforms/claude-code/rules/plan-review.md +2 -2
  148. package/templates/platforms/claude-code/rules/quality-guards.md +0 -2
  149. package/templates/platforms/claude-code/rules/sequence-management.md +15 -15
  150. package/templates/platforms/claude-code/rules/session-notes.md +1 -1
  151. package/templates/platforms/claude-code/rules/workspace-sync.md +1 -1
  152. package/templates/platforms/claude-code/scripts/build-gate.sh +6 -1
  153. package/templates/platforms/claude-code/scripts/change-scope-guard.sh +1 -4
  154. package/templates/platforms/claude-code/scripts/check-capability.sh +68 -0
  155. package/templates/platforms/claude-code/scripts/completion-guard.sh +62 -4
  156. package/templates/platforms/claude-code/scripts/context-restore.sh +33 -6
  157. package/templates/platforms/claude-code/scripts/phase-guard.sh +2 -5
  158. package/templates/platforms/claude-code/scripts/pre-compact.sh +3 -3
  159. package/templates/platforms/claude-code/scripts/safe-guard.sh +2 -5
  160. package/templates/platforms/claude-code/scripts/subagent-start.sh +11 -0
  161. package/templates/platforms/claude-code/scripts/subagent-stop.sh +11 -0
  162. package/templates/platforms/claude-code/settings.json +20 -74
  163. package/templates/project-types/api-backend/config.yaml +9 -5
  164. package/templates/project-types/api-backend/process/workflow.xml +2 -2
  165. package/templates/project-types/fintech/config.yaml +13 -19
  166. package/templates/project-types/fintech/ssot/audit-trail-spec.template.md +207 -0
  167. package/templates/project-types/fintech/ssot/compliance-matrix.template.md +187 -0
  168. package/templates/project-types/infra/config.yaml +7 -4
  169. package/templates/project-types/infra/process/workflow.xml +3 -3
  170. package/templates/project-types/mobile-app/config.yaml +8 -14
  171. package/templates/project-types/mobile-app/process/workflow.xml +4 -4
  172. package/templates/project-types/platform/config.yaml +8 -5
  173. package/templates/project-types/platform/process/workflow.xml +3 -3
  174. package/templates/project-types/web-app/config.yaml +9 -15
  175. package/templates/project-types/web-app/process/workflow.xml +6 -6
  176. package/templates/project-types/web-service/config.yaml +10 -19
  177. package/templates/project-types/web-service/process/workflow.xml +6 -6
  178. package/dist/commands/audit.d.ts +0 -22
  179. package/dist/commands/audit.d.ts.map +0 -1
  180. package/dist/commands/audit.js +0 -233
  181. package/dist/commands/audit.js.map +0 -1
  182. package/dist/commands/compile.d.ts +0 -3
  183. package/dist/commands/compile.d.ts.map +0 -1
  184. package/dist/commands/compile.js +0 -251
  185. package/dist/commands/compile.js.map +0 -1
  186. package/dist/commands/feedback.d.ts +0 -12
  187. package/dist/commands/feedback.d.ts.map +0 -1
  188. package/dist/commands/feedback.js +0 -382
  189. package/dist/commands/feedback.js.map +0 -1
  190. package/dist/commands/full.d.ts +0 -3
  191. package/dist/commands/full.d.ts.map +0 -1
  192. package/dist/commands/full.js +0 -88
  193. package/dist/commands/full.js.map +0 -1
  194. package/dist/commands/git/commit.d.ts +0 -3
  195. package/dist/commands/git/commit.d.ts.map +0 -1
  196. package/dist/commands/git/commit.js +0 -85
  197. package/dist/commands/git/commit.js.map +0 -1
  198. package/dist/commands/git/index.d.ts +0 -5
  199. package/dist/commands/git/index.d.ts.map +0 -1
  200. package/dist/commands/git/index.js +0 -5
  201. package/dist/commands/git/index.js.map +0 -1
  202. package/dist/commands/git/pr.d.ts +0 -3
  203. package/dist/commands/git/pr.d.ts.map +0 -1
  204. package/dist/commands/git/pr.js +0 -139
  205. package/dist/commands/git/pr.js.map +0 -1
  206. package/dist/commands/git/release.d.ts +0 -3
  207. package/dist/commands/git/release.d.ts.map +0 -1
  208. package/dist/commands/git/release.js +0 -153
  209. package/dist/commands/git/release.js.map +0 -1
  210. package/dist/commands/git/sync.d.ts +0 -3
  211. package/dist/commands/git/sync.d.ts.map +0 -1
  212. package/dist/commands/git/sync.js +0 -132
  213. package/dist/commands/git/sync.js.map +0 -1
  214. package/dist/commands/improve.d.ts +0 -3
  215. package/dist/commands/improve.d.ts.map +0 -1
  216. package/dist/commands/improve.js +0 -286
  217. package/dist/commands/improve.js.map +0 -1
  218. package/dist/commands/knowledge.d.ts +0 -3
  219. package/dist/commands/knowledge.d.ts.map +0 -1
  220. package/dist/commands/knowledge.js +0 -316
  221. package/dist/commands/knowledge.js.map +0 -1
  222. package/dist/commands/log.d.ts.map +0 -1
  223. package/dist/commands/log.js +0 -1468
  224. package/dist/commands/log.js.map +0 -1
  225. package/dist/commands/meta-index.d.ts +0 -3
  226. package/dist/commands/meta-index.d.ts.map +0 -1
  227. package/dist/commands/meta-index.js +0 -431
  228. package/dist/commands/meta-index.js.map +0 -1
  229. package/dist/commands/metrics.d.ts +0 -3
  230. package/dist/commands/metrics.d.ts.map +0 -1
  231. package/dist/commands/metrics.js +0 -843
  232. package/dist/commands/metrics.js.map +0 -1
  233. package/dist/commands/quick.d.ts +0 -3
  234. package/dist/commands/quick.d.ts.map +0 -1
  235. package/dist/commands/quick.js +0 -136
  236. package/dist/commands/quick.js.map +0 -1
  237. package/dist/commands/retro.d.ts +0 -3
  238. package/dist/commands/retro.d.ts.map +0 -1
  239. package/dist/commands/retro.js +0 -885
  240. package/dist/commands/retro.js.map +0 -1
  241. package/dist/commands/session.d.ts +0 -3
  242. package/dist/commands/session.d.ts.map +0 -1
  243. package/dist/commands/session.js +0 -346
  244. package/dist/commands/session.js.map +0 -1
  245. package/dist/commands/skills.d.ts +0 -12
  246. package/dist/commands/skills.d.ts.map +0 -1
  247. package/dist/commands/skills.js +0 -228
  248. package/dist/commands/skills.js.map +0 -1
  249. package/dist/commands/status.d.ts +0 -3
  250. package/dist/commands/status.d.ts.map +0 -1
  251. package/dist/commands/status.js +0 -127
  252. package/dist/commands/status.js.map +0 -1
  253. package/dist/commands/upgrade.d.ts.map +0 -1
  254. package/dist/commands/upgrade.js.map +0 -1
  255. package/dist/commands/watch.d.ts +0 -3
  256. package/dist/commands/watch.d.ts.map +0 -1
  257. package/dist/commands/watch.js +0 -213
  258. package/dist/commands/watch.js.map +0 -1
  259. package/dist/commands/workflow.d.ts +0 -5
  260. package/dist/commands/workflow.d.ts.map +0 -1
  261. package/dist/commands/workflow.js +0 -781
  262. package/dist/commands/workflow.js.map +0 -1
  263. package/templates/base/skills/audit/SKILL.md +0 -66
  264. package/templates/base/skills/controller/SKILL.md +0 -77
  265. package/templates/base/skills/controller/delegation/developer.md +0 -25
  266. package/templates/base/skills/controller/delegation/librarian.md +0 -33
  267. package/templates/base/skills/controller/delegation/reviewer.md +0 -19
  268. package/templates/base/skills/controller/triggers/phase-complete.md +0 -25
  269. package/templates/base/skills/controller/triggers/sequence-complete.md +0 -15
  270. package/templates/base/skills/controller/triggers/ssot-changed.md +0 -14
  271. package/templates/base/skills/controller/triggers/task-complete.md +0 -14
  272. package/templates/base/skills/librarian/SKILL.md +0 -53
  273. package/templates/base/skills/main-session-constraints/SKILL.md +0 -62
  274. package/templates/base/skills/retrospective/SKILL.md +0 -77
  275. package/templates/base/skills/review/SKILL.md +0 -72
  276. package/templates/base/skills/tsq-cli/SKILL.md +0 -73
  277. package/templates/base/skills/tsq-cli/references/cli-reference.md +0 -92
  278. package/templates/base/timsquad/feedback/feedback-router.sh +0 -341
  279. package/templates/base/timsquad/feedback/routing-rules.yaml +0 -352
  280. package/templates/platforms/claude-code/CLAUDE.md.template +0 -89
  281. package/templates/platforms/claude-code/rules/skill-suggest.md +0 -27
  282. package/templates/platforms/claude-code/scripts/skill-inject.sh +0 -216
  283. package/templates/platforms/claude-code/scripts/skill-rules.json +0 -95
  284. package/templates/platforms/claude-code/scripts/skill-suggest.sh +0 -105
  285. package/templates/platforms/claude-code/scripts/subagent-inject.sh +0 -53
  286. /package/templates/base/skills/{architecture → tsq-architecture}/references/adr-template.md +0 -0
  287. /package/templates/base/skills/{architecture → tsq-architecture}/references/api-design.md +0 -0
  288. /package/templates/base/skills/{methodology/bdd → tsq-bdd}/rules/gherkin-patterns.md +0 -0
  289. /package/templates/base/skills/{coding → tsq-coding}/rules/async-patterns.md +0 -0
  290. /package/templates/base/skills/{coding → tsq-coding}/rules/code-organization.md +0 -0
  291. /package/templates/base/skills/{coding → tsq-coding}/rules/error-handling.md +0 -0
  292. /package/templates/base/skills/{coding → tsq-coding}/rules/patterns.md +0 -0
  293. /package/templates/base/skills/{coding → tsq-coding}/rules/type-safety.md +0 -0
  294. /package/templates/base/skills/{controller → tsq-controller}/memory/.gitkeep +0 -0
  295. /package/templates/base/skills/{controller → tsq-controller}/references/README.md +0 -0
  296. /package/templates/base/skills/{controller → tsq-controller}/rules/README.md +0 -0
  297. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/async-patterns.md +0 -0
  298. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/code-style.md +0 -0
  299. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/null-safety.md +0 -0
  300. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/type-system.md +0 -0
  301. /package/templates/base/skills/{database → tsq-database}/rules/query-optimization.md +0 -0
  302. /package/templates/base/skills/{database → tsq-database}/rules/supabase-patterns.md +0 -0
  303. /package/templates/base/skills/{methodology/ddd → tsq-ddd}/rules/strategic-patterns.md +0 -0
  304. /package/templates/base/skills/{methodology/debugging → tsq-debugging}/references/root-cause-tracing.md +0 -0
  305. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/SKILL.md +0 -0
  306. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/references/ci-cd-pipeline.md +0 -0
  307. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/code-signing.md +0 -0
  308. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/codemagic-setup.md +0 -0
  309. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/fastlane-setup.md +0 -0
  310. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/github-actions.md +0 -0
  311. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/store-deployment.md +0 -0
  312. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/versioning.md +0 -0
  313. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/SKILL.md +0 -0
  314. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/references/i18n-architecture.md +0 -0
  315. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/arb-files.md +0 -0
  316. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/locale-switching.md +0 -0
  317. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/localization-setup.md +0 -0
  318. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/plural-gender.md +0 -0
  319. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/text-direction.md +0 -0
  320. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/SKILL.md +0 -0
  321. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/references/monitoring-architecture.md +0 -0
  322. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/analytics.md +0 -0
  323. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/crashlytics-setup.md +0 -0
  324. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/logging.md +0 -0
  325. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/performance-monitoring.md +0 -0
  326. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/sentry-integration.md +0 -0
  327. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/SKILL.md +0 -0
  328. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/references/api-client-architecture.md +0 -0
  329. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/caching.md +0 -0
  330. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/connectivity.md +0 -0
  331. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/dio-setup.md +0 -0
  332. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/error-handling.md +0 -0
  333. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/interceptors.md +0 -0
  334. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/retrofit-patterns.md +0 -0
  335. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/SKILL.md +0 -0
  336. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/references/notification-architecture.md +0 -0
  337. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/references/platform-setup.md +0 -0
  338. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/background-processing.md +0 -0
  339. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/deep-linking.md +0 -0
  340. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/fcm-setup.md +0 -0
  341. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/local-notifications.md +0 -0
  342. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/notification-handling.md +0 -0
  343. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/notification-permissions.md +0 -0
  344. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/rich-notifications.md +0 -0
  345. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/references/freezed-patterns.md +0 -0
  346. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/references/project-structure.md +0 -0
  347. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/animations.md +0 -0
  348. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/architecture.md +0 -0
  349. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/navigation-routing.md +0 -0
  350. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/performance.md +0 -0
  351. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/platform-adaptive.md +0 -0
  352. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/state-management.md +0 -0
  353. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/testing.md +0 -0
  354. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/widget-conventions.md +0 -0
  355. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/SKILL.md +0 -0
  356. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/references/mobile-security-checklist.md +0 -0
  357. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/api-key-protection.md +0 -0
  358. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/authentication.md +0 -0
  359. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/data-protection.md +0 -0
  360. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/obfuscation.md +0 -0
  361. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/secure-storage.md +0 -0
  362. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/ssl-pinning.md +0 -0
  363. /package/templates/base/skills/{backend/node → tsq-hono}/rules/async-patterns.md +0 -0
  364. /package/templates/base/skills/{backend/node → tsq-hono}/rules/deployment.md +0 -0
  365. /package/templates/base/skills/{backend/node → tsq-hono}/rules/env-config.md +0 -0
  366. /package/templates/base/skills/{backend/node → tsq-hono}/rules/error-handling.md +0 -0
  367. /package/templates/base/skills/{backend/node → tsq-hono}/rules/hono-app-setup.md +0 -0
  368. /package/templates/base/skills/{backend/node → tsq-hono}/rules/jwt-auth.md +0 -0
  369. /package/templates/base/skills/{backend/node → tsq-hono}/rules/middleware.md +0 -0
  370. /package/templates/base/skills/{backend/node → tsq-hono}/rules/testing.md +0 -0
  371. /package/templates/base/skills/{frontend/nextjs → tsq-nextjs}/rules/app-router.md +0 -0
  372. /package/templates/base/skills/{planning → tsq-planning}/references/prd-guide.md +0 -0
  373. /package/templates/base/skills/{planning → tsq-planning}/references/requirements-guide.md +0 -0
  374. /package/templates/base/skills/{database/prisma → tsq-prisma}/rules/queries.md +0 -0
  375. /package/templates/base/skills/{database/prisma → tsq-prisma}/rules/schema-design.md +0 -0
  376. /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/01-security.md +0 -0
  377. /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/02-performance.md +0 -0
  378. /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/03-seo.md +0 -0
  379. /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/04-accessibility.md +0 -0
  380. /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/05-ui-ux.md +0 -0
  381. /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/06-architecture.md +0 -0
  382. /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/07-functional-requirements.md +0 -0
  383. /package/templates/base/skills/{product-audit → tsq-product-audit}/rules/audit-protocol.md +0 -0
  384. /package/templates/base/skills/{product-audit → tsq-product-audit}/rules/false-positive-guard.md +0 -0
  385. /package/templates/base/skills/{product-audit → tsq-product-audit}/rules/scoring-criteria.md +0 -0
  386. /package/templates/base/skills/{product-audit → tsq-product-audit}/templates/improvement-plan-template.md +0 -0
  387. /package/templates/base/skills/{product-audit → tsq-product-audit}/templates/report-template.md +0 -0
  388. /package/templates/base/skills/{frontend/react → tsq-react}/rules/_sections.md +0 -0
  389. /package/templates/base/skills/{frontend/react → tsq-react}/rules/anti-patterns.md +0 -0
  390. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-api-routes.md +0 -0
  391. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-defer-await.md +0 -0
  392. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-dependencies.md +0 -0
  393. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-parallel.md +0 -0
  394. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-suspense-boundaries.md +0 -0
  395. /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-barrel-imports.md +0 -0
  396. /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-defer-third-party.md +0 -0
  397. /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-dynamic-imports.md +0 -0
  398. /package/templates/base/skills/{frontend/react → tsq-react}/rules/component-conventions.md +0 -0
  399. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-combine-iterations.md +0 -0
  400. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-early-exit.md +0 -0
  401. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-index-maps.md +0 -0
  402. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-set-map-lookups.md +0 -0
  403. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-conditional-render.md +0 -0
  404. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-content-visibility.md +0 -0
  405. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-hoist-jsx.md +0 -0
  406. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-defer-reads.md +0 -0
  407. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-derived-state.md +0 -0
  408. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-memo.md +0 -0
  409. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-transitions.md +0 -0
  410. /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-after-nonblocking.md +0 -0
  411. /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-cache-react.md +0 -0
  412. /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-parallel-fetching.md +0 -0
  413. /package/templates/base/skills/{frontend/react → tsq-react}/rules/state-location.md +0 -0
  414. /package/templates/base/skills/{retrospective → tsq-retro}/references/improvement-template.md +0 -0
  415. /package/templates/base/skills/{security → tsq-security}/rules/auth-patterns.md +0 -0
  416. /package/templates/base/skills/{security → tsq-security}/rules/dependency-security.md +0 -0
  417. /package/templates/base/skills/{security → tsq-security}/rules/input-validation.md +0 -0
  418. /package/templates/base/skills/{security → tsq-security}/rules/owasp-examples.md +0 -0
  419. /package/templates/base/skills/{security → tsq-security}/rules/secrets-management.md +0 -0
  420. /package/templates/base/skills/{security → tsq-security}/scripts/check-secrets.sh +0 -0
  421. /package/templates/base/skills/{stability-verification → tsq-stability}/references/release-checklist.md +0 -0
  422. /package/templates/base/skills/{stability-verification → tsq-stability}/references/security-fix-patterns.md +0 -0
  423. /package/templates/base/skills/{stability-verification → tsq-stability}/rules/verification-layers.md +0 -0
  424. /package/templates/base/skills/{stability-verification → tsq-stability}/rules/verification-workflow.md +0 -0
  425. /package/templates/base/skills/{stability-verification → tsq-stability}/scripts/verify.sh +0 -0
  426. /package/templates/base/skills/{methodology/tdd → tsq-tdd}/rules/real-world-example.md +0 -0
  427. /package/templates/base/skills/{methodology/tdd → tsq-tdd}/rules/techniques.md +0 -0
  428. /package/templates/base/skills/{testing → tsq-testing}/references/e2e-stability.md +0 -0
  429. /package/templates/base/skills/{testing → tsq-testing}/references/testing-patterns.md +0 -0
  430. /package/templates/base/skills/{typescript → tsq-typescript}/rules/type-patterns.md +0 -0
  431. /package/templates/base/skills/{typescript → tsq-typescript}/rules/utility-types.md +0 -0
@@ -1,30 +1,22 @@
1
- import { Command } from 'commander';
2
- import type { TaskLogEntry, TaskSemantic, SequenceLogEntry, AxisResult, PhaseGateResult } from '../types/task-log.js';
3
- export declare function registerLogCommand(program: Command): void;
1
+ /**
2
+ * Log utility functions extracted from commands/log.ts and commands/workflow.ts
3
+ * for use by the daemon event-queue (which cannot depend on CLI commands).
4
+ */
5
+ import type { TaskLogEntry, SequenceLogEntry, AxisResult, PhaseLogEntry, PhaseGateResult } from '../types/task-log.js';
4
6
  export declare function getTasksDir(projectRoot: string): string;
5
7
  export declare function getSequencesDir(projectRoot: string): string;
6
8
  export declare function getPhasesDir(projectRoot: string): string;
7
- export declare function loadAllTaskLogs(projectRoot: string, agent?: string): Promise<Array<{
8
- file: string;
9
- data: TaskLogEntry;
10
- }>>;
11
- export declare function hasSemantic(sem: TaskSemantic | undefined): boolean;
12
9
  export declare function loadSequenceTaskLogs(projectRoot: string, seqId: string): Promise<Array<{
13
10
  file: string;
14
11
  data: TaskLogEntry;
15
12
  }>>;
16
13
  export declare function makeAxisPlaceholder(): AxisResult;
17
- /**
18
- * Core: build SequenceLogEntry data (no I/O side effects except reading task logs)
19
- */
20
14
  export declare function buildSequenceLogData(projectRoot: string, seqId: string, options: {
21
15
  phase: string;
22
16
  report: string;
23
17
  verdict: string;
24
18
  conditions?: string;
25
19
  }): Promise<SequenceLogEntry>;
26
- /**
27
- * Core: build PhaseGateResult (no I/O side effects except reading sequence logs)
28
- */
29
20
  export declare function buildPhaseGateData(projectRoot: string, phaseId: string): Promise<PhaseGateResult>;
30
- //# sourceMappingURL=log.d.ts.map
21
+ export declare function buildPhaseLogData(projectRoot: string, phaseId: string, seqIds: string[]): Promise<PhaseLogEntry>;
22
+ //# sourceMappingURL=log-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-utils.d.ts","sourceRoot":"","sources":["../../src/lib/log-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EACV,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAC3E,MAAM,sBAAsB,CAAC;AAO9B,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAID,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAgCtD;AAID,wBAAgB,mBAAmB,IAAI,UAAU,CAEhD;AA0CD,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/E,OAAO,CAAC,gBAAgB,CAAC,CAoE3B;AAID,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAuG1B;AAID,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,aAAa,CAAC,CAuFxB"}
@@ -0,0 +1,347 @@
1
+ /**
2
+ * Log utility functions extracted from commands/log.ts and commands/workflow.ts
3
+ * for use by the daemon event-queue (which cannot depend on CLI commands).
4
+ */
5
+ import path from 'path';
6
+ import fs from 'fs-extra';
7
+ import { exists, listFiles } from '../utils/fs.js';
8
+ import { getTimestamp } from '../utils/date.js';
9
+ import { loadWorkflowState } from './workflow-state.js';
10
+ const LOG_SCHEMA_VERSION = '1.0.0';
11
+ // ── Directory helpers ──
12
+ export function getTasksDir(projectRoot) {
13
+ return path.join(projectRoot, '.timsquad', 'logs', 'tasks');
14
+ }
15
+ export function getSequencesDir(projectRoot) {
16
+ return path.join(projectRoot, '.timsquad', 'logs', 'sequences');
17
+ }
18
+ export function getPhasesDir(projectRoot) {
19
+ return path.join(projectRoot, '.timsquad', 'logs', 'phases');
20
+ }
21
+ // ── Task log loading ──
22
+ export async function loadSequenceTaskLogs(projectRoot, seqId) {
23
+ const tasksDir = getTasksDir(projectRoot);
24
+ if (!await exists(tasksDir))
25
+ return [];
26
+ const results = [];
27
+ // 1. Check nested directory: tasks/{SEQ-ID}/*.json
28
+ const seqDir = path.join(tasksDir, seqId);
29
+ if (await exists(seqDir)) {
30
+ const files = await listFiles('*.json', seqDir);
31
+ for (const file of files) {
32
+ try {
33
+ const data = await fs.readJson(path.join(seqDir, file));
34
+ results.push({ file: path.join(seqId, file), data });
35
+ }
36
+ catch { /* skip */ }
37
+ }
38
+ }
39
+ // 2. Check flat files with trace.sequence_id matching
40
+ const flatFiles = await listFiles('*.json', tasksDir);
41
+ for (const file of flatFiles) {
42
+ try {
43
+ const data = await fs.readJson(path.join(tasksDir, file));
44
+ if (data.trace?.sequence_id === seqId) {
45
+ if (!results.some(r => r.file === file)) {
46
+ results.push({ file, data });
47
+ }
48
+ }
49
+ }
50
+ catch { /* skip */ }
51
+ }
52
+ return results.sort((a, b) => a.file.localeCompare(b.file));
53
+ }
54
+ // ── Axis placeholder ──
55
+ export function makeAxisPlaceholder() {
56
+ return { verdict: 'n/a', details: 'See architect report', issues: [] };
57
+ }
58
+ // ── Sequence stats aggregation ──
59
+ function aggregateSequenceStats(taskLogs) {
60
+ let success = 0, failure = 0, error = 0, rework = 0;
61
+ const durations = [];
62
+ for (const { file, data } of taskLogs) {
63
+ const s = data.status;
64
+ if (s === 'completed' || s === 'success')
65
+ success++;
66
+ else if (s === 'failure')
67
+ failure++;
68
+ else if (s === 'error')
69
+ error++;
70
+ if (data.duration_ms)
71
+ durations.push(data.duration_ms);
72
+ const changedFiles = new Set(data.mechanical?.files?.map(f => f.path) || []);
73
+ for (const other of taskLogs) {
74
+ if (other.file === file)
75
+ continue;
76
+ if (other.data.agent === data.agent && other.file < file) {
77
+ const otherFiles = other.data.mechanical?.files?.map(f => f.path) || [];
78
+ if (otherFiles.some(f => changedFiles.has(f))) {
79
+ rework++;
80
+ break;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ const total = taskLogs.length;
86
+ return {
87
+ total, success, failure, error, rework,
88
+ first_pass_success_rate: total > 0 ? Math.round(((success) / total) * 100) / 100 : 0,
89
+ final_success_rate: total > 0 ? Math.round(((success) / total) * 100) / 100 : 0,
90
+ durations,
91
+ };
92
+ }
93
+ // ── Build L2 Sequence Log ──
94
+ export async function buildSequenceLogData(projectRoot, seqId, options) {
95
+ const taskLogs = await loadSequenceTaskLogs(projectRoot, seqId);
96
+ if (taskLogs.length === 0) {
97
+ const tasksDir = getTasksDir(projectRoot);
98
+ if (await exists(tasksDir)) {
99
+ const allFiles = await listFiles('*.json', tasksDir);
100
+ for (const file of allFiles) {
101
+ if (file.toLowerCase().includes(seqId.toLowerCase())) {
102
+ try {
103
+ const data = await fs.readJson(path.join(tasksDir, file));
104
+ taskLogs.push({ file, data });
105
+ }
106
+ catch { /* skip */ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ const stats = aggregateSequenceStats(taskLogs);
112
+ const now = getTimestamp();
113
+ const timestamps = taskLogs
114
+ .map(t => t.data.completed_at ? new Date(t.data.completed_at).getTime() : 0)
115
+ .filter(t => t > 0);
116
+ const startedAt = taskLogs[0]?.data.started_at || taskLogs[0]?.data.completed_at || now;
117
+ const duration = timestamps.length >= 2
118
+ ? Math.max(...timestamps) - Math.min(...timestamps)
119
+ : 0;
120
+ const meanDuration = stats.durations.length > 0
121
+ ? stats.durations.reduce((a, b) => a + b, 0) / stats.durations.length
122
+ : 0;
123
+ return {
124
+ schema_version: LOG_SCHEMA_VERSION,
125
+ trace: { phase_id: options.phase, sequence_id: seqId },
126
+ execution: {
127
+ status: stats.failure > 0 ? 'partial' : 'completed',
128
+ started_at: startedAt,
129
+ completed_at: now,
130
+ duration_ms: duration,
131
+ },
132
+ tasks: {
133
+ total: stats.total,
134
+ success: stats.success,
135
+ failure: stats.failure,
136
+ error: stats.error,
137
+ rework: stats.rework,
138
+ first_pass_success_rate: stats.first_pass_success_rate,
139
+ final_success_rate: stats.final_success_rate,
140
+ },
141
+ analysis: {
142
+ axis_1_consistency: makeAxisPlaceholder(),
143
+ axis_2_ssot_conformance: makeAxisPlaceholder(),
144
+ axis_3_cross_sequence: { ...makeAxisPlaceholder(), prev_sequence: null },
145
+ },
146
+ dora_derived: {
147
+ change_failure_rate: stats.total > 0 ? stats.failure / stats.total : 0,
148
+ rework_rate: stats.total > 0 ? stats.rework / stats.total : 0,
149
+ mean_task_duration_ms: meanDuration,
150
+ recovery_time_ms: null,
151
+ },
152
+ verdict: {
153
+ proceed: options.verdict !== 'hold',
154
+ conditions: options.conditions ? options.conditions.split(',').map(c => c.trim()) : [],
155
+ report_path: options.report,
156
+ },
157
+ };
158
+ }
159
+ // ── Build Phase Gate ──
160
+ export async function buildPhaseGateData(projectRoot, phaseId) {
161
+ const seqDir = getSequencesDir(projectRoot);
162
+ const result = {
163
+ phase_id: phaseId,
164
+ can_transition: true,
165
+ missing_sequences: [],
166
+ missing_reports: [],
167
+ blocking_conditions: [],
168
+ };
169
+ if (!await exists(seqDir)) {
170
+ result.can_transition = false;
171
+ result.blocking_conditions.push('No sequence logs directory');
172
+ return result;
173
+ }
174
+ const files = await listFiles('*.json', seqDir);
175
+ const phaseSeqs = [];
176
+ for (const file of files) {
177
+ try {
178
+ const data = await fs.readJson(path.join(seqDir, file));
179
+ if (data.trace.phase_id === phaseId) {
180
+ phaseSeqs.push(data);
181
+ }
182
+ }
183
+ catch { /* skip */ }
184
+ }
185
+ if (phaseSeqs.length === 0) {
186
+ result.can_transition = false;
187
+ result.blocking_conditions.push('No sequence logs found for this phase');
188
+ return result;
189
+ }
190
+ for (const seq of phaseSeqs) {
191
+ if (!seq.verdict.proceed) {
192
+ result.can_transition = false;
193
+ result.blocking_conditions.push(`${seq.trace.sequence_id}: verdict is HOLD`);
194
+ }
195
+ if (seq.verdict.report_path) {
196
+ const reportPath = path.resolve(projectRoot, seq.verdict.report_path);
197
+ if (!await exists(reportPath)) {
198
+ result.can_transition = false;
199
+ result.missing_reports.push(seq.verdict.report_path);
200
+ }
201
+ }
202
+ if (seq.verdict.conditions.length > 0) {
203
+ for (const c of seq.verdict.conditions) {
204
+ result.blocking_conditions.push(`${seq.trace.sequence_id}: condition "${c}"`);
205
+ }
206
+ }
207
+ }
208
+ // Check E2E test gate
209
+ try {
210
+ const pkgPath = path.join(projectRoot, 'package.json');
211
+ if (await exists(pkgPath)) {
212
+ const pkg = await fs.readJson(pkgPath);
213
+ if (pkg.scripts?.['test:e2e']) {
214
+ const e2eMarker = path.join(projectRoot, '.e2e-passed');
215
+ if (await exists(e2eMarker)) {
216
+ const markerContent = await fs.readFile(e2eMarker, 'utf-8');
217
+ try {
218
+ const marker = JSON.parse(markerContent);
219
+ if (marker.exit_code != null && marker.exit_code !== 0) {
220
+ result.can_transition = false;
221
+ result.blocking_conditions.push(`E2E tests failed (exit_code=${marker.exit_code})`);
222
+ }
223
+ else if (marker.expires_at && new Date(marker.expires_at) < new Date()) {
224
+ result.can_transition = false;
225
+ result.blocking_conditions.push('E2E marker expired — re-run E2E tests');
226
+ }
227
+ }
228
+ catch {
229
+ // bare touch fallback
230
+ }
231
+ }
232
+ else {
233
+ result.can_transition = false;
234
+ result.blocking_conditions.push('E2E tests not passed (missing .e2e-passed marker)');
235
+ }
236
+ }
237
+ }
238
+ }
239
+ catch { /* skip E2E gate */ }
240
+ // Check unresolved L2/L3 feedback
241
+ try {
242
+ const state = await loadWorkflowState(projectRoot);
243
+ if (state.pending_feedback?.length > 0) {
244
+ const feedbackDir = path.join(projectRoot, '.timsquad', 'feedback');
245
+ for (const fbId of state.pending_feedback) {
246
+ const fbPath = path.join(feedbackDir, `${fbId}.json`);
247
+ if (await exists(fbPath)) {
248
+ const fb = await fs.readJson(fbPath);
249
+ if (!fb.status || fb.status === 'open' || fb.status === 'in_review') {
250
+ result.can_transition = false;
251
+ result.blocking_conditions.push(`Unresolved L${fb.level} feedback: ${fbId} (${fb.trigger})`);
252
+ }
253
+ }
254
+ }
255
+ }
256
+ }
257
+ catch { /* skip feedback check */ }
258
+ return result;
259
+ }
260
+ // ── Build L3 Phase Log ──
261
+ export async function buildPhaseLogData(projectRoot, phaseId, seqIds) {
262
+ const seqDir = getSequencesDir(projectRoot);
263
+ const now = getTimestamp();
264
+ const seqLogs = [];
265
+ let completed = 0, blocked = 0;
266
+ for (const id of seqIds) {
267
+ const seqPath = path.join(seqDir, `${id}.json`);
268
+ if (await fs.pathExists(seqPath)) {
269
+ const data = await fs.readJson(seqPath);
270
+ seqLogs.push(data);
271
+ if (data.execution.status === 'completed')
272
+ completed++;
273
+ else
274
+ blocked++;
275
+ }
276
+ else {
277
+ blocked++;
278
+ }
279
+ }
280
+ let totalTasks = 0, totalSuccess = 0, totalRework = 0, totalFiles = 0;
281
+ let totalIssues1 = 0, totalIssues2 = 0, totalIssues3 = 0;
282
+ const durations = [];
283
+ for (const seq of seqLogs) {
284
+ totalTasks += seq.tasks.total;
285
+ totalSuccess += seq.tasks.success;
286
+ totalRework += seq.tasks.rework;
287
+ durations.push(seq.execution.duration_ms);
288
+ for (const axis of Object.values(seq.analysis)) {
289
+ const r = axis;
290
+ for (const issue of r.issues || []) {
291
+ if (issue.level === 1)
292
+ totalIssues1++;
293
+ else if (issue.level === 2)
294
+ totalIssues2++;
295
+ else
296
+ totalIssues3++;
297
+ }
298
+ }
299
+ }
300
+ for (const seqId of seqIds) {
301
+ const taskLogs = await loadSequenceTaskLogs(projectRoot, seqId);
302
+ for (const { data } of taskLogs) {
303
+ totalFiles += data.mechanical?.files?.length || 0;
304
+ }
305
+ }
306
+ const timestamps = seqLogs
307
+ .map(s => [new Date(s.execution.started_at).getTime(), new Date(s.execution.completed_at).getTime()])
308
+ .flat()
309
+ .filter(t => t > 0);
310
+ const leadTime = timestamps.length >= 2 ? Math.max(...timestamps) - Math.min(...timestamps) : 0;
311
+ return {
312
+ schema_version: LOG_SCHEMA_VERSION,
313
+ trace: { phase_id: phaseId },
314
+ execution: {
315
+ status: blocked > 0 ? 'aborted' : 'completed',
316
+ started_at: seqLogs[0]?.execution.started_at || now,
317
+ completed_at: now,
318
+ duration_ms: leadTime,
319
+ sessions_count: seqLogs.length,
320
+ },
321
+ sequences: { total: seqIds.length, completed, blocked, ids: seqIds },
322
+ aggregate_metrics: {
323
+ total_tasks: totalTasks,
324
+ task_success_rate: totalTasks > 0 ? totalSuccess / totalTasks : 0,
325
+ task_rework_rate: totalTasks > 0 ? totalRework / totalTasks : 0,
326
+ total_files_changed: totalFiles,
327
+ total_issues: { level_1: totalIssues1, level_2: totalIssues2, level_3: totalIssues3 },
328
+ ssot_conformance_rate: 0,
329
+ mean_sequence_duration_ms: durations.length > 0 ? durations.reduce((a, b) => a + b, 0) / durations.length : 0,
330
+ },
331
+ dora_derived: {
332
+ lead_time_ms: leadTime,
333
+ change_failure_rate: totalTasks > 0 ? (totalTasks - totalSuccess) / totalTasks : 0,
334
+ mean_recovery_time_ms: null,
335
+ },
336
+ planning: {
337
+ original_sequences: seqIds,
338
+ added_sequences: [],
339
+ removed_sequences: [],
340
+ scope_changes: [],
341
+ plan_adherence_rate: 1,
342
+ },
343
+ retrospective: { keep: [], problem: [], try: [] },
344
+ knowledge_extracted: [],
345
+ };
346
+ }
347
+ //# sourceMappingURL=log-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-utils.js","sourceRoot":"","sources":["../../src/lib/log-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-generator.d.ts","sourceRoot":"","sources":["../../src/lib/skill-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAqBvD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAUhE;AA4BD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAsCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBjE;AA+ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAOnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EAAE,EACzB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAiBf"}
1
+ {"version":3,"file":"skill-generator.d.ts","sourceRoot":"","sources":["../../src/lib/skill-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAqBvD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAUhE;AA4BD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAsCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBjE;AA0BD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAOnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EAAE,EACzB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -21,7 +21,7 @@ function getMethodologySkills(config) {
21
21
  const dev = config.methodology?.development;
22
22
  if (!dev || dev === 'none')
23
23
  return [];
24
- return [`methodology/${dev}`];
24
+ return [`tsq-${dev}`];
25
25
  }
26
26
  /**
27
27
  * Get skills to deploy for a project.
@@ -131,61 +131,21 @@ export function validateSkillStructure(skillDir) {
131
131
  }
132
132
  /**
133
133
  * Remove skill directories that are not in the active list.
134
- * Preserves _template/ always.
134
+ * All skills are flat (tsq-* prefix), no nested structure.
135
135
  */
136
136
  async function removeInactiveSkills(destSkillsDir, activeSkills) {
137
137
  if (!await fs.pathExists(destSkillsDir))
138
138
  return;
139
- // Build a set of top-level directories to keep
140
- const keepSet = new Set();
141
- keepSet.add('_template');
142
- for (const skill of activeSkills) {
143
- // For nested skills like 'frontend/react', keep the top-level 'frontend'
144
- const topLevel = skill.split('/')[0];
145
- keepSet.add(topLevel);
146
- }
139
+ const keepSet = new Set(['_template', '_shared', ...activeSkills]);
147
140
  const entries = await fs.readdir(destSkillsDir, { withFileTypes: true });
148
141
  for (const entry of entries) {
149
142
  if (!entry.isDirectory())
150
143
  continue;
151
- if (keepSet.has(entry.name)) {
152
- // For parent dirs like 'frontend/', check subdirectories
153
- await removeInactiveSubSkills(path.join(destSkillsDir, entry.name), activeSkills, entry.name);
144
+ if (keepSet.has(entry.name))
154
145
  continue;
155
- }
156
- // Completely inactive top-level skill
157
146
  await fs.remove(path.join(destSkillsDir, entry.name));
158
147
  }
159
148
  }
160
- /**
161
- * For parent skill directories (e.g. frontend/, methodology/),
162
- * remove inactive sub-skills while keeping active ones.
163
- */
164
- async function removeInactiveSubSkills(parentDir, activeSkills, parentName) {
165
- const entries = await fs.readdir(parentDir, { withFileTypes: true });
166
- // Check if this directory itself is a skill (has SKILL.md)
167
- const hasSelfSkill = entries.some(e => e.name === 'SKILL.md');
168
- const isParentActive = activeSkills.includes(parentName);
169
- // If parent itself is an active skill, keep it
170
- if (hasSelfSkill && !isParentActive) {
171
- // Remove only SKILL.md and rules/ from parent, keep subdirs
172
- }
173
- for (const entry of entries) {
174
- if (!entry.isDirectory())
175
- continue;
176
- if (['rules', 'references', 'scripts', 'triggers', 'delegation', 'memory'].includes(entry.name))
177
- continue; // belongs to parent skill
178
- const subSkillPath = `${parentName}/${entry.name}`;
179
- if (!activeSkills.includes(subSkillPath)) {
180
- await fs.remove(path.join(parentDir, entry.name));
181
- }
182
- }
183
- // If parent directory is now empty (no SKILL.md, no subdirs), remove it
184
- const remaining = await fs.readdir(parentDir);
185
- if (remaining.length === 0) {
186
- await fs.remove(parentDir);
187
- }
188
- }
189
149
  // ─────────────────────────────────────────────────
190
150
  // Knowledge
191
151
  // ─────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"skill-generator.js","sourceRoot":"","sources":["../../src/lib/skill-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-generator.js","sourceRoot":"","sources":["../../src/lib/skill-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ssot-map.d.ts","sourceRoot":"","sources":["../../src/lib/ssot-map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIjF;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQ9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,GACb,iBAAiB,EAAE,CAErB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAGhE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GACnC,iBAAiB,EAAE,CAmBrB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgBhD"}
1
+ {"version":3,"file":"ssot-map.d.ts","sourceRoot":"","sources":["../../src/lib/ssot-map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIjF;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQ9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,GACb,iBAAiB,EAAE,CAErB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAGhE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GACnC,iBAAiB,EAAE,CAmBrB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkBhD"}
@@ -65,6 +65,9 @@ export async function validateSSOTMap(projectRoot, ssotMap) {
65
65
  // split 패턴 ({section} 등)은 검증 스킵
66
66
  if (doc.source.includes('{'))
67
67
  continue;
68
+ // optional 문서는 미존재 허용 (타입별 선택 배포)
69
+ if (doc.optional)
70
+ continue;
68
71
  const sourcePath = path.join(projectRoot, '.timsquad', 'ssot', doc.source);
69
72
  if (!await exists(sourcePath)) {
70
73
  missing.push(doc.source);
@@ -1 +1 @@
1
- {"version":3,"file":"ssot-map.js","sourceRoot":"","sources":["../../src/lib/ssot-map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAU,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,IAAc;IAEd,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,KAAoC;IAEpC,MAAM,IAAI,GAAwB,EAAE,CAAC;IAErC,qCAAqC;IACrC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,OAAgB;IAEhB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAe,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAE9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YACrD,gCAAgC;YAChC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"ssot-map.js","sourceRoot":"","sources":["../../src/lib/ssot-map.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,6 @@ export interface TemplateVariables {
13
13
  DATE: string;
14
14
  TIMESTAMP: string;
15
15
  INIT_DATE: string;
16
- ACTIVE_AGENTS: string;
17
- DELEGATION_RULES: string;
18
16
  }
19
17
  /**
20
18
  * Get templates directory path
@@ -35,7 +33,9 @@ export declare function copyAndProcessFile(src: string, dest: string, variables:
35
33
  /**
36
34
  * Copy directory recursively with variable substitution
37
35
  */
38
- export declare function copyDirectoryWithSubstitution(srcDir: string, destDir: string, variables: TemplateVariables): Promise<void>;
36
+ export declare function copyDirectoryWithSubstitution(srcDir: string, destDir: string, variables: TemplateVariables, options?: {
37
+ exclude?: string[];
38
+ }): Promise<void>;
39
39
  /**
40
40
  * Get required SSOT documents for project
41
41
  */
@@ -44,4 +44,11 @@ export declare function getRequiredDocuments(type: ProjectType, level: ProjectLe
44
44
  * Initialize project from templates
45
45
  */
46
46
  export declare function initializeProject(projectRoot: string, name: string, type: ProjectType, level: ProjectLevel, config?: TimsquadConfig, automationEnabled?: boolean): Promise<void>;
47
+ /**
48
+ * Inject or update TimSquad block in CLAUDE.md
49
+ * - If file exists with markers: replace between markers
50
+ * - If file exists without markers: prepend block
51
+ * - If file doesn't exist: create with block only
52
+ */
53
+ export declare function injectTimsquadBlock(claudeMdPath: string): Promise<void>;
47
54
  //# sourceMappingURL=template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,cAAc,GACtB,iBAAiB,CA0BnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CASzF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAIrF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,cAAc,EACvB,iBAAiB,UAAO,GACvB,OAAO,CAAC,IAAI,CAAC,CAmHf"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAmBD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,cAAc,GACtB,iBAAiB,CAcnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CASzF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAUrF;AAiGD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,cAAc,EACvB,iBAAiB,UAAO,GACvB,OAAO,CAAC,IAAI,CAAC,CAkHf;AAgFD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB7E"}