timsquad 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +347 -0
  3. package/bin/tsq.js +6 -0
  4. package/dist/commands/feedback.d.ts +3 -0
  5. package/dist/commands/feedback.d.ts.map +1 -0
  6. package/dist/commands/feedback.js +142 -0
  7. package/dist/commands/feedback.js.map +1 -0
  8. package/dist/commands/full.d.ts +3 -0
  9. package/dist/commands/full.d.ts.map +1 -0
  10. package/dist/commands/full.js +87 -0
  11. package/dist/commands/full.js.map +1 -0
  12. package/dist/commands/git/commit.d.ts +3 -0
  13. package/dist/commands/git/commit.d.ts.map +1 -0
  14. package/dist/commands/git/commit.js +88 -0
  15. package/dist/commands/git/commit.js.map +1 -0
  16. package/dist/commands/git/index.d.ts +5 -0
  17. package/dist/commands/git/index.d.ts.map +1 -0
  18. package/dist/commands/git/index.js +5 -0
  19. package/dist/commands/git/index.js.map +1 -0
  20. package/dist/commands/git/pr.d.ts +3 -0
  21. package/dist/commands/git/pr.d.ts.map +1 -0
  22. package/dist/commands/git/pr.js +138 -0
  23. package/dist/commands/git/pr.js.map +1 -0
  24. package/dist/commands/git/release.d.ts +3 -0
  25. package/dist/commands/git/release.d.ts.map +1 -0
  26. package/dist/commands/git/release.js +158 -0
  27. package/dist/commands/git/release.js.map +1 -0
  28. package/dist/commands/git/sync.d.ts +3 -0
  29. package/dist/commands/git/sync.d.ts.map +1 -0
  30. package/dist/commands/git/sync.js +132 -0
  31. package/dist/commands/git/sync.js.map +1 -0
  32. package/dist/commands/init.d.ts +3 -0
  33. package/dist/commands/init.d.ts.map +1 -0
  34. package/dist/commands/init.js +150 -0
  35. package/dist/commands/init.js.map +1 -0
  36. package/dist/commands/log.d.ts +3 -0
  37. package/dist/commands/log.d.ts.map +1 -0
  38. package/dist/commands/log.js +271 -0
  39. package/dist/commands/log.js.map +1 -0
  40. package/dist/commands/metrics.d.ts +3 -0
  41. package/dist/commands/metrics.d.ts.map +1 -0
  42. package/dist/commands/metrics.js +299 -0
  43. package/dist/commands/metrics.js.map +1 -0
  44. package/dist/commands/quick.d.ts +3 -0
  45. package/dist/commands/quick.d.ts.map +1 -0
  46. package/dist/commands/quick.js +136 -0
  47. package/dist/commands/quick.js.map +1 -0
  48. package/dist/commands/retro.d.ts +3 -0
  49. package/dist/commands/retro.d.ts.map +1 -0
  50. package/dist/commands/retro.js +280 -0
  51. package/dist/commands/retro.js.map +1 -0
  52. package/dist/commands/status.d.ts +3 -0
  53. package/dist/commands/status.d.ts.map +1 -0
  54. package/dist/commands/status.js +127 -0
  55. package/dist/commands/status.js.map +1 -0
  56. package/dist/commands/watch.d.ts +3 -0
  57. package/dist/commands/watch.d.ts.map +1 -0
  58. package/dist/commands/watch.js +213 -0
  59. package/dist/commands/watch.js.map +1 -0
  60. package/dist/index.d.ts +3 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +50 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/lib/config.d.ts +34 -0
  65. package/dist/lib/config.d.ts.map +1 -0
  66. package/dist/lib/config.js +108 -0
  67. package/dist/lib/config.js.map +1 -0
  68. package/dist/lib/project.d.ts +47 -0
  69. package/dist/lib/project.d.ts.map +1 -0
  70. package/dist/lib/project.js +191 -0
  71. package/dist/lib/project.js.map +1 -0
  72. package/dist/lib/template.d.ts +33 -0
  73. package/dist/lib/template.d.ts.map +1 -0
  74. package/dist/lib/template.js +151 -0
  75. package/dist/lib/template.js.map +1 -0
  76. package/dist/types/config.d.ts +75 -0
  77. package/dist/types/config.d.ts.map +1 -0
  78. package/dist/types/config.js +66 -0
  79. package/dist/types/config.js.map +1 -0
  80. package/dist/types/feedback.d.ts +59 -0
  81. package/dist/types/feedback.d.ts.map +1 -0
  82. package/dist/types/feedback.js +26 -0
  83. package/dist/types/feedback.js.map +1 -0
  84. package/dist/types/index.d.ts +4 -0
  85. package/dist/types/index.d.ts.map +1 -0
  86. package/dist/types/index.js +5 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/types/project.d.ts +89 -0
  89. package/dist/types/project.d.ts.map +1 -0
  90. package/dist/types/project.js +44 -0
  91. package/dist/types/project.js.map +1 -0
  92. package/dist/utils/colors.d.ts +30 -0
  93. package/dist/utils/colors.d.ts.map +1 -0
  94. package/dist/utils/colors.js +54 -0
  95. package/dist/utils/colors.js.map +1 -0
  96. package/dist/utils/date.d.ts +25 -0
  97. package/dist/utils/date.d.ts.map +1 -0
  98. package/dist/utils/date.js +65 -0
  99. package/dist/utils/date.js.map +1 -0
  100. package/dist/utils/fs.d.ts +49 -0
  101. package/dist/utils/fs.d.ts.map +1 -0
  102. package/dist/utils/fs.js +84 -0
  103. package/dist/utils/fs.js.map +1 -0
  104. package/dist/utils/prompts.d.ts +31 -0
  105. package/dist/utils/prompts.d.ts.map +1 -0
  106. package/dist/utils/prompts.js +95 -0
  107. package/dist/utils/prompts.js.map +1 -0
  108. package/dist/utils/yaml.d.ts +21 -0
  109. package/dist/utils/yaml.d.ts.map +1 -0
  110. package/dist/utils/yaml.js +40 -0
  111. package/dist/utils/yaml.js.map +1 -0
  112. package/package.json +71 -0
  113. package/templates/common/CLAUDE.md.template +254 -0
  114. package/templates/common/claude/agents/tsq-dba.md +290 -0
  115. package/templates/common/claude/agents/tsq-designer.md +304 -0
  116. package/templates/common/claude/agents/tsq-developer.md +118 -0
  117. package/templates/common/claude/agents/tsq-planner.md +90 -0
  118. package/templates/common/claude/agents/tsq-prompter.md +336 -0
  119. package/templates/common/claude/agents/tsq-qa.md +134 -0
  120. package/templates/common/claude/agents/tsq-retro.md +168 -0
  121. package/templates/common/claude/agents/tsq-security.md +190 -0
  122. package/templates/common/claude/skills/architecture/SKILL.md +123 -0
  123. package/templates/common/claude/skills/backend/node/SKILL.md +1015 -0
  124. package/templates/common/claude/skills/coding/SKILL.md +171 -0
  125. package/templates/common/claude/skills/database/prisma/SKILL.md +357 -0
  126. package/templates/common/claude/skills/frontend/nextjs/SKILL.md +279 -0
  127. package/templates/common/claude/skills/frontend/react/SKILL.md +1729 -0
  128. package/templates/common/claude/skills/methodology/bdd/SKILL.md +234 -0
  129. package/templates/common/claude/skills/methodology/ddd/SKILL.md +311 -0
  130. package/templates/common/claude/skills/methodology/tdd/SKILL.md +512 -0
  131. package/templates/common/claude/skills/planning/SKILL.md +90 -0
  132. package/templates/common/claude/skills/security/SKILL.md +234 -0
  133. package/templates/common/claude/skills/testing/SKILL.md +146 -0
  134. package/templates/common/claude/skills/typescript/SKILL.md +435 -0
  135. package/templates/common/config.template.yaml +131 -0
  136. package/templates/common/timsquad/architectures/clean/ARCHITECTURE.md +49 -0
  137. package/templates/common/timsquad/architectures/clean/backend.xml +210 -0
  138. package/templates/common/timsquad/architectures/clean/frontend.xml +148 -0
  139. package/templates/common/timsquad/architectures/fsd/ARCHITECTURE.md +67 -0
  140. package/templates/common/timsquad/architectures/fsd/frontend.xml +288 -0
  141. package/templates/common/timsquad/architectures/hexagonal/ARCHITECTURE.md +60 -0
  142. package/templates/common/timsquad/architectures/hexagonal/backend.xml +300 -0
  143. package/templates/common/timsquad/constraints/competency-framework.xml +501 -0
  144. package/templates/common/timsquad/constraints/ssot-schema.xml +433 -0
  145. package/templates/common/timsquad/feedback/feedback-router.sh +341 -0
  146. package/templates/common/timsquad/feedback/routing-rules.yaml +352 -0
  147. package/templates/common/timsquad/generators/data-design.xml +290 -0
  148. package/templates/common/timsquad/generators/prd.xml +280 -0
  149. package/templates/common/timsquad/generators/requirements.xml +220 -0
  150. package/templates/common/timsquad/generators/service-spec.xml +266 -0
  151. package/templates/common/timsquad/logs/_example.md +81 -0
  152. package/templates/common/timsquad/logs/_template.md +46 -0
  153. package/templates/common/timsquad/patterns/cqrs.xml +127 -0
  154. package/templates/common/timsquad/patterns/event-sourcing.xml +85 -0
  155. package/templates/common/timsquad/patterns/repository.xml +64 -0
  156. package/templates/common/timsquad/process/state-machine.xml +343 -0
  157. package/templates/common/timsquad/process/validation-rules.xml +308 -0
  158. package/templates/common/timsquad/process/workflow-base.xml +202 -0
  159. package/templates/common/timsquad/retrospective/cycle-report.template.md +205 -0
  160. package/templates/common/timsquad/retrospective/metrics/metrics-schema.json +203 -0
  161. package/templates/common/timsquad/retrospective/patterns/failure-patterns.md +199 -0
  162. package/templates/common/timsquad/retrospective/patterns/success-patterns.md +262 -0
  163. package/templates/common/timsquad/retrospective/retrospective-config.xml +294 -0
  164. package/templates/common/timsquad/retrospective/retrospective-state.xml +210 -0
  165. package/templates/common/timsquad/ssot/adr/ADR-000-template.md +121 -0
  166. package/templates/common/timsquad/ssot/adr/ADR-001-example.md +115 -0
  167. package/templates/common/timsquad/ssot/data-design.template.md +132 -0
  168. package/templates/common/timsquad/ssot/deployment-spec.template.md +384 -0
  169. package/templates/common/timsquad/ssot/env-config.template.md +346 -0
  170. package/templates/common/timsquad/ssot/error-codes.template.md +114 -0
  171. package/templates/common/timsquad/ssot/functional-spec.template.md +185 -0
  172. package/templates/common/timsquad/ssot/glossary.template.md +148 -0
  173. package/templates/common/timsquad/ssot/integration-spec.template.md +391 -0
  174. package/templates/common/timsquad/ssot/planning.template.md +94 -0
  175. package/templates/common/timsquad/ssot/prd.template.md +102 -0
  176. package/templates/common/timsquad/ssot/requirements.template.md +117 -0
  177. package/templates/common/timsquad/ssot/security-spec.template.md +309 -0
  178. package/templates/common/timsquad/ssot/service-spec.template.md +194 -0
  179. package/templates/common/timsquad/ssot/test-spec.template.md +264 -0
  180. package/templates/common/timsquad/ssot/ui-ux-spec.template.md +262 -0
  181. package/templates/common/timsquad/state/workspace.xml +217 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAShD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAEpC,kBAAkB;IAClB,QAAQ;SACL,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,iBAAiB;IACjB,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mBAAmB;IACnB,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,WAAmB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEnF,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,KAAiB;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACnF,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;KAChC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,qBAAqB;IACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE;QACzC,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE;YAChB,kBAAkB,EAAE,GAAG;YACvB,YAAY,EAAE,GAAG;SAClB;KACF,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,OAAO;SACJ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;QACzB,WAAW,EAAE,CAAC;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,SAAS,eAAe,YAAY,EAAE,CAAC;QAE5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,cAAc;QACd,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC,CAAC;SACD,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtB,WAAW,EAAE,CAAC;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,SAAS,YAAY,YAAY,EAAE,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC,CAAC;SACD,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;QACzB,WAAW,EAAE,CAAC;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,SAAS,cAAc,YAAY,EAAE,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC;SACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACrB,UAAU,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC;IAChC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEzC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAElD,6BAA6B;IAC7B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAEtB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEzC,YAAY,CAAC,oBAAoB,WAAW,oBAAoB,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEzC,YAAY,CAAC,2BAA2B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAE/C,WAAW,CAAC,cAAc,CAAC,CAAC;IAC5B,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE/D,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAClD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,WAAmB,EACnB,MAAc,EACd,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,GAAG,SAAS,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,QAAQ,IAAI,CAAC;IAEpF,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC;QACpB,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { registerInitCommand } from './commands/init.js';
