@nextsparkjs/ai-workflow 0.1.0-beta.100

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 (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/claude/_docs/workflows-optimizations.md +359 -0
  4. package/claude/agents/api-tester.md +634 -0
  5. package/claude/agents/architecture-supervisor.md +1351 -0
  6. package/claude/agents/backend-developer.md +997 -0
  7. package/claude/agents/backend-validator.md +417 -0
  8. package/claude/agents/bdd-docs-writer.md +737 -0
  9. package/claude/agents/block-developer.md +677 -0
  10. package/claude/agents/code-reviewer.md +1432 -0
  11. package/claude/agents/db-developer.md +721 -0
  12. package/claude/agents/db-validator.md +407 -0
  13. package/claude/agents/demo-video-generator.md +493 -0
  14. package/claude/agents/documentation-writer.md +1268 -0
  15. package/claude/agents/frontend-developer.md +1234 -0
  16. package/claude/agents/frontend-validator.md +777 -0
  17. package/claude/agents/functional-validator.md +630 -0
  18. package/claude/agents/mock-analyst.md +387 -0
  19. package/claude/agents/product-manager.md +963 -0
  20. package/claude/agents/qa-automation.md +1762 -0
  21. package/claude/agents/release-manager.md +634 -0
  22. package/claude/agents/selectors-translator.md +262 -0
  23. package/claude/agents/unit-test-writer.md +785 -0
  24. package/claude/agents/visual-comparator.md +329 -0
  25. package/claude/agents/workflow-maintainer.md +352 -0
  26. package/claude/commands/do/README.md +88 -0
  27. package/claude/commands/do/create-api.md +64 -0
  28. package/claude/commands/do/create-entity.md +66 -0
  29. package/claude/commands/do/create-migration.md +64 -0
  30. package/claude/commands/do/create-plugin.md +56 -0
  31. package/claude/commands/do/create-theme.md +70 -0
  32. package/claude/commands/do/mock-data.md +67 -0
  33. package/claude/commands/do/reset-db.md +71 -0
  34. package/claude/commands/do/setup-scheduled-action.md +75 -0
  35. package/claude/commands/do/sync-code-review.md +117 -0
  36. package/claude/commands/do/update-selectors.md +112 -0
  37. package/claude/commands/do/use-skills.md +90 -0
  38. package/claude/commands/do/validate-blocks.md +69 -0
  39. package/claude/commands/how-to/README.md +261 -0
  40. package/claude/commands/how-to/add-metadata.md +692 -0
  41. package/claude/commands/how-to/add-taxonomies.md +806 -0
  42. package/claude/commands/how-to/add-translations.md +571 -0
  43. package/claude/commands/how-to/create-api.md +577 -0
  44. package/claude/commands/how-to/create-block.md +575 -0
  45. package/claude/commands/how-to/create-child-entities.md +771 -0
  46. package/claude/commands/how-to/create-entity.md +597 -0
  47. package/claude/commands/how-to/create-migrations.md +605 -0
  48. package/claude/commands/how-to/create-plugin.md +654 -0
  49. package/claude/commands/how-to/customize-app.md +481 -0
  50. package/claude/commands/how-to/customize-dashboard.md +553 -0
  51. package/claude/commands/how-to/customize-theme.md +438 -0
  52. package/claude/commands/how-to/define-features-flows.md +632 -0
  53. package/claude/commands/how-to/deploy.md +507 -0
  54. package/claude/commands/how-to/handle-file-uploads.md +746 -0
  55. package/claude/commands/how-to/implement-search.md +1001 -0
  56. package/claude/commands/how-to/install-plugins.md +352 -0
  57. package/claude/commands/how-to/manage-test-coverage.md +984 -0
  58. package/claude/commands/how-to/run-tests.md +400 -0
  59. package/claude/commands/how-to/set-app-languages.md +601 -0
  60. package/claude/commands/how-to/set-plans-and-permissions.md +575 -0
  61. package/claude/commands/how-to/set-scheduled-actions.md +527 -0
  62. package/claude/commands/how-to/set-user-roles-and-permissions.md +550 -0
  63. package/claude/commands/how-to/setup-authentication.md +388 -0
  64. package/claude/commands/how-to/setup-claude-code.md +440 -0
  65. package/claude/commands/how-to/setup-database.md +274 -0
  66. package/claude/commands/how-to/setup-email-providers.md +598 -0
  67. package/claude/commands/how-to/setup-mobile-dev.md +627 -0
  68. package/claude/commands/how-to/start.md +500 -0
  69. package/claude/commands/how-to/use-devtools.md +639 -0
  70. package/claude/commands/how-to/use-superadmin.md +622 -0
  71. package/claude/commands/session/README.md +193 -0
  72. package/claude/commands/session/block-create.md +190 -0
  73. package/claude/commands/session/block-list.md +203 -0
  74. package/claude/commands/session/block-update.md +192 -0
  75. package/claude/commands/session/block-validate.md +218 -0
  76. package/claude/commands/session/changelog.md +115 -0
  77. package/claude/commands/session/close.md +225 -0
  78. package/claude/commands/session/commit.md +174 -0
  79. package/claude/commands/session/db-entity.md +206 -0
  80. package/claude/commands/session/db-fix.md +212 -0
  81. package/claude/commands/session/db-sample.md +206 -0
  82. package/claude/commands/session/demo.md +178 -0
  83. package/claude/commands/session/doc-bdd.md +207 -0
  84. package/claude/commands/session/doc-feature.md +218 -0
  85. package/claude/commands/session/doc-read.md +225 -0
  86. package/claude/commands/session/execute.md +204 -0
  87. package/claude/commands/session/explain.md +202 -0
  88. package/claude/commands/session/fix-bug.md +210 -0
  89. package/claude/commands/session/fix-build.md +182 -0
  90. package/claude/commands/session/fix-test.md +189 -0
  91. package/claude/commands/session/pending.md +232 -0
  92. package/claude/commands/session/refine.md +188 -0
  93. package/claude/commands/session/resume.md +192 -0
  94. package/claude/commands/session/review.md +192 -0
  95. package/claude/commands/session/scope-change.md +181 -0
  96. package/claude/commands/session/start-blocks.md +347 -0
  97. package/claude/commands/session/start.md +604 -0
  98. package/claude/commands/session/status.md +169 -0
  99. package/claude/commands/session/test-fix.md +221 -0
  100. package/claude/commands/session/test-run.md +203 -0
  101. package/claude/commands/session/test-write.md +242 -0
  102. package/claude/commands/session/validate.md +162 -0
  103. package/claude/config/context.json +40 -0
  104. package/claude/config/github.json +69 -0
  105. package/claude/config/github.schema.json +106 -0
  106. package/claude/config/team.json +46 -0
  107. package/claude/config/team.schema.json +106 -0
  108. package/claude/config/workspace.json +43 -0
  109. package/claude/config/workspace.schema.json +75 -0
  110. package/claude/skills/README.md +228 -0
  111. package/claude/skills/accessibility/SKILL.md +573 -0
  112. package/claude/skills/api-bypass-layers/SKILL.md +550 -0
  113. package/claude/skills/asana-integration/SKILL.md +499 -0
  114. package/claude/skills/better-auth/SKILL.md +666 -0
  115. package/claude/skills/billing-subscriptions/SKILL.md +660 -0
  116. package/claude/skills/block-decision-matrix/SKILL.md +359 -0
  117. package/claude/skills/clickup-integration/SKILL.md +434 -0
  118. package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
  119. package/claude/skills/create-plugin/SKILL.md +425 -0
  120. package/claude/skills/create-theme/SKILL.md +331 -0
  121. package/claude/skills/cypress-api/SKILL.md +511 -0
  122. package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
  123. package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
  124. package/claude/skills/cypress-e2e/SKILL.md +526 -0
  125. package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
  126. package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
  127. package/claude/skills/cypress-selectors/SKILL.md +309 -0
  128. package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
  129. package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
  130. package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
  131. package/claude/skills/database-migrations/SKILL.md +335 -0
  132. package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
  133. package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
  134. package/claude/skills/design-system/SKILL.md +682 -0
  135. package/claude/skills/documentation/SKILL.md +540 -0
  136. package/claude/skills/entity-api/SKILL.md +482 -0
  137. package/claude/skills/entity-system/SKILL.md +635 -0
  138. package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
  139. package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
  140. package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
  141. package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
  142. package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
  143. package/claude/skills/github/SKILL.md +467 -0
  144. package/claude/skills/i18n-nextintl/SKILL.md +302 -0
  145. package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
  146. package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
  147. package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
  148. package/claude/skills/impact-analysis/SKILL.md +203 -0
  149. package/claude/skills/jest-unit/SKILL.md +306 -0
  150. package/claude/skills/jest-unit/references/component-testing.md +371 -0
  151. package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
  152. package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
  153. package/claude/skills/jira-integration/SKILL.md +539 -0
  154. package/claude/skills/media-library/SKILL.md +743 -0
  155. package/claude/skills/mock-analysis/SKILL.md +276 -0
  156. package/claude/skills/monorepo-architecture/SKILL.md +162 -0
  157. package/claude/skills/nextjs-api-development/SKILL.md +364 -0
  158. package/claude/skills/nextjs-api-development/scripts/generate-crud-tests.py +456 -0
  159. package/claude/skills/nextjs-api-development/scripts/scaffold-endpoint.py +481 -0
  160. package/claude/skills/nextjs-api-development/scripts/validate-api.py +283 -0
  161. package/claude/skills/notion-integration/SKILL.md +641 -0
  162. package/claude/skills/npm-development-workflow/SKILL.md +480 -0
  163. package/claude/skills/page-builder-blocks/SKILL.md +530 -0
  164. package/claude/skills/page-builder-blocks/scripts/scaffold-block.py +444 -0
  165. package/claude/skills/permissions-system/SKILL.md +619 -0
  166. package/claude/skills/plugins/SKILL.md +340 -0
  167. package/claude/skills/plugins/references/plugin-templates.md +414 -0
  168. package/claude/skills/plugins/references/plugin-testing.md +353 -0
  169. package/claude/skills/plugins/references/plugin-types.md +198 -0
  170. package/claude/skills/plugins/scripts/scaffold-plugin.py +443 -0
  171. package/claude/skills/pom-patterns/SKILL.md +452 -0
  172. package/claude/skills/pom-patterns/scripts/generate-pom.py +392 -0
  173. package/claude/skills/rate-limiting/SKILL.md +342 -0
  174. package/claude/skills/react-best-practices/AGENTS.md +2410 -0
  175. package/claude/skills/react-best-practices/README.md +123 -0
  176. package/claude/skills/react-best-practices/SKILL.md +125 -0
  177. package/claude/skills/react-best-practices/metadata.json +15 -0
  178. package/claude/skills/react-best-practices/rules/_sections.md +46 -0
  179. package/claude/skills/react-best-practices/rules/_template.md +28 -0
  180. package/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  181. package/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  182. package/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
  183. package/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
  184. package/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
  185. package/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
  186. package/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  187. package/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  188. package/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  189. package/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  190. package/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  191. package/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
  192. package/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  193. package/claude/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  194. package/claude/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  195. package/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  196. package/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  197. package/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  198. package/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  199. package/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  200. package/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  201. package/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
  202. package/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  203. package/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
  204. package/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  205. package/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  206. package/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  207. package/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  208. package/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
  209. package/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  210. package/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  211. package/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  212. package/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  213. package/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  214. package/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  215. package/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  216. package/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  217. package/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  218. package/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  219. package/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  220. package/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
  221. package/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  222. package/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  223. package/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  224. package/claude/skills/react-best-practices/rules/server-cache-react.md +76 -0
  225. package/claude/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  226. package/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
  227. package/claude/skills/react-patterns/SKILL.md +688 -0
  228. package/claude/skills/registry-system/SKILL.md +331 -0
  229. package/claude/skills/scheduled-actions/SKILL.md +671 -0
  230. package/claude/skills/scope-enforcement/SKILL.md +542 -0
  231. package/claude/skills/scope-enforcement/scripts/validate-scope.py +357 -0
  232. package/claude/skills/server-actions/SKILL.md +493 -0
  233. package/claude/skills/service-layer/SKILL.md +587 -0
  234. package/claude/skills/session-management/SKILL.md +266 -0
  235. package/claude/skills/session-management/scripts/create-session.py +166 -0
  236. package/claude/skills/session-management/scripts/iteration-close.sh +105 -0
  237. package/claude/skills/session-management/scripts/iteration-init.sh +180 -0
  238. package/claude/skills/session-management/scripts/session-archive.sh +87 -0
  239. package/claude/skills/session-management/scripts/session-close.sh +133 -0
  240. package/claude/skills/session-management/scripts/session-init.sh +225 -0
  241. package/claude/skills/session-management/scripts/session-list.sh +163 -0
  242. package/claude/skills/session-management/scripts/split-plan.sh +116 -0
  243. package/claude/skills/shadcn-components/SKILL.md +586 -0
  244. package/claude/skills/shadcn-theming/SKILL.md +446 -0
  245. package/claude/skills/suspense-loading/SKILL.md +280 -0
  246. package/claude/skills/tailwind-theming/SKILL.md +507 -0
  247. package/claude/skills/tanstack-query/SKILL.md +608 -0
  248. package/claude/skills/test-coverage/SKILL.md +239 -0
  249. package/claude/skills/web-design-guidelines/SKILL.md +39 -0
  250. package/claude/skills/zod-validation/SKILL.md +537 -0
  251. package/claude/templates/blocks/progress.md +86 -0
  252. package/claude/templates/iteration/changes.md +61 -0
  253. package/claude/templates/iteration/progress.md +55 -0
  254. package/claude/templates/log.md +31 -0
  255. package/claude/templates/story/context.md +77 -0
  256. package/claude/templates/story/pendings.md +37 -0
  257. package/claude/templates/story/plan.md +299 -0
  258. package/claude/templates/story/requirements.md +109 -0
  259. package/claude/templates/story/scope.json +10 -0
  260. package/claude/templates/story/tests.md +91 -0
  261. package/claude/templates/task/progress.md +58 -0
  262. package/claude/templates/task/requirements.md +54 -0
  263. package/claude/workflows/README.md +154 -0
  264. package/claude/workflows/blocks.md +614 -0
  265. package/claude/workflows/story.md +1207 -0
  266. package/claude/workflows/task.md +927 -0
  267. package/claude/workflows/tweak.md +527 -0
  268. package/cursor/.gitkeep +0 -0
  269. package/package.json +35 -0
  270. package/scripts/postinstall.mjs +198 -0
  271. package/scripts/setup.mjs +282 -0
  272. package/scripts/sync.mjs +209 -0
@@ -0,0 +1,266 @@
1
+ # Session Management Skill
2
+
3
+ Sistema de gestión de sesiones de desarrollo para Claude Code.
4
+
5
+ ## Conceptos Clave
6
+
7
+ ### Tipos de Sesión
8
+
9
+ | Tipo | T-Shirt | Workflow | Carpeta | Descripción |
10
+ |------|---------|----------|---------|-------------|
11
+ | **Story** | L - XL | COMPLETE | `stories/` | Features complejos, múltiples iteraciones |
12
+ | **Task** | S - M | STANDARD | `tasks/` | Mejoras, bugs medianos |
13
+ | **Log** | XS | QUICK | `logs/` | Fixes rápidos, cambios triviales |
14
+
15
+ ### Estructura de Carpetas
16
+
17
+ ```
18
+ .claude/sessions/
19
+ ├── scripts/ # Scripts de gestión
20
+ ├── templates/ # Templates por tipo
21
+ │ ├── story/
22
+ │ ├── task/
23
+ │ ├── iteration/
24
+ │ └── log.md
25
+ ├── stories/ # Sesiones COMPLETE
26
+ ├── tasks/ # Sesiones STANDARD
27
+ ├── logs/ # Sesiones QUICK
28
+ └── archive/ # Sesiones completadas
29
+ ```
30
+
31
+ ---
32
+
33
+ ## Scripts Disponibles
34
+
35
+ ### session-init.sh
36
+
37
+ Crea una nueva sesión con toda su estructura.
38
+
39
+ ```bash
40
+ # Sintaxis
41
+ .claude/skills/session-management/scripts/session-init.sh <type> <name> [tshirt]
42
+
43
+ # Parámetros
44
+ # type: story | task | log
45
+ # name: nombre descriptivo (sin fecha, se agrega auto)
46
+ # tshirt: xs | s | m | l | xl (opcional, default según type)
47
+
48
+ # Ejemplos
49
+ .claude/skills/session-management/scripts/session-init.sh story new-products-entity L
50
+ .claude/skills/session-management/scripts/session-init.sh task improve-search M
51
+ .claude/skills/session-management/scripts/session-init.sh log fix-typo
52
+ ```
53
+
54
+ **Output:**
55
+ ```
56
+ Creating story session: 2026-01-11-new-products-entity
57
+
58
+ Created: stories/2026-01-11-new-products-entity/
59
+ Files: context.md, requirements.md, plan.md, scope.json, pendings.md, tests.md
60
+ Iteration: iterations/01-initial/
61
+ Current: current/ -> iterations/01-initial/
62
+ ```
63
+
64
+ ### session-list.sh
65
+
66
+ Lista sesiones activas con su estado.
67
+
68
+ ```bash
69
+ # Sintaxis
70
+ .claude/skills/session-management/scripts/session-list.sh [type] [--all]
71
+
72
+ # Ejemplos
73
+ .claude/skills/session-management/scripts/session-list.sh # Solo activas
74
+ .claude/skills/session-management/scripts/session-list.sh stories # Solo stories activas
75
+ .claude/skills/session-management/scripts/session-list.sh --all # Incluir archivadas
76
+ ```
77
+
78
+ **Output:**
79
+ ```
80
+ === SESSION LIST ===
81
+
82
+ STORIES
83
+ 2026-01-11-new-products-entity [L] iteration-02 (60%)
84
+ 2026-01-08-refactor-auth [XL] iteration-01 (30%)
85
+ Total: 2 active
86
+
87
+ TASKS
88
+ 2026-01-10-improve-search [M] (80%)
89
+ Total: 1 active
90
+
91
+ LOGS
92
+ 2026-01-11-fix-typo-login
93
+ Total: 1 active
94
+ ```
95
+
96
+ ### session-close.sh
97
+
98
+ Cierra una sesión activa (marca como completada).
99
+
100
+ ```bash
101
+ # Sintaxis
102
+ .claude/skills/session-management/scripts/session-close.sh <session-path> [summary]
103
+
104
+ # Ejemplo
105
+ .claude/skills/session-management/scripts/session-close.sh stories/2026-01-11-new-products-entity "Feature completed"
106
+ ```
107
+
108
+ ### session-archive.sh
109
+
110
+ Mueve una sesión cerrada al archivo.
111
+
112
+ ```bash
113
+ # Sintaxis
114
+ .claude/skills/session-management/scripts/session-archive.sh <session-path>
115
+
116
+ # Ejemplo
117
+ .claude/skills/session-management/scripts/session-archive.sh stories/2026-01-11-new-products-entity
118
+ ```
119
+
120
+ ### iteration-init.sh
121
+
122
+ Crea una nueva iteración dentro de una story.
123
+
124
+ ```bash
125
+ # Sintaxis
126
+ .claude/skills/session-management/scripts/iteration-init.sh <session-path> <reason> [name]
127
+
128
+ # Parámetros
129
+ # reason: scope-change | blocked | review-feedback | continuation
130
+
131
+ # Ejemplo
132
+ .claude/skills/session-management/scripts/iteration-init.sh stories/2026-01-11-new-products-entity scope-change "add-variants"
133
+ ```
134
+
135
+ ### iteration-close.sh
136
+
137
+ Cierra la iteración actual sin crear una nueva.
138
+
139
+ ```bash
140
+ # Sintaxis
141
+ .claude/skills/session-management/scripts/iteration-close.sh <session-path> <status> [summary]
142
+
143
+ # Parámetros
144
+ # status: completed | blocked | paused
145
+
146
+ # Ejemplo
147
+ .claude/skills/session-management/scripts/iteration-close.sh stories/2026-01-11-new-products-entity completed "All ACs met"
148
+ ```
149
+
150
+ ---
151
+
152
+ ## Flujos de Uso
153
+
154
+ ### Iniciar Nueva Sesión
155
+
156
+ 1. **Evaluar complejidad** (T-Shirt sizing)
157
+ 2. **Determinar tipo** de sesión:
158
+ - XS → `log`
159
+ - S-M → `task`
160
+ - L-XL → `story`
161
+ 3. **Ejecutar script**:
162
+ ```bash
163
+ ./session-init.sh <type> <name> <tshirt>
164
+ ```
165
+ 4. **Completar templates** generados
166
+
167
+ ### Retomar Sesión Existente
168
+
169
+ 1. **Listar sesiones**:
170
+ ```bash
171
+ ./session-list.sh
172
+ ```
173
+ 2. **Leer archivos de la sesión**:
174
+ - `context.md` → Contexto general
175
+ - `requirements.md` → Qué hay que hacer
176
+ - `plan.md` → Cómo hacerlo
177
+ - `current/progress.md` → Estado actual
178
+ 3. **Continuar desarrollo**
179
+
180
+ ### Cambio de Scope
181
+
182
+ Cuando el alcance cambia significativamente:
183
+
184
+ 1. **Crear nueva iteración**:
185
+ ```bash
186
+ ./iteration-init.sh <session> scope-change "descripción"
187
+ ```
188
+ 2. **Actualizar** `requirements.md` o `plan.md`
189
+ 3. **Continuar** desde nueva iteración
190
+
191
+ ### Cerrar Sesión
192
+
193
+ 1. **Verificar** que todos los ACs están cumplidos
194
+ 2. **Cerrar sesión**:
195
+ ```bash
196
+ ./session-close.sh <session> "summary"
197
+ ```
198
+ 3. **Archivar** (opcional):
199
+ ```bash
200
+ ./session-archive.sh <session>
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Templates
206
+
207
+ ### Story (COMPLETE)
208
+
209
+ | Archivo | Propósito | Cambia entre iteraciones? |
210
+ |---------|-----------|---------------------------|
211
+ | `context.md` | Info permanente del proyecto | No |
212
+ | `requirements.md` | ACs, user stories | Sí (git history) |
213
+ | `plan.md` | Plan técnico | Sí (git history) |
214
+ | `scope.json` | Paths permitidos | Sí |
215
+ | `pendings.md` | Pendientes globales | Sí (acumulativo) |
216
+ | `tests.md` | Selectores, traducciones | Sí (acumulativo) |
217
+
218
+ ### Task (STANDARD)
219
+
220
+ | Archivo | Propósito |
221
+ |---------|-----------|
222
+ | `requirements.md` | Objetivo y ACs |
223
+ | `progress.md` | Estado actual |
224
+
225
+ ### Log (QUICK)
226
+
227
+ | Archivo | Propósito |
228
+ |---------|-----------|
229
+ | `{date}-{name}.md` | Registro del fix |
230
+
231
+ ---
232
+
233
+ ## Placeholders en Templates
234
+
235
+ | Placeholder | Descripción | Ejemplo |
236
+ |-------------|-------------|---------|
237
+ | `{{SESSION_NAME}}` | Nombre sin fecha | new-products-entity |
238
+ | `{{SESSION_FULL}}` | Nombre completo | 2026-01-11-new-products-entity |
239
+ | `{{DATE}}` | Fecha de creación | 2026-01-11 |
240
+ | `{{TSHIRT}}` | T-Shirt size | L |
241
+ | `{{ITERATION}}` | Número de iteración | 01 |
242
+ | `{{ITERATION_NAME}}` | Nombre de iteración | initial |
243
+ | `{{CLICKUP_URL}}` | URL de tarea (manual) | - |
244
+
245
+ ---
246
+
247
+ ## Integración con Comandos
248
+
249
+ Esta skill es utilizada por los comandos `/session:*`:
250
+
251
+ - `/session:start` → Usa `session-init.sh`
252
+ - `/session:resume` → Usa `session-list.sh` + lectura de archivos
253
+ - `/session:status` → Usa `session-list.sh`
254
+ - `/session:close` → Usa `session-close.sh`
255
+ - `/session:scope-change` → Usa `iteration-init.sh`
256
+
257
+ ---
258
+
259
+ ## Reducción de Tokens
260
+
261
+ | Operación | Sin Script | Con Script | Reducción |
262
+ |-----------|------------|------------|-----------|
263
+ | Crear story | ~2350 tokens | ~280 tokens | **88%** |
264
+ | Crear task | ~800 tokens | ~150 tokens | **81%** |
265
+ | Listar sesiones | ~500 tokens | ~100 tokens | **80%** |
266
+ | Nueva iteración | ~1200 tokens | ~200 tokens | **83%** |
@@ -0,0 +1,166 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Create Session Script
4
+
5
+ Creates a new development session folder with all 8 template files.
6
+ Part of the session-management skill.
7
+
8
+ Usage:
9
+ python create-session.py --name "feature-name" [--version 1]
10
+ python create-session.py -n "user-authentication" -v 2
11
+ """
12
+
13
+ import argparse
14
+ import os
15
+ import shutil
16
+ import sys
17
+ from datetime import datetime
18
+ from pathlib import Path
19
+
20
+
21
+ def get_project_root() -> Path:
22
+ """Find the project root by looking for .claude directory."""
23
+ current = Path(__file__).resolve()
24
+
25
+ # Walk up the directory tree
26
+ for parent in current.parents:
27
+ if (parent / ".claude").is_dir():
28
+ return parent
29
+
30
+ # Fallback: check current working directory
31
+ cwd = Path.cwd()
32
+ if (cwd / ".claude").is_dir():
33
+ return cwd
34
+
35
+ print("Error: Could not find project root (.claude directory)")
36
+ sys.exit(1)
37
+
38
+
39
+ def validate_name(name: str) -> str:
40
+ """Validate and normalize session name."""
41
+ # Convert to lowercase and replace spaces with hyphens
42
+ normalized = name.lower().strip().replace(" ", "-").replace("_", "-")
43
+
44
+ # Remove any characters that aren't alphanumeric or hyphens
45
+ cleaned = "".join(c for c in normalized if c.isalnum() or c == "-")
46
+
47
+ # Remove consecutive hyphens
48
+ while "--" in cleaned:
49
+ cleaned = cleaned.replace("--", "-")
50
+
51
+ # Remove leading/trailing hyphens
52
+ cleaned = cleaned.strip("-")
53
+
54
+ if not cleaned:
55
+ print("Error: Invalid session name. Must contain alphanumeric characters.")
56
+ sys.exit(1)
57
+
58
+ return cleaned
59
+
60
+
61
+ def create_session(name: str, version: int = 1) -> None:
62
+ """Create a new session folder with all template files."""
63
+ project_root = get_project_root()
64
+ templates_dir = project_root / ".claude" / "tools" / "sessions" / "templates"
65
+ sessions_dir = project_root / ".claude" / "sessions"
66
+
67
+ # Validate templates exist
68
+ if not templates_dir.is_dir():
69
+ print(f"Error: Templates directory not found: {templates_dir}")
70
+ sys.exit(1)
71
+
72
+ # Generate session name
73
+ date_str = datetime.now().strftime("%Y-%m-%d")
74
+ validated_name = validate_name(name)
75
+ session_name = f"{date_str}-{validated_name}-v{version}"
76
+ session_path = sessions_dir / session_name
77
+
78
+ # Check if session already exists
79
+ if session_path.exists():
80
+ print(f"Error: Session already exists: {session_path}")
81
+ print(f"Hint: Use --version {version + 1} to create a new version")
82
+ sys.exit(1)
83
+
84
+ # Create session directory
85
+ session_path.mkdir(parents=True, exist_ok=True)
86
+ print(f"Created session: {session_name}")
87
+
88
+ # Expected template files
89
+ template_files = [
90
+ "requirements.md",
91
+ "clickup_task.md",
92
+ "scope.json",
93
+ "plan.md",
94
+ "progress.md",
95
+ "context.md",
96
+ "tests.md",
97
+ "pendings.md",
98
+ ]
99
+
100
+ # Copy templates
101
+ copied_count = 0
102
+ for template_file in template_files:
103
+ src = templates_dir / template_file
104
+ dst = session_path / template_file
105
+
106
+ if src.exists():
107
+ shutil.copy2(src, dst)
108
+
109
+ # Replace placeholders in the copied file
110
+ if dst.suffix in [".md", ".json"]:
111
+ content = dst.read_text()
112
+ content = content.replace("YYYY-MM-DD", date_str)
113
+ content = content.replace("[Feature Name]", name.title())
114
+ content = content.replace("feature-name", validated_name)
115
+ content = content.replace("feature-name-v1", session_name)
116
+ dst.write_text(content)
117
+
118
+ copied_count += 1
119
+ print(f" ✓ {template_file}")
120
+ else:
121
+ print(f" ✗ {template_file} (template not found)")
122
+
123
+ print(f"\nSession created with {copied_count}/{len(template_files)} files")
124
+ print(f"\nSession path: {session_path}")
125
+ print("\nNext steps:")
126
+ print(" 1. Edit requirements.md with business requirements")
127
+ print(" 2. Configure scope.json with file permissions")
128
+ print(" 3. Run /task:plan to create technical plan")
129
+
130
+
131
+ def main():
132
+ parser = argparse.ArgumentParser(
133
+ description="Create a new development session folder",
134
+ formatter_class=argparse.RawDescriptionHelpFormatter,
135
+ epilog="""
136
+ Examples:
137
+ python create-session.py --name "user-authentication"
138
+ python create-session.py -n "scheduled-actions" -v 2
139
+ python create-session.py --name "billing integration"
140
+ """
141
+ )
142
+
143
+ parser.add_argument(
144
+ "-n", "--name",
145
+ required=True,
146
+ help="Session name (will be normalized to kebab-case)"
147
+ )
148
+
149
+ parser.add_argument(
150
+ "-v", "--version",
151
+ type=int,
152
+ default=1,
153
+ help="Session version number (default: 1)"
154
+ )
155
+
156
+ args = parser.parse_args()
157
+
158
+ if args.version < 1:
159
+ print("Error: Version must be a positive integer")
160
+ sys.exit(1)
161
+
162
+ create_session(args.name, args.version)
163
+
164
+
165
+ if __name__ == "__main__":
166
+ main()
@@ -0,0 +1,105 @@
1
+ #!/bin/bash
2
+ #
3
+ # iteration-close.sh - Close the current iteration without creating a new one
4
+ #
5
+ # Usage: iteration-close.sh <session-path> <status> [summary]
6
+ # session-path: path to story (e.g., stories/2026-01-11-new-entity)
7
+ # status: completed | blocked | paused
8
+ # summary: optional summary message
9
+ #
10
+ # Examples:
11
+ # ./iteration-close.sh stories/2026-01-11-new-products-entity completed
12
+ # ./iteration-close.sh stories/2026-01-11-new-products-entity blocked "Waiting for API"
13
+ #
14
+
15
+ set -e
16
+
17
+ # Colors
18
+ RED='\033[0;31m'
19
+ GREEN='\033[0;32m'
20
+ YELLOW='\033[1;33m'
21
+ BLUE='\033[0;34m'
22
+ NC='\033[0m'
23
+
24
+ # Get script directory
25
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
26
+ SESSIONS_DIR="$(dirname "$SCRIPT_DIR")"
27
+
28
+ # Parse arguments
29
+ SESSION_PATH="$1"
30
+ STATUS="$2"
31
+ SUMMARY="${3:-Iteration closed}"
32
+
33
+ # Validate session path
34
+ if [[ -z "$SESSION_PATH" ]]; then
35
+ echo -e "${RED}Error: Session path is required${NC}"
36
+ echo "Usage: $0 <session-path> <status> [summary]"
37
+ exit 1
38
+ fi
39
+
40
+ # Validate status
41
+ if [[ ! "$STATUS" =~ ^(completed|blocked|paused)$ ]]; then
42
+ echo -e "${RED}Error: Invalid status '$STATUS'${NC}"
43
+ echo "Valid statuses: completed, blocked, paused"
44
+ exit 1
45
+ fi
46
+
47
+ # Resolve full path
48
+ if [[ "$SESSION_PATH" != /* ]]; then
49
+ FULL_PATH="$SESSIONS_DIR/$SESSION_PATH"
50
+ else
51
+ FULL_PATH="$SESSION_PATH"
52
+ fi
53
+
54
+ # Check if session exists
55
+ if [[ ! -d "$FULL_PATH" ]]; then
56
+ echo -e "${RED}Error: Session not found: $FULL_PATH${NC}"
57
+ exit 1
58
+ fi
59
+
60
+ # Verify it's a story (has iterations folder)
61
+ if [[ ! -d "$FULL_PATH/iterations" ]]; then
62
+ echo -e "${RED}Error: Not a story session (no iterations folder)${NC}"
63
+ exit 1
64
+ fi
65
+
66
+ CURRENT_DIR="$FULL_PATH/current"
67
+ CLOSED_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ)
68
+
69
+ # Find current iteration
70
+ CURRENT_PROGRESS=$(readlink "$CURRENT_DIR/progress.md" 2>/dev/null || echo "")
71
+ if [[ -z "$CURRENT_PROGRESS" ]]; then
72
+ echo -e "${RED}Error: No active iteration found${NC}"
73
+ exit 1
74
+ fi
75
+
76
+ ITERATION_DIR=$(dirname "$CURRENT_PROGRESS")
77
+ ITERATION_DIR=$(cd "$CURRENT_DIR" && cd "$ITERATION_DIR" && pwd)
78
+ ITERATION_NAME=$(basename "$ITERATION_DIR")
79
+
80
+ echo -e "${BLUE}Closing iteration: $ITERATION_NAME${NC}"
81
+ echo ""
82
+
83
+ # Create closed.json
84
+ cat > "$ITERATION_DIR/closed.json" << EOF
85
+ {
86
+ "iteration": "$ITERATION_NAME",
87
+ "status": "$STATUS",
88
+ "closedAt": "$CLOSED_AT",
89
+ "closedBy": "claude",
90
+ "summary": "$SUMMARY"
91
+ }
92
+ EOF
93
+
94
+ echo -e "${GREEN}Iteration closed: $ITERATION_NAME${NC}"
95
+ echo -e "${GREEN}Status: $STATUS${NC}"
96
+ echo -e "${GREEN}Created: closed.json${NC}"
97
+ echo ""
98
+
99
+ if [[ "$STATUS" == "blocked" ]]; then
100
+ echo -e "${YELLOW}Note: Iteration is blocked. Use iteration-init.sh when ready to continue.${NC}"
101
+ elif [[ "$STATUS" == "paused" ]]; then
102
+ echo -e "${YELLOW}Note: Iteration is paused. Use iteration-init.sh with 'continuation' reason to resume.${NC}"
103
+ else
104
+ echo -e "${BLUE}Session can now be archived with session-archive.sh${NC}"
105
+ fi