5
+ import { registerStatusCommand } from './commands/status.js';
6
+ import { registerLogCommand } from './commands/log.js';
7
+ import { registerRetroCommand } from './commands/retro.js';
8
+ import { registerFeedbackCommand } from './commands/feedback.js';
9
+ import { registerQuickCommand } from './commands/quick.js';
10
+ import { registerFullCommand } from './commands/full.js';
11
+ import { registerCommitCommand } from './commands/git/commit.js';
12
+ import { registerPRCommand } from './commands/git/pr.js';
13
+ import { registerReleaseCommand } from './commands/git/release.js';
14
+ import { registerSyncCommand } from './commands/git/sync.js';
15
+ import { registerWatchCommand } from './commands/watch.js';
16
+ import { registerMetricsCommand } from './commands/metrics.js';
17
+ const program = new Command();
18
+ program
19
+ .name('tsq')
20
+ .description('TimSquad - AI Agent Development Process Framework')
21
+ .version('2.0.0');
22
+ // Register all commands
23
+ registerInitCommand(program);
24
+ registerStatusCommand(program);
25
+ registerLogCommand(program);
26
+ registerRetroCommand(program);
27
+ registerFeedbackCommand(program);
28
+ registerQuickCommand(program);
29
+ registerFullCommand(program);
30
+ registerCommitCommand(program);
31
+ registerPRCommand(program);
32
+ registerReleaseCommand(program);
33
+ registerSyncCommand(program);
34
+ registerWatchCommand(program);
35
+ registerMetricsCommand(program);
36
+ // Default action (show help)
37
+ program.action(() => {
38
+ console.log(chalk.cyan.bold('\n TimSquad v2.0.0'));
39
+ console.log(chalk.gray(' AI Agent Development Process Framework\n'));
40
+ program.help();
41
+ });
42
+ // Parse arguments
43
+ program.parse(process.argv);
44
+ // Show help if no arguments
45
+ if (process.argv.length === 2) {
46
+ console.log(chalk.cyan.bold('\n TimSquad v2.0.0'));
47
+ console.log(chalk.gray(' AI Agent Development Process Framework\n'));
48
+ program.help();
49
+ }
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,wBAAwB;AACxB,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,6BAA6B;AAC7B,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,4BAA4B;AAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { TimsquadConfig, ProjectType, ProjectLevel } from '../types/index.js';
2
+ /**
3
+ * Check if config file exists
4
+ */
5
+ export declare function configExists(projectRoot: string): Promise<boolean>;
6
+ /**
7
+ * Load TimSquad configuration
8
+ */
9
+ export declare function loadConfig(projectRoot: string): Promise<TimsquadConfig>;
10
+ /**
11
+ * Save TimSquad configuration
12
+ */
13
+ export declare function saveConfig(projectRoot: string, config: TimsquadConfig): Promise<void>;
14
+ /**
15
+ * Create default configuration for a new project
16
+ */
17
+ export declare function createDefaultConfig(name: string, type: ProjectType, level: ProjectLevel): TimsquadConfig;
18
+ /**
19
+ * Validate configuration
20
+ */
21
+ export declare function validateConfig(config: unknown): config is TimsquadConfig;
22
+ /**
23
+ * Get project name from config
24
+ */
25
+ export declare function getProjectName(projectRoot: string): Promise<string>;
26
+ /**
27
+ * Get project type from config
28
+ */
29
+ export declare function getProjectType(projectRoot: string): Promise<ProjectType>;
30
+ /**
31
+ * Get project level from config
32
+ */
33
+ export declare function getProjectLevel(projectRoot: string): Promise<ProjectLevel>;
34
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOnF;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,GAClB,cAAc,CAwBhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,cAAc,CAcxE;AAiBD;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAG9E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGhF"}
@@ -0,0 +1,108 @@
1
+ import path from 'path';
2
+ import { DEFAULT_CONFIG, FINTECH_CONFIG_OVERRIDES } from '../types/config.js';
3
+ import { exists } from '../utils/fs.js';
4
+ import { loadYaml, saveYaml } from '../utils/yaml.js';
5
+ const CONFIG_FILE = '.timsquad/config.yaml';
6
+ /**
7
+ * Check if config file exists
8
+ */
9
+ export async function configExists(projectRoot) {
10
+ return exists(path.join(projectRoot, CONFIG_FILE));
11
+ }
12
+ /**
13
+ * Load TimSquad configuration
14
+ */
15
+ export async function loadConfig(projectRoot) {
16
+ const configPath = path.join(projectRoot, CONFIG_FILE);
17
+ if (!await exists(configPath)) {
18
+ throw new Error(`Config file not found: ${configPath}`);
19
+ }
20
+ return loadYaml(configPath);
21
+ }
22
+ /**
23
+ * Save TimSquad configuration
24
+ */
25
+ export async function saveConfig(projectRoot, config) {
26
+ const configPath = path.join(projectRoot, CONFIG_FILE);
27
+ await saveYaml(configPath, config);
28
+ }
29
+ /**
30
+ * Create default configuration for a new project
31
+ */
32
+ export function createDefaultConfig(name, type, level) {
33
+ const baseConfig = {
34
+ project: {
35
+ name,
36
+ type,
37
+ level,
38
+ created: new Date().toISOString(),
39
+ },
40
+ ...DEFAULT_CONFIG,
41
+ };
42
+ // Apply fintech-specific overrides
43
+ if (type === 'fintech') {
44
+ return {
45
+ ...baseConfig,
46
+ ...FINTECH_CONFIG_OVERRIDES,
47
+ project: {
48
+ ...baseConfig.project,
49
+ level: 3, // Force level 3 for fintech
50
+ },
51
+ };
52
+ }
53
+ return baseConfig;
54
+ }
55
+ /**
56
+ * Validate configuration
57
+ */
58
+ export function validateConfig(config) {
59
+ if (!config || typeof config !== 'object')
60
+ return false;
61
+ const c = config;
62
+ // Check required fields
63
+ if (!c.project || typeof c.project !== 'object')
64
+ return false;
65
+ const project = c.project;
66
+ if (typeof project.name !== 'string')
67
+ return false;
68
+ if (!isValidProjectType(project.type))
69
+ return false;
70
+ if (!isValidProjectLevel(project.level))
71
+ return false;
72
+ return true;
73
+ }
74
+ /**
75
+ * Check if value is a valid project type
76
+ */
77
+ function isValidProjectType(value) {
78
+ const validTypes = ['web-service', 'api-backend', 'platform', 'fintech', 'infra'];
79
+ return typeof value === 'string' && validTypes.includes(value);
80
+ }
81
+ /**
82
+ * Check if value is a valid project level
83
+ */
84
+ function isValidProjectLevel(value) {
85
+ return typeof value === 'number' && [1, 2, 3].includes(value);
86
+ }
87
+ /**
88
+ * Get project name from config
89
+ */
90
+ export async function getProjectName(projectRoot) {
91
+ const config = await loadConfig(projectRoot);
92
+ return config.project.name;
93
+ }
94
+ /**
95
+ * Get project type from config
96
+ */
97
+ export async function getProjectType(projectRoot) {
98
+ const config = await loadConfig(projectRoot);
99
+ return config.project.type;
100
+ }
101
+ /**
102
+ * Get project level from config
103
+ */
104
+ export async function getProjectLevel(projectRoot) {
105
+ const config = await loadConfig(projectRoot);
106
+ return config.project.level;
107
+ }
108
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ProjectInfo, PhaseInfo, ProjectStatus, SSOTDocument, AgentInfo } from '../types/index.js';
2
+ /**
3
+ * Find project root by looking for .timsquad directory
4
+ */
5
+ export declare function findProjectRoot(startDir?: string): Promise<string | null>;
6
+ /**
7
+ * Check if directory is a TimSquad project
8
+ */
9
+ export declare function isTimsquadProject(dir: string): Promise<boolean>;
10
+ /**
11
+ * Get project info from config
12
+ */
13
+ export declare function getProjectInfo(projectRoot: string): Promise<ProjectInfo>;
14
+ /**
15
+ * Get current phase info
16
+ */
17
+ export declare function getCurrentPhase(projectRoot: string): Promise<PhaseInfo>;
18
+ /**
19
+ * Get SSOT documents status
20
+ */
21
+ export declare function getSSOTStatus(projectRoot: string): Promise<SSOTDocument[]>;
22
+ /**
23
+ * Get agents status
24
+ */
25
+ export declare function getAgentsStatus(projectRoot: string): Promise<AgentInfo[]>;
26
+ /**
27
+ * Get logs summary
28
+ */
29
+ export declare function getLogsSummary(projectRoot: string): Promise<{
30
+ total: number;
31
+ recent: string[];
32
+ }>;
33
+ /**
34
+ * Get retrospective summary
35
+ */
36
+ export declare function getRetrospectiveSummary(projectRoot: string): Promise<{
37
+ cycles: number;
38
+ patterns: {
39
+ success: number;
40
+ failure: number;
41
+ };
42
+ }>;
43
+ /**
44
+ * Get full project status
45
+ */
46
+ export declare function getProjectStatus(projectRoot: string): Promise<ProjectStatus>;
47
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AASxG;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW/E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAU9E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqB7E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA4ChF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAqB/E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiBtG;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC,CAoCD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAWlF"}
@@ -0,0 +1,191 @@
1
+ import path from 'path';
2
+ import { REQUIRED_SSOT_BY_LEVEL, REQUIRED_SSOT_BY_TYPE } from '../types/project.js';
3
+ import { loadConfig, configExists } from './config.js';
4
+ import { exists, listFiles, isFileFilled, countLines } from '../utils/fs.js';
5
+ import { loadYaml } from '../utils/yaml.js';
6
+ const TIMSQUAD_DIR = '.timsquad';
7
+ const CLAUDE_DIR = '.claude';
8
+ /**
9
+ * Find project root by looking for .timsquad directory
10
+ */
11
+ export async function findProjectRoot(startDir) {
12
+ let dir = startDir || process.cwd();
13
+ while (dir !== path.parse(dir).root) {
14
+ if (await exists(path.join(dir, TIMSQUAD_DIR))) {
15
+ return dir;
16
+ }
17
+ dir = path.dirname(dir);
18
+ }
19
+ return null;
20
+ }
21
+ /**
22
+ * Check if directory is a TimSquad project
23
+ */
24
+ export async function isTimsquadProject(dir) {
25
+ return await exists(path.join(dir, TIMSQUAD_DIR)) && await configExists(dir);
26
+ }
27
+ /**
28
+ * Get project info from config
29
+ */
30
+ export async function getProjectInfo(projectRoot) {
31
+ const config = await loadConfig(projectRoot);
32
+ return {
33
+ name: config.project.name,
34
+ type: config.project.type,
35
+ level: config.project.level,
36
+ created: config.project.created,
37
+ root: projectRoot,
38
+ };
39
+ }
40
+ /**
41
+ * Get current phase info
42
+ */
43
+ export async function getCurrentPhase(projectRoot) {
44
+ const phasePath = path.join(projectRoot, TIMSQUAD_DIR, 'state', 'current-phase.json');
45
+ if (!await exists(phasePath)) {
46
+ return {
47
+ current: 'planning',
48
+ startedAt: new Date().toISOString(),
49
+ progress: 0,
50
+ };
51
+ }
52
+ try {
53
+ const data = await loadYaml(phasePath);
54
+ return data;
55
+ }
56
+ catch {
57
+ return {
58
+ current: 'planning',
59
+ startedAt: new Date().toISOString(),
60
+ progress: 0,
61
+ };
62
+ }
63
+ }
64
+ /**
65
+ * Get SSOT documents status
66
+ */
67
+ export async function getSSOTStatus(projectRoot) {
68
+ const config = await loadConfig(projectRoot);
69
+ const ssotDir = path.join(projectRoot, TIMSQUAD_DIR, 'ssot');
70
+ // Get required documents based on level and type
71
+ const requiredByLevel = REQUIRED_SSOT_BY_LEVEL[config.project.level];
72
+ const requiredByType = REQUIRED_SSOT_BY_TYPE[config.project.type];
73
+ const allRequired = [...new Set([...requiredByLevel, ...requiredByType])];
74
+ // Get all SSOT files
75
+ const files = await listFiles('*.md', ssotDir);
76
+ const documents = [];
77
+ for (const file of files) {
78
+ const name = path.basename(file, '.md');
79
+ const filePath = path.join(ssotDir, file);
80
+ const filled = await isFileFilled(filePath);
81
+ documents.push({
82
+ name,
83
+ path: filePath,
84
+ required: allRequired.includes(name),
85
+ filled,
86
+ });
87
+ }
88
+ // Add missing required documents
89
+ for (const name of allRequired) {
90
+ if (!documents.find(d => d.name === name)) {
91
+ documents.push({
92
+ name,
93
+ path: path.join(ssotDir, `${name}.md`),
94
+ required: true,
95
+ filled: false,
96
+ });
97
+ }
98
+ }
99
+ return documents.sort((a, b) => {
100
+ // Required first, then by name
101
+ if (a.required !== b.required)
102
+ return a.required ? -1 : 1;
103
+ return a.name.localeCompare(b.name);
104
+ });
105
+ }
106
+ /**
107
+ * Get agents status
108
+ */
109
+ export async function getAgentsStatus(projectRoot) {
110
+ const agentsDir = path.join(projectRoot, CLAUDE_DIR, 'agents');
111
+ if (!await exists(agentsDir)) {
112
+ return [];
113
+ }
114
+ const files = await listFiles('tsq-*.md', agentsDir);
115
+ const config = await loadConfig(projectRoot);
116
+ return files.map(file => {
117
+ const name = path.basename(file, '.md').replace('tsq-', '');
118
+ const agentConfig = config.agents[name];
119
+ return {
120
+ name,
121
+ type: name,
122
+ model: agentConfig?.model || 'sonnet',
123
+ available: true,
124
+ };
125
+ });
126
+ }
127
+ /**
128
+ * Get logs summary
129
+ */
130
+ export async function getLogsSummary(projectRoot) {
131
+ const logsDir = path.join(projectRoot, TIMSQUAD_DIR, 'logs');
132
+ if (!await exists(logsDir)) {
133
+ return { total: 0, recent: [] };
134
+ }
135
+ const files = await listFiles('*.md', logsDir);
136
+ const nonTemplateFiles = files.filter(f => !f.startsWith('_'));
137
+ // Sort by date (filename format: YYYY-MM-DD-agent.md)
138
+ nonTemplateFiles.sort().reverse();
139
+ return {
140
+ total: nonTemplateFiles.length,
141
+ recent: nonTemplateFiles.slice(0, 3),
142
+ };
143
+ }
144
+ /**
145
+ * Get retrospective summary
146
+ */
147
+ export async function getRetrospectiveSummary(projectRoot) {
148
+ const retroDir = path.join(projectRoot, TIMSQUAD_DIR, 'retrospective');
149
+ if (!await exists(retroDir)) {
150
+ return { cycles: 0, patterns: { success: 0, failure: 0 } };
151
+ }
152
+ // Count cycle reports
153
+ const cyclesDir = path.join(retroDir, 'cycles');
154
+ const cycleFiles = await exists(cyclesDir) ? await listFiles('cycle-*.md', cyclesDir) : [];
155
+ // Count patterns
156
+ const patternsDir = path.join(retroDir, 'patterns');
157
+ let successPatterns = 0;
158
+ let failurePatterns = 0;
159
+ if (await exists(patternsDir)) {
160
+ const successFile = path.join(patternsDir, 'success-patterns.md');
161
+ const failureFile = path.join(patternsDir, 'failure-patterns.md');
162
+ if (await exists(successFile)) {
163
+ const content = await countLines(successFile);
164
+ // Rough estimate: count "## " headers as patterns
165
+ successPatterns = Math.max(0, Math.floor(content / 10));
166
+ }
167
+ if (await exists(failureFile)) {
168
+ const content = await countLines(failureFile);
169
+ failurePatterns = Math.max(0, Math.floor(content / 10));
170
+ }
171
+ }
172
+ return {
173
+ cycles: cycleFiles.length,
174
+ patterns: { success: successPatterns, failure: failurePatterns },
175
+ };
176
+ }
177
+ /**
178
+ * Get full project status
179
+ */
180
+ export async function getProjectStatus(projectRoot) {
181
+ const [project, phase, ssot, agents, logs, retrospective] = await Promise.all([
182
+ getProjectInfo(projectRoot),
183
+ getCurrentPhase(projectRoot),
184
+ getSSOTStatus(projectRoot),
185
+ getAgentsStatus(projectRoot),
186
+ getLogsSummary(projectRoot),
187
+ getRetrospectiveSummary(projectRoot),
188
+ ]);
189
+ return { project, phase, ssot, agents, logs, retrospective };
190
+ }
191
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ProjectType, ProjectLevel } from '../types/index.js';
2
+ /**
3
+ * Template variables for substitution
4
+ */
5
+ export interface TemplateVariables {
6
+ PROJECT_NAME: string;
7
+ PROJECT_TYPE: string;
8
+ PROJECT_LEVEL: string;
9
+ DATE: string;
10
+ TIMESTAMP: string;
11
+ INIT_DATE: string;
12
+ }
13
+ /**
14
+ * Get templates directory path
15
+ */
16
+ export declare function getTemplatesDir(): string;
17
+ /**
18
+ * Create template variables
19
+ */
20
+ export declare function createTemplateVariables(name: string, type: ProjectType, level: ProjectLevel): TemplateVariables;
21
+ /**
22
+ * Substitute variables in content
23
+ */
24
+ export declare function substituteVariables(content: string, variables: TemplateVariables): string;
25
+ /**
26
+ * Get required SSOT documents for project
27
+ */
28
+ export declare function getRequiredDocuments(type: ProjectType, level: ProjectLevel): string[];
29
+ /**
30
+ * Initialize project from templates
31
+ */
32
+ export declare function initializeProject(projectRoot: string, name: string, type: ProjectType, level: ProjectLevel): Promise<void>;
33
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +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;AAOnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;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,GAClB,iBAAiB,CAUnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CASzF;AAwDD;;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,GAClB,OAAO,CAAC,IAAI,CAAC,CAqDf"}