@relipa/ai-flow-kit 0.1.4 → 0.1.5-beta.1

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 (326) hide show
  1. package/README.md +0 -0
  2. package/bin/aiflow.js +0 -0
  3. package/bin/ak.js +0 -0
  4. package/custom/harness/playwright/.env.example +0 -0
  5. package/custom/harness/playwright/playwright.config.ts +0 -0
  6. package/custom/harness/playwright/tests/e2e/auth.setup.ts +0 -0
  7. package/custom/harness/playwright/tests/e2e/fixtures/test.ts +0 -0
  8. package/custom/harness/playwright/tests/e2e/pages/BasePage.ts +0 -0
  9. package/custom/harness/playwright/tests/e2e/support/auth.ts +0 -0
  10. package/custom/mcp-presets/README.md +0 -0
  11. package/custom/mcp-presets/backlog.json +0 -0
  12. package/custom/mcp-presets/figma-desktop.json +0 -0
  13. package/custom/mcp-presets/figma.json +0 -0
  14. package/custom/mcp-presets/gitnexus.json +0 -0
  15. package/custom/mcp-presets/google-sheets.json +0 -0
  16. package/custom/mcp-presets/jira.json +0 -0
  17. package/custom/mcp-presets/playwright.json +0 -0
  18. package/custom/prompts/bug-fix.md +0 -0
  19. package/custom/prompts/feature.md +0 -0
  20. package/custom/prompts/investigation.md +0 -0
  21. package/custom/rules/code-style.md +0 -0
  22. package/custom/rules/java/code-style.md +0 -0
  23. package/custom/rules/java/naming.md +0 -0
  24. package/custom/rules/java/review-checklist.md +0 -0
  25. package/custom/rules/java/spring-boot-examples.md +0 -0
  26. package/custom/rules/javascript/code-style.md +0 -0
  27. package/custom/rules/javascript/naming.md +0 -0
  28. package/custom/rules/ml-conventions.md +0 -0
  29. package/custom/rules/ml-review-checklist.md +0 -0
  30. package/custom/rules/naming.md +0 -0
  31. package/custom/rules/php/code-style.md +0 -0
  32. package/custom/rules/php/naming.md +0 -0
  33. package/custom/rules/project-conventions.md +67 -51
  34. package/custom/rules/review-checklist.md +0 -0
  35. package/custom/rules/test-patterns.md +0 -0
  36. package/custom/skills/automation-testing/SKILL.md +0 -0
  37. package/custom/skills/automation-testing/templates/BasePage.ts +0 -0
  38. package/custom/skills/automation-testing/templates/PageObject.example.ts +0 -0
  39. package/custom/skills/automation-testing/templates/playwright.config.ts +0 -0
  40. package/custom/skills/automation-testing/templates/spec.example.ts +0 -0
  41. package/custom/skills/ba-skills/{skill-ba-xay-dung-business-rules-v1.md → skill-ba-build-business-rules-v1.md} +0 -0
  42. package/custom/skills/ba-skills/{skill-ba-template-phan-tich-ban-dau-v1.md → skill-ba-initial-analysis-template-v1.md} +0 -0
  43. package/custom/skills/ba-skills/{skill-ba-phan-tich-ban-dau-v1.md → skill-ba-initial-analysis-v1.md} +2 -2
  44. package/custom/skills/ba-skills/{skill-ba-ve-luong-mermaid-v1.md → skill-ba-mermaid-flowchart-v1.md} +0 -0
  45. package/custom/skills/ba-skills/{skill-ba-qa-template-v1.md → skill-ba-qna-template-v1.md} +0 -0
  46. package/custom/skills/ba-skills/{skill-ba-qa-v1.md → skill-ba-qna-v1.md} +2 -2
  47. package/custom/skills/ba-skills/{skill-ba-template-uc-v1.md → skill-ba-uc-template-v1.md} +0 -0
  48. package/custom/skills/ba-skills/{skill-ba-prototype-v1.md → skill-ba-ui-prototype-v1.md} +2 -2
  49. package/custom/skills/ba-skills/{skill-ba-viet-spec-uc-v1.md → skill-ba-write-uc-spec-v1.md} +4 -4
  50. package/custom/skills/coverage-check/SKILL.md +0 -0
  51. package/custom/skills/deploy-model/SKILL.md +0 -0
  52. package/custom/skills/design-experiment/SKILL.md +0 -0
  53. package/custom/skills/evaluate-model/SKILL.md +0 -0
  54. package/custom/skills/evidence-aggregation/SKILL.md +0 -0
  55. package/custom/skills/execute-flow/SKILL.md +0 -0
  56. package/custom/skills/execute-flow/templates/playwright.config.ts +0 -0
  57. package/custom/skills/explore-data/SKILL.md +0 -0
  58. package/custom/skills/figma-to-component/SKILL.md +0 -0
  59. package/custom/skills/frame-ml-problem/SKILL.md +0 -0
  60. package/custom/skills/gate-review/SKILL.md +1 -1
  61. package/custom/skills/generate-spec/SKILL.md +99 -99
  62. package/custom/skills/generate-test-report/SKILL.md +0 -0
  63. package/custom/skills/generate-test-report/templates/test-report.md +0 -0
  64. package/custom/skills/generate-testcase/SKILL.md +0 -0
  65. package/custom/skills/generate-testcase/templates/testcase.md +0 -0
  66. package/custom/skills/impact-analysis/SKILL.md +0 -0
  67. package/custom/skills/improve-algorithm/SKILL.md +0 -0
  68. package/custom/skills/investigate-bug/SKILL.md +0 -0
  69. package/custom/skills/log-bug/SKILL.md +0 -0
  70. package/custom/skills/pr-impact-analysis/SKILL.md +0 -0
  71. package/custom/skills/read-study-requirement/SKILL.md +7 -5
  72. package/custom/skills/report-customer/SKILL.md +0 -0
  73. package/custom/skills/retest-orchestration/SKILL.md +0 -0
  74. package/custom/skills/review-plan/SKILL.md +194 -194
  75. package/custom/skills/script-sync/SKILL.md +0 -0
  76. package/custom/skills/test-analysis/SKILL.md +0 -0
  77. package/custom/skills/test-skills/categories/00-core/00.01.requirement-analysis.md +0 -0
  78. package/custom/skills/test-skills/categories/00-core/00.02.risk-analysis.md +0 -0
  79. package/custom/skills/test-skills/categories/00-core/00.03.test-scenario-builder.md +0 -0
  80. package/custom/skills/test-skills/categories/00-core/00.04.testcase-review.md +0 -0
  81. package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md +0 -0
  82. package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md +0 -0
  83. package/custom/skills/test-skills/categories/01-test-design/01.03.decision-table.md +0 -0
  84. package/custom/skills/test-skills/categories/01-test-design/01.04.state.transition.md +0 -0
  85. package/custom/skills/test-skills/categories/01-test-design/01.05.pairwise.md +0 -0
  86. package/custom/skills/test-skills/categories/01-test-design/01.06.error-guessing.md +0 -0
  87. package/custom/skills/test-skills/categories/02-ui-testing/02.01.UI-layout.md +0 -0
  88. package/custom/skills/test-skills/categories/02-ui-testing/02.02.form-validation.md +0 -0
  89. package/custom/skills/test-skills/categories/02-ui-testing/02.03.navigation.md +0 -0
  90. package/custom/skills/test-skills/categories/02-ui-testing/02.04.localization.md +0 -0
  91. package/custom/skills/test-skills/categories/02-ui-testing/02.05.accessibility.md +0 -0
  92. package/custom/skills/test-skills/categories/03-business-testing/03.01.CRUD-testing.md +0 -0
  93. package/custom/skills/test-skills/categories/03-business-testing/03.02.workflow-testing.md +0 -0
  94. package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md +0 -0
  95. package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md +0 -0
  96. package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md +0 -0
  97. package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md +0 -0
  98. package/custom/skills/test-skills/categories/04-data-testing/04.01.database-testing.md +0 -0
  99. package/custom/skills/test-skills/categories/04-data-testing/04.02.import-export-testing.md +0 -0
  100. package/custom/skills/test-skills/categories/04-data-testing/04.03.data-mapping.md +0 -0
  101. package/custom/skills/test-skills/categories/04-data-testing/04.04.duplicate-handling.md +0 -0
  102. package/custom/skills/test-skills/categories/04-data-testing/04.05.migration.md +0 -0
  103. package/custom/skills/test-skills/categories/05-integration/05.01.API-testing.md +0 -0
  104. package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md +0 -0
  105. package/custom/skills/test-skills/categories/05-integration/05.03.batch-processing.md +0 -0
  106. package/custom/skills/test-skills/categories/05-integration/05.04.file-upload-download.md +0 -0
  107. package/custom/skills/test-skills/categories/08-domain-skills/CMS.md +0 -0
  108. package/custom/skills/test-skills/categories/08-domain-skills/Ecommerce.md +0 -0
  109. package/custom/skills/test-skills/categories/99-review/99.01.coverage-review.md +0 -0
  110. package/custom/skills/test-skills/categories/99-review/99.02.knowledge-learning.md +0 -0
  111. package/custom/skills/test-skills/categories/99-review/99.03.repository-update.md +0 -0
  112. package/custom/skills/test-skills/categories/99-review/99.04.change-history.md +0 -0
  113. package/custom/skills/test-skills/rules/directory-and-naming-convention.md +158 -0
  114. package/custom/skills/test-skills/rules/{QA_Writing_Standards.md → qa-writing-standards.md} +0 -0
  115. package/custom/skills/test-skills/template/{template_testcase.md → testcase-template.md} +0 -0
  116. package/custom/skills/train-model/SKILL.md +0 -0
  117. package/custom/templates/laravel.md +0 -0
  118. package/custom/templates/nestjs.md +0 -0
  119. package/custom/templates/nextjs.md +0 -0
  120. package/custom/templates/nodejs-express.md +0 -0
  121. package/custom/templates/php-plain.md +0 -0
  122. package/custom/templates/php.md +0 -0
  123. package/custom/templates/python-django.md +0 -0
  124. package/custom/templates/python-fastapi.md +0 -0
  125. package/custom/templates/python-ml.md +0 -0
  126. package/custom/templates/python.md +0 -0
  127. package/custom/templates/reactjs.md +0 -0
  128. package/custom/templates/shared/coding-workflow.md +15 -0
  129. package/custom/templates/shared/create-spec-workflow.md +80 -89
  130. package/custom/templates/shared/create-testcase-workflow.md +86 -84
  131. package/custom/templates/shared/gate-workflow.md +64 -11
  132. package/custom/templates/shared/ml-gate-workflow.md +0 -0
  133. package/custom/templates/spring-boot.md +0 -0
  134. package/custom/templates/tools/claude.md +13 -13
  135. package/custom/templates/tools/copilot.md +12 -12
  136. package/custom/templates/tools/cursor.md +12 -12
  137. package/custom/templates/tools/gemini.md +22 -22
  138. package/custom/templates/tools/generic.md +17 -17
  139. package/custom/templates/vue-nuxt.md +0 -0
  140. package/docs/common/AIFLOW.md +10 -10
  141. package/docs/common/CHANGELOG.md +33 -9
  142. package/docs/common/QUICK_START.md +0 -0
  143. package/docs/common/ai-integration.md +53 -53
  144. package/docs/common/cli-reference.md +0 -0
  145. package/docs/common/configuration.md +0 -0
  146. package/docs/common/getting-started.md +0 -0
  147. package/docs/common/troubleshooting.md +0 -0
  148. package/docs/common/workflows/bug-fix.md +126 -126
  149. package/docs/common/workflows/feature.md +123 -123
  150. package/docs/common/workflows/figma.md +0 -0
  151. package/docs/common/workflows/impact-analysis.md +0 -0
  152. package/docs/common/workflows/investigation.md +0 -0
  153. package/docs/common/workflows/refactor.md +0 -0
  154. package/docs/project/ARCHITECTURE.md +0 -0
  155. package/index.js +0 -0
  156. package/package.json +1 -1
  157. package/scripts/checkpoint.js +0 -0
  158. package/scripts/config.js +0 -0
  159. package/scripts/context.js +0 -0
  160. package/scripts/create-score-excel.js +41 -47
  161. package/scripts/detect.js +0 -0
  162. package/scripts/doctor.js +0 -0
  163. package/scripts/gitnexus-worker.js +0 -0
  164. package/scripts/guide.js +0 -0
  165. package/scripts/hooks/block-git-write.js +0 -0
  166. package/scripts/hooks/session-start.js +10 -5
  167. package/scripts/hooks/session-stop.js +0 -0
  168. package/scripts/init.js +5 -0
  169. package/scripts/memory.js +0 -0
  170. package/scripts/prompt.js +0 -0
  171. package/scripts/remove.js +0 -0
  172. package/scripts/review.js +0 -0
  173. package/scripts/scaffold-playwright.js +0 -0
  174. package/scripts/task.js +69 -22
  175. package/scripts/telemetry/cli.js +0 -0
  176. package/scripts/telemetry/config.js +0 -0
  177. package/scripts/telemetry/crypto.js +0 -0
  178. package/scripts/telemetry/flush.js +0 -0
  179. package/scripts/telemetry/record.js +0 -0
  180. package/scripts/update.js +0 -0
  181. package/scripts/use.js +3 -2
  182. package/scripts/validate.js +0 -0
  183. package/upstream/.claude-plugin/marketplace.json +0 -0
  184. package/upstream/.claude-plugin/plugin.json +0 -0
  185. package/upstream/.codex/INSTALL.md +0 -0
  186. package/upstream/.cursor-plugin/plugin.json +0 -0
  187. package/upstream/.gitattributes +0 -0
  188. package/upstream/.github/FUNDING.yml +0 -0
  189. package/upstream/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  190. package/upstream/.github/ISSUE_TEMPLATE/config.yml +0 -0
  191. package/upstream/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  192. package/upstream/.github/ISSUE_TEMPLATE/platform_support.md +0 -0
  193. package/upstream/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  194. package/upstream/.opencode/INSTALL.md +0 -0
  195. package/upstream/.opencode/plugins/superpowers.js +0 -0
  196. package/upstream/.version-bump.json +0 -0
  197. package/upstream/AGENTS.md +0 -0
  198. package/upstream/CHANGELOG.md +0 -0
  199. package/upstream/CLAUDE.md +0 -0
  200. package/upstream/CODE_OF_CONDUCT.md +0 -0
  201. package/upstream/GEMINI.md +0 -0
  202. package/upstream/LICENSE +0 -0
  203. package/upstream/README.md +0 -0
  204. package/upstream/RELEASE-NOTES.md +0 -0
  205. package/upstream/agents/code-reviewer.md +0 -0
  206. package/upstream/commands/brainstorm.md +0 -0
  207. package/upstream/commands/execute-plan.md +0 -0
  208. package/upstream/commands/write-plan.md +0 -0
  209. package/upstream/docs/README.codex.md +0 -0
  210. package/upstream/docs/README.opencode.md +0 -0
  211. package/upstream/docs/plans/2025-11-22-opencode-support-design.md +0 -0
  212. package/upstream/docs/plans/2025-11-22-opencode-support-implementation.md +0 -0
  213. package/upstream/docs/plans/2025-11-28-skills-improvements-from-user-feedback.md +0 -0
  214. package/upstream/docs/plans/2026-01-17-visual-brainstorming.md +0 -0
  215. package/upstream/docs/superpowers/plans/2026-01-22-document-review-system.md +0 -0
  216. package/upstream/docs/superpowers/plans/2026-02-19-visual-brainstorming-refactor.md +0 -0
  217. package/upstream/docs/superpowers/plans/2026-03-11-zero-dep-brainstorm-server.md +0 -0
  218. package/upstream/docs/superpowers/plans/2026-03-23-codex-app-compatibility.md +0 -0
  219. package/upstream/docs/superpowers/specs/2026-01-22-document-review-system-design.md +0 -0
  220. package/upstream/docs/superpowers/specs/2026-02-19-visual-brainstorming-refactor-design.md +0 -0
  221. package/upstream/docs/superpowers/specs/2026-03-11-zero-dep-brainstorm-server-design.md +0 -0
  222. package/upstream/docs/superpowers/specs/2026-03-23-codex-app-compatibility-design.md +0 -0
  223. package/upstream/docs/testing.md +0 -0
  224. package/upstream/docs/windows/polyglot-hooks.md +0 -0
  225. package/upstream/gemini-extension.json +0 -0
  226. package/upstream/hooks/hooks-cursor.json +0 -0
  227. package/upstream/hooks/hooks.json +0 -0
  228. package/upstream/hooks/run-hook.cmd +0 -0
  229. package/upstream/hooks/session-start +0 -0
  230. package/upstream/package.json +0 -0
  231. package/upstream/scripts/bump-version.sh +0 -0
  232. package/upstream/skills/brainstorming/SKILL.md +0 -0
  233. package/upstream/skills/brainstorming/scripts/frame-template.html +0 -0
  234. package/upstream/skills/brainstorming/scripts/helper.js +0 -0
  235. package/upstream/skills/brainstorming/scripts/server.cjs +0 -0
  236. package/upstream/skills/brainstorming/scripts/start-server.sh +0 -0
  237. package/upstream/skills/brainstorming/scripts/stop-server.sh +0 -0
  238. package/upstream/skills/brainstorming/spec-document-reviewer-prompt.md +0 -0
  239. package/upstream/skills/brainstorming/visual-companion.md +0 -0
  240. package/upstream/skills/dispatching-parallel-agents/SKILL.md +0 -0
  241. package/upstream/skills/executing-plans/SKILL.md +0 -0
  242. package/upstream/skills/finishing-a-development-branch/SKILL.md +0 -0
  243. package/upstream/skills/receiving-code-review/SKILL.md +0 -0
  244. package/upstream/skills/requesting-code-review/SKILL.md +0 -0
  245. package/upstream/skills/requesting-code-review/code-reviewer.md +0 -0
  246. package/upstream/skills/subagent-driven-development/SKILL.md +0 -0
  247. package/upstream/skills/subagent-driven-development/code-quality-reviewer-prompt.md +0 -0
  248. package/upstream/skills/subagent-driven-development/implementer-prompt.md +0 -0
  249. package/upstream/skills/subagent-driven-development/spec-reviewer-prompt.md +0 -0
  250. package/upstream/skills/systematic-debugging/CREATION-LOG.md +0 -0
  251. package/upstream/skills/systematic-debugging/SKILL.md +0 -0
  252. package/upstream/skills/systematic-debugging/condition-based-waiting-example.ts +0 -0
  253. package/upstream/skills/systematic-debugging/condition-based-waiting.md +0 -0
  254. package/upstream/skills/systematic-debugging/defense-in-depth.md +0 -0
  255. package/upstream/skills/systematic-debugging/find-polluter.sh +0 -0
  256. package/upstream/skills/systematic-debugging/root-cause-tracing.md +0 -0
  257. package/upstream/skills/systematic-debugging/test-academic.md +0 -0
  258. package/upstream/skills/systematic-debugging/test-pressure-1.md +0 -0
  259. package/upstream/skills/systematic-debugging/test-pressure-2.md +0 -0
  260. package/upstream/skills/systematic-debugging/test-pressure-3.md +0 -0
  261. package/upstream/skills/tdd-lean/SKILL.md +0 -0
  262. package/upstream/skills/test-driven-development/SKILL.md +0 -0
  263. package/upstream/skills/test-driven-development/testing-anti-patterns.md +0 -0
  264. package/upstream/skills/using-git-worktrees/SKILL.md +0 -0
  265. package/upstream/skills/using-superpowers/SKILL.md +0 -0
  266. package/upstream/skills/using-superpowers/references/codex-tools.md +0 -0
  267. package/upstream/skills/using-superpowers/references/copilot-tools.md +0 -0
  268. package/upstream/skills/using-superpowers/references/gemini-tools.md +0 -0
  269. package/upstream/skills/verification-before-completion/SKILL.md +0 -0
  270. package/upstream/skills/writing-plans/SKILL.md +0 -0
  271. package/upstream/skills/writing-plans/plan-document-reviewer-prompt.md +0 -0
  272. package/upstream/skills/writing-skills/SKILL.md +0 -0
  273. package/upstream/skills/writing-skills/anthropic-best-practices.md +0 -0
  274. package/upstream/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -0
  275. package/upstream/skills/writing-skills/graphviz-conventions.dot +0 -0
  276. package/upstream/skills/writing-skills/persuasion-principles.md +0 -0
  277. package/upstream/skills/writing-skills/render-graphs.js +0 -0
  278. package/upstream/skills/writing-skills/testing-skills-with-subagents.md +0 -0
  279. package/upstream/tests/brainstorm-server/package-lock.json +0 -0
  280. package/upstream/tests/brainstorm-server/package.json +0 -0
  281. package/upstream/tests/brainstorm-server/server.test.js +0 -0
  282. package/upstream/tests/brainstorm-server/windows-lifecycle.test.sh +0 -0
  283. package/upstream/tests/brainstorm-server/ws-protocol.test.js +0 -0
  284. package/upstream/tests/claude-code/README.md +0 -0
  285. package/upstream/tests/claude-code/analyze-token-usage.py +0 -0
  286. package/upstream/tests/claude-code/run-skill-tests.sh +0 -0
  287. package/upstream/tests/claude-code/test-document-review-system.sh +0 -0
  288. package/upstream/tests/claude-code/test-helpers.sh +0 -0
  289. package/upstream/tests/claude-code/test-subagent-driven-development-integration.sh +0 -0
  290. package/upstream/tests/claude-code/test-subagent-driven-development.sh +0 -0
  291. package/upstream/tests/explicit-skill-requests/prompts/action-oriented.txt +0 -0
  292. package/upstream/tests/explicit-skill-requests/prompts/after-planning-flow.txt +0 -0
  293. package/upstream/tests/explicit-skill-requests/prompts/claude-suggested-it.txt +0 -0
  294. package/upstream/tests/explicit-skill-requests/prompts/i-know-what-sdd-means.txt +0 -0
  295. package/upstream/tests/explicit-skill-requests/prompts/mid-conversation-execute-plan.txt +0 -0
  296. package/upstream/tests/explicit-skill-requests/prompts/please-use-brainstorming.txt +0 -0
  297. package/upstream/tests/explicit-skill-requests/prompts/skip-formalities.txt +0 -0
  298. package/upstream/tests/explicit-skill-requests/prompts/subagent-driven-development-please.txt +0 -0
  299. package/upstream/tests/explicit-skill-requests/prompts/use-systematic-debugging.txt +0 -0
  300. package/upstream/tests/explicit-skill-requests/run-all.sh +0 -0
  301. package/upstream/tests/explicit-skill-requests/run-claude-describes-sdd.sh +0 -0
  302. package/upstream/tests/explicit-skill-requests/run-extended-multiturn-test.sh +0 -0
  303. package/upstream/tests/explicit-skill-requests/run-haiku-test.sh +0 -0
  304. package/upstream/tests/explicit-skill-requests/run-multiturn-test.sh +0 -0
  305. package/upstream/tests/explicit-skill-requests/run-test.sh +0 -0
  306. package/upstream/tests/opencode/run-tests.sh +0 -0
  307. package/upstream/tests/opencode/setup.sh +0 -0
  308. package/upstream/tests/opencode/test-plugin-loading.sh +0 -0
  309. package/upstream/tests/opencode/test-priority.sh +0 -0
  310. package/upstream/tests/opencode/test-tools.sh +0 -0
  311. package/upstream/tests/skill-triggering/prompts/dispatching-parallel-agents.txt +0 -0
  312. package/upstream/tests/skill-triggering/prompts/executing-plans.txt +0 -0
  313. package/upstream/tests/skill-triggering/prompts/requesting-code-review.txt +0 -0
  314. package/upstream/tests/skill-triggering/prompts/systematic-debugging.txt +0 -0
  315. package/upstream/tests/skill-triggering/prompts/test-driven-development.txt +0 -0
  316. package/upstream/tests/skill-triggering/prompts/writing-plans.txt +0 -0
  317. package/upstream/tests/skill-triggering/run-all.sh +0 -0
  318. package/upstream/tests/skill-triggering/run-test.sh +0 -0
  319. package/upstream/tests/subagent-driven-dev/go-fractals/design.md +0 -0
  320. package/upstream/tests/subagent-driven-dev/go-fractals/plan.md +0 -0
  321. package/upstream/tests/subagent-driven-dev/go-fractals/scaffold.sh +0 -0
  322. package/upstream/tests/subagent-driven-dev/run-test.sh +0 -0
  323. package/upstream/tests/subagent-driven-dev/svelte-todo/design.md +0 -0
  324. package/upstream/tests/subagent-driven-dev/svelte-todo/plan.md +0 -0
  325. package/upstream/tests/subagent-driven-dev/svelte-todo/scaffold.sh +0 -0
  326. package/custom/skills/test-skills/rules/Directory_and_Naming_Convention.md +0 -257
@@ -1,123 +1,123 @@
1
- # Feature Development Workflow
2
-
3
- > See the full workflow at [AIFLOW.md](../../AIFLOW.md)
4
- > **Gates must pass in order: 1 → 2 → 3 → 4 → 5**
5
-
6
- ---
7
-
8
- ## Step 1: Load ticket & AI analyzes (Gate 1)
9
-
10
- ```bash
11
- aiflow use PROJ-33 # from Backlog/Jira
12
- claude # AI auto-starts Gate 1
13
- ```
14
-
15
- AI will **automatically**:
16
- 1. Load ticket info from Backlog/Jira
17
- 2. Read source code — understand architecture, related files, patterns
18
- 3. Ask clarifying questions if anything is unclear (one at a time)
19
- 4. Output `plan/[ticket-id]/requirement.md` containing:
20
- - Requirements summary (AI's understanding)
21
- - Source code analysis (related files, data flow)
22
- - **Proposed solution** with options and recommendation
23
- - **Impact analysis** — affected areas, risks
24
- - **Effort estimate** (S/M/L/XL)
25
- - Testing plan
26
-
27
- **PM needs to prepare on the ticket:**
28
- ```markdown
29
- ## Description
30
- Clear business requirement. Who uses it, and for what purpose.
31
-
32
- ## Acceptance Criteria
33
- - [ ] [Condition for completion 1]
34
- - [ ] [Condition for completion 2]
35
-
36
- ## Mockup / Wireframe
37
- [Link or UI description]
38
-
39
- ## Context
40
- Constraints, business rules specially requiring attention.
41
- ```
42
-
43
- **If ticket content is unclear:** AI will ask questions based on source code analysis — not just checking format.
44
-
45
- **When satisfied with the requirement document, type:**
46
- ```
47
- APPROVED
48
- ```
49
-
50
- ---
51
-
52
- ## Step 2: Review Implementation Plan (Gate 2)
53
-
54
- AI generates a detailed implementation plan:
55
- - TDD task breakdown (test first → implement → verify)
56
- - Commit strategy (small, focused commits)
57
- - Test commands
58
-
59
- **When agreed, type:**
60
- ```
61
- APPROVED
62
- ```
63
-
64
- **CODE WILL NOT BE GENERATED BEFORE RECEIVING "APPROVED".**
65
-
66
- ---
67
-
68
- ## Step 3: AI Generate Code (Gate 3)
69
-
70
- AI performs automatically:
71
- 1. Complex feature (3+ files): `superpowers:subagent-driven-development`
72
- 2. Write tests FIRST → run → confirm FAIL
73
- 3. Implement → tests PASS
74
- 4. Commit each small step
75
-
76
- Developer doesn't need to do anything at this step — just monitor.
77
-
78
- ---
79
-
80
- ## Step 4: Review Summary (Gate 4)
81
-
82
- AI runs:
83
- 1. `superpowers:verification-before-completion` — all tests PASS
84
- 2. `impact-analysis` — no breaking changes outside of scope
85
- 3. Review checklist — all items ticked
86
- 4. Create `plan/[ticket-id]/summary.md`
87
-
88
- AI displays summary and waits for developer review.
89
-
90
- **If OK, type:**
91
- ```
92
- APPROVED
93
- ```
94
-
95
- **If there are bugs, type:**
96
- ```
97
- BUG: [specific description]
98
- ```
99
- - Coding bug → AI fixes → repeat Gate 4
100
- - Requirement bug → AI returns to Gate 1, update requirement doc
101
-
102
- ---
103
-
104
- ## Step 5: Peer Review & PR (Gate 5)
105
-
106
- AI invokes `superpowers:requesting-code-review` and guides PR creation.
107
-
108
- ```bash
109
- git push origin feature/PROJ-33-feature-name
110
- # Create PR with full description following the template in AIFLOW.md
111
- ```
112
-
113
- Peer reviewer uses the `superpowers:receiving-code-review` skill during review.
114
-
115
- ---
116
-
117
- ## Completion Checklist
118
-
119
- - [ ] Gate 1 APPROVED — requirement doc with solution, impact, estimate
120
- - [ ] Gate 2 APPROVED — implementation plan confirmed by developer
121
- - [ ] Gate 3 done — code + tests are green
122
- - [ ] Gate 4 APPROVED — summary + checklist complete
123
- - [ ] Gate 5 done — PR is peer-reviewed and merged
1
+ # Feature Development Workflow
2
+
3
+ > See the full workflow at [AIFLOW.md](../../AIFLOW.md)
4
+ > **Gates must pass in order: 1 → 2 → 3 → 4 → 5**
5
+
6
+ ---
7
+
8
+ ## Step 1: Load ticket & AI analyzes (Gate 1)
9
+
10
+ ```bash
11
+ aiflow use PROJ-33 # from Backlog/Jira
12
+ claude # AI auto-starts Gate 1
13
+ ```
14
+
15
+ AI will **automatically**:
16
+ 1. Load ticket info from Backlog/Jira
17
+ 2. Read source code — understand architecture, related files, patterns
18
+ 3. Ask clarifying questions if anything is unclear (one at a time)
19
+ 4. Output `04.Coding/01.Requirements/[functionId]/[ticketId].md` containing:
20
+ - Requirements summary (AI's understanding)
21
+ - Source code analysis (related files, data flow)
22
+ - **Proposed solution** with options and recommendation
23
+ - **Impact analysis** — affected areas, risks
24
+ - **Effort estimate** (S/M/L/XL)
25
+ - Testing plan
26
+
27
+ **PM needs to prepare on the ticket:**
28
+ ```markdown
29
+ ## Description
30
+ Clear business requirement. Who uses it, and for what purpose.
31
+
32
+ ## Acceptance Criteria
33
+ - [ ] [Condition for completion 1]
34
+ - [ ] [Condition for completion 2]
35
+
36
+ ## Mockup / Wireframe
37
+ [Link or UI description]
38
+
39
+ ## Context
40
+ Constraints, business rules specially requiring attention.
41
+ ```
42
+
43
+ **If ticket content is unclear:** AI will ask questions based on source code analysis — not just checking format.
44
+
45
+ **When satisfied with the requirement document, type:**
46
+ ```
47
+ APPROVED
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Step 2: Review Implementation Plan (Gate 2)
53
+
54
+ AI generates a detailed implementation plan:
55
+ - TDD task breakdown (test first → implement → verify)
56
+ - Commit strategy (small, focused commits)
57
+ - Test commands
58
+
59
+ **When agreed, type:**
60
+ ```
61
+ APPROVED
62
+ ```
63
+
64
+ **CODE WILL NOT BE GENERATED BEFORE RECEIVING "APPROVED".**
65
+
66
+ ---
67
+
68
+ ## Step 3: AI Generate Code (Gate 3)
69
+
70
+ AI performs automatically:
71
+ 1. Complex feature (3+ files): `superpowers:subagent-driven-development`
72
+ 2. Write tests FIRST → run → confirm FAIL
73
+ 3. Implement → tests PASS
74
+ 4. Commit each small step
75
+
76
+ Developer doesn't need to do anything at this step — just monitor.
77
+
78
+ ---
79
+
80
+ ## Step 4: Review Summary (Gate 4)
81
+
82
+ AI runs:
83
+ 1. `superpowers:verification-before-completion` — all tests PASS
84
+ 2. `impact-analysis` — no breaking changes outside of scope
85
+ 3. Review checklist — all items ticked
86
+ 4. Create `04.Coding/04.Reviews/[functionId]/[ticketId].md`
87
+
88
+ AI displays summary and waits for developer review.
89
+
90
+ **If OK, type:**
91
+ ```
92
+ APPROVED
93
+ ```
94
+
95
+ **If there are bugs, type:**
96
+ ```
97
+ BUG: [specific description]
98
+ ```
99
+ - Coding bug → AI fixes → repeat Gate 4
100
+ - Requirement bug → AI returns to Gate 1, update requirement doc
101
+
102
+ ---
103
+
104
+ ## Step 5: Peer Review & PR (Gate 5)
105
+
106
+ AI invokes `superpowers:requesting-code-review` and guides PR creation.
107
+
108
+ ```bash
109
+ git push origin feature/PROJ-33-feature-name
110
+ # Create PR with full description following the template in AIFLOW.md
111
+ ```
112
+
113
+ Peer reviewer uses the `superpowers:receiving-code-review` skill during review.
114
+
115
+ ---
116
+
117
+ ## Completion Checklist
118
+
119
+ - [ ] Gate 1 APPROVED — requirement doc with solution, impact, estimate
120
+ - [ ] Gate 2 APPROVED — implementation plan confirmed by developer
121
+ - [ ] Gate 3 done — code + tests are green
122
+ - [ ] Gate 4 APPROVED — summary + checklist complete
123
+ - [ ] Gate 5 done — PR is peer-reviewed and merged
File without changes
File without changes
File without changes
File without changes
File without changes
package/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relipa/ai-flow-kit",
3
- "version": "0.1.4",
3
+ "version": "0.1.5-beta.1",
4
4
  "description": "All-in-one AI Flow Kit for team development with Claude AI - skills, templates, and MCP adapters",
5
5
  "author": "Example Team",
6
6
  "publishConfig": {
File without changes
package/scripts/config.js CHANGED
File without changes
File without changes
@@ -39,8 +39,8 @@ function parseLog(filePath) {
39
39
  if (!user || user === '-' || user === '') continue;
40
40
 
41
41
  const timestamp = cols[0] || '';
42
- const command = cols[6] || '';
43
- const ticket = cols[9] || '';
42
+ const command = cols[6] || '';
43
+ const ticket = cols[9] || '';
44
44
 
45
45
  const date = timestamp.split(' ')[0]; // dd/MM/yyyy
46
46
 
@@ -74,10 +74,10 @@ function calcScore(u) {
74
74
  if (events === 0) return 0;
75
75
 
76
76
  // Gate aggregation
77
- const gateStarted = new Set(); // gate numbers
78
- const gateApproved = new Set();
79
- const ticketsStarted = new Set();
80
- const ticketsCompleted = new Set(); // gate4.approved or gate5.start
77
+ const gateStarted = new Set(); // gate numbers
78
+ const gateApproved = new Set();
79
+ const ticketsStarted = new Set();
80
+ const ticketsCompleted = new Set(); // gate4.approved or gate5.start
81
81
 
82
82
  for (const g of gateCmds) {
83
83
  const hasTicket = g.ticket && g.ticket !== '-' && g.ticket !== '';
@@ -97,9 +97,9 @@ function calcScore(u) {
97
97
  }
98
98
  }
99
99
 
100
- const hasUse = USE_CMDS.has('use') && rawCmds.has('use');
101
- const hasPrompt = rawCmds.has('prompt');
102
- const hasGuide = rawCmds.has('guide') || rawCmds.has('guideline') || rawCmds.has('sync-skills');
100
+ const hasUse = USE_CMDS.has('use') && rawCmds.has('use');
101
+ const hasPrompt = rawCmds.has('prompt');
102
+ const hasGuide = rawCmds.has('guide') || rawCmds.has('guideline') || rawCmds.has('sync-skills');
103
103
  const hasGateHighApproved = gateApproved.has(3) || gateApproved.has(4);
104
104
 
105
105
  // Score 5: gate 3-5 approved + ≥ 3 tickets completed
@@ -122,9 +122,9 @@ function calcScore(u) {
122
122
  }
123
123
 
124
124
  const SCORE_LABELS = [
125
- 'Không hoạt động',
126
- 'Mới khám phá',
127
- 'Bắt đầu dùng',
125
+ 'Trong tuần không sử dụng lần nào',
126
+ 'Rất ít dùng',
127
+ ' sử dụng nhưng chưa bắt đầu workflow nào cả',
128
128
  'Dùng có workflow',
129
129
  'Hoàn thành workflow',
130
130
  'Sử dụng thường xuyên workflow',
@@ -149,19 +149,19 @@ function buildRow(email, u) {
149
149
  .sort();
150
150
 
151
151
  // Compact gate summary
152
- const startedGates = [...new Set(gateCmds.filter(g => g.type === 'start').map(g => g.gateNum))].sort((a, b) => a - b);
152
+ const startedGates = [...new Set(gateCmds.filter(g => g.type === 'start').map(g => g.gateNum))].sort((a, b) => a - b);
153
153
  const approvedGates = [...new Set(gateCmds.filter(g => g.type === 'approved').map(g => g.gateNum))].sort((a, b) => a - b);
154
154
 
155
- const ticketsStarted = [...new Set(gateCmds.filter(g => g.type === 'start' && g.ticket && g.ticket !== '-').map(g => g.ticket))];
156
- const ticketsApproved = [...new Set(gateCmds.filter(g => g.type === 'approved' && g.ticket && g.ticket !== '-').map(g => g.ticket))];
155
+ const ticketsStarted = [...new Set(gateCmds.filter(g => g.type === 'start' && g.ticket && g.ticket !== '-').map(g => g.ticket))];
156
+ const ticketsApproved = [...new Set(gateCmds.filter(g => g.type === 'approved' && g.ticket && g.ticket !== '-').map(g => g.ticket))];
157
157
  const ticketsCompleted = [...new Set(gateCmds.filter(g =>
158
158
  ((g.type === 'approved' && g.gateNum >= 4) || (g.gateNum === 5 && g.type === 'start'))
159
159
  && g.ticket && g.ticket !== '-'
160
160
  ).map(g => g.ticket))];
161
161
 
162
- const gateStartStr = startedGates.length ? `G${startedGates.join(',')} / ${ticketsStarted.length} ticket(s)` : '';
162
+ const gateStartStr = startedGates.length ? `G${startedGates.join(',')} / ${ticketsStarted.length} ticket(s)` : '';
163
163
  const gateApprovedStr = approvedGates.length ? `G${approvedGates.join(',')} / ${ticketsApproved.length} ticket(s)` : '';
164
- const ticketsStr = ticketsCompleted.length ? ticketsCompleted.join(', ') : '';
164
+ const ticketsStr = ticketsCompleted.length ? ticketsCompleted.join(', ') : '';
165
165
 
166
166
  // Notes
167
167
  const onlyExploreCmds = [...rawCmds].every(c => EXPLORE_CMDS.has(c));
@@ -207,20 +207,20 @@ async function writeExcel(rows, outputPath, sheetLabel, fromLabel, toLabel) {
207
207
  const sheet = workbook.addWorksheet(`Score ${sheetLabel}`);
208
208
 
209
209
  sheet.columns = [
210
- { key: 'no', width: 5 },
211
- { key: 'email', width: 30 },
212
- { key: 'events', width: 8 },
213
- { key: 'activeDays', width: 10 },
214
- { key: 'keyCommands', width: 40 },
215
- { key: 'gateStart', width: 24 },
210
+ { key: 'no', width: 5 },
211
+ { key: 'email', width: 30 },
212
+ { key: 'events', width: 8 },
213
+ { key: 'activeDays', width: 10 },
214
+ { key: 'keyCommands', width: 40 },
215
+ { key: 'gateStart', width: 24 },
216
216
  { key: 'gateApproved', width: 24 },
217
- { key: 'tickets', width: 44 },
218
- { key: 'depthScore', width: 8 },
219
- { key: 'depthLabel', width: 28 },
220
- { key: 'impactScore', width: 8 },
221
- { key: 'impactLabel', width: 18 },
222
- { key: 'totalScore', width: 8 },
223
- { key: 'notes', width: 54 },
217
+ { key: 'tickets', width: 44 },
218
+ { key: 'depthScore', width: 8 },
219
+ { key: 'depthLabel', width: 28 },
220
+ { key: 'impactScore', width: 8 },
221
+ { key: 'impactLabel', width: 18 },
222
+ { key: 'totalScore', width: 8 },
223
+ { key: 'notes', width: 54 },
224
224
  ];
225
225
 
226
226
  const border = {
@@ -232,9 +232,9 @@ async function writeExcel(rows, outputPath, sheetLabel, fromLabel, toLabel) {
232
232
  sheet.addRow([`AI Flow Kit — Weekly Score Report: ${fromLabel} – ${toLabel}`]);
233
233
  sheet.mergeCells('A1:N1');
234
234
  const title = sheet.getCell('A1');
235
- title.font = { bold: true, size: 13, color: { argb: 'FF1F3864' } };
235
+ title.font = { bold: true, size: 13, color: { argb: 'FF1F3864' } };
236
236
  title.alignment = { vertical: 'middle', horizontal: 'center' };
237
- title.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFD6DCE4' } };
237
+ title.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFD6DCE4' } };
238
238
  sheet.getRow(1).height = 28;
239
239
 
240
240
  // Header row
@@ -247,10 +247,10 @@ async function writeExcel(rows, outputPath, sheetLabel, fromLabel, toLabel) {
247
247
  const hRow = sheet.addRow(HEADERS);
248
248
  hRow.height = 36;
249
249
  hRow.eachCell(cell => {
250
- cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
251
- cell.font = { bold: true, color: { argb: 'FFFFFFFF' }, size: 11 };
250
+ cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
251
+ cell.font = { bold: true, color: { argb: 'FFFFFFFF' }, size: 11 };
252
252
  cell.alignment = { vertical: 'middle', horizontal: 'center', wrapText: true };
253
- cell.border = border;
253
+ cell.border = border;
254
254
  });
255
255
 
256
256
  // Score → row color
@@ -276,7 +276,7 @@ async function writeExcel(rows, outputPath, sheetLabel, fromLabel, toLabel) {
276
276
  const fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: COLORS[row.depthScore] || 'FFFFFFFF' } };
277
277
  r.eachCell({ includeEmpty: true }, (cell, col) => {
278
278
  cell.border = border;
279
- cell.fill = fill;
279
+ cell.fill = fill;
280
280
  cell.alignment = (col <= 4 || (col >= 9 && col <= 13))
281
281
  ? { vertical: 'middle', horizontal: 'center' }
282
282
  : { vertical: 'middle', horizontal: 'left', wrapText: false };
@@ -286,7 +286,7 @@ async function writeExcel(rows, outputPath, sheetLabel, fromLabel, toLabel) {
286
286
  r.getCell(13).value = { formula: `I${excelRowNum}+K${excelRowNum}` };
287
287
  });
288
288
 
289
- sheet.views = [{ state: 'frozen', ySplit: 2 }];
289
+ sheet.views = [{ state: 'frozen', ySplit: 2 }];
290
290
  sheet.autoFilter = { from: 'A2', to: 'N2' };
291
291
 
292
292
  await workbook.xlsx.writeFile(outputPath);
@@ -295,17 +295,14 @@ async function writeExcel(rows, outputPath, sheetLabel, fromLabel, toLabel) {
295
295
 
296
296
  // ── Canonical user list (fixed order) ─────────────────────────────────────
297
297
  const CANONICAL_USERS = [
298
- 'anhtt@relipasoft.com',
299
298
  'hoangdv@relipasoft.com',
300
299
  'chinhtt@relipasoft.com',
301
- 'hieptv@relipasoft.com',
302
300
  'phongnx@relipasoft.com',
303
301
  'dungha@relipasoft.com',
304
302
  'thangnv@relipasoft.com',
305
303
  'nguyenlt@relipasoft.com',
306
304
  'thuongvv@relipasoft.com',
307
305
  'yenvtb@relipasoft.com',
308
- 'tructh@relipasoft.com',
309
306
  'thainq@relipasoft.com',
310
307
  'tuoittx@relipasoft.com',
311
308
  'hungdv@relipasoft.com',
@@ -314,7 +311,7 @@ const CANONICAL_USERS = [
314
311
  'huynq@relipasoft.com',
315
312
  'thinhvq@relipasoft.com',
316
313
  'banv@relipasoft.com',
317
- 'duongnt@relipasoft.com',
314
+ 'duongnt1@relipasoft.com',
318
315
  'anhnt@relipasoft.com',
319
316
  'khanhdd@relipasoft.com',
320
317
  'hieunv@relipasoft.com',
@@ -322,9 +319,7 @@ const CANONICAL_USERS = [
322
319
 
323
320
  // Log email → canonical email (for slight mismatches)
324
321
  const LOG_EMAIL_ALIAS = {
325
- 'tructh@relipasoft.com': 'tructth@relipasoft.com',
326
- 'duongnt1@relipasoft.com': 'duongnt@relipasoft.com',
327
- 'anhtt2@relipasoft.com': 'anhtt@relipasoft.com',
322
+
328
323
  };
329
324
 
330
325
  const EMPTY_USER = (email) => ({
@@ -343,15 +338,14 @@ const EMPTY_USER = (email) => ({
343
338
  ? [dateMatch[1].replace(/-/g, '/'), dateMatch[2].replace(/-/g, '/')]
344
339
  : ['?', '?'];
345
340
  const sheetLabel = dateMatch
346
- ? `${dateMatch[1].slice(0,5).replace(/-/g,'.')}-${dateMatch[2].slice(0,5).replace(/-/g,'.')}.${dateMatch[1].slice(6,10)}`
341
+ ? `${dateMatch[1].slice(0, 5).replace(/-/g, '.')}-${dateMatch[2].slice(0, 5).replace(/-/g, '.')}.${dateMatch[1].slice(6, 10)}`
347
342
  : stem;
348
343
 
349
- const logFile = path.join(__dirname, '..', 'tellog', stem);
344
+ const logFile = path.join(__dirname, '..', 'tellog', stem);
350
345
  const outputFile = path.join(__dirname, '..', 'tellog', `${stem}.xlsx`);
351
346
 
352
347
  const rawUsers = parseLog(logFile);
353
348
 
354
- // Re-key log users using alias map (tructh → tructth, duongnt1 → duongnt)
355
349
  const users = {};
356
350
  for (const [logEmail, data] of Object.entries(rawUsers)) {
357
351
  const canonical = LOG_EMAIL_ALIAS[logEmail] || logEmail;
package/scripts/detect.js CHANGED
File without changes
package/scripts/doctor.js CHANGED
File without changes
File without changes
package/scripts/guide.js CHANGED
File without changes
File without changes
@@ -215,14 +215,16 @@ function buildContextPrompt(ctx, taskState) {
215
215
 
216
216
  if (currentGate === 2) {
217
217
  lines.push('Gate 1 is already APPROVED. The requirement document is at:');
218
- lines.push(` plan/${ctx.taskId}/requirement.md`);
218
+ lines.push(` 04.Coding/01.Requirements/[functionId]/${ctx.taskId}.md`);
219
+ lines.push(` ([functionId] — look it up in 04.Coding/00.Overview/_Index.md or the folder containing ${ctx.taskId}.md)`);
219
220
  lines.push('');
220
221
  lines.push('Proceed to Gate 2: create the implementation plan.');
221
222
  lines.push(buildModeInstruction(mode, 2));
222
223
  } else if (currentGate === 3) {
223
224
  lines.push('Gates 1 and 2 are already APPROVED. Plans are at:');
224
- lines.push(` plan/${ctx.taskId}/requirement.md`);
225
- lines.push(` plan/${ctx.taskId}/plan.md`);
225
+ lines.push(` 04.Coding/01.Requirements/[functionId]/${ctx.taskId}.md`);
226
+ lines.push(` 04.Coding/02.Plans/[functionId]/${ctx.taskId}.md`);
227
+ lines.push(` ([functionId] — look it up in 04.Coding/00.Overview/_Index.md)`);
226
228
  lines.push('');
227
229
  lines.push('Proceed to Gate 3: implement code following the plan (TDD).');
228
230
  lines.push(buildModeInstruction(mode, 3));
@@ -246,23 +248,26 @@ function buildContextPrompt(ctx, taskState) {
246
248
 
247
249
  if (mode === 'fast') {
248
250
  lines.push('**MODE: fast** — Use the FAST TRACK path in the skill:');
251
+ lines.push('- Pre-flight: determine functionId first (from context / input UC Spec file / ask DEV to confirm) — see the DEV workflow Pre-flight step');
249
252
  lines.push('- Read ticket + identify changed files only (no deep source scan)');
250
253
  lines.push('- Skip Q&A unless there is a critical blocking ambiguity');
251
- lines.push('- Output a lite requirement doc (Sections 1, 3, 5 only)');
254
+ lines.push('- Output a lite requirement doc (Sections 1, 3, 5 only) to 04.Coding/01.Requirements/[functionId]/' + ctx.taskId + '.md');
252
255
  lines.push('- Target: Gate 1 complete in < 5 minutes');
253
256
  } else {
254
257
  lines.push('Gate 1 process:');
258
+ lines.push('0. Pre-flight: determine functionId (from context / input UC Spec file / ask DEV to confirm) + ensure 04.Coding/ tree exists — see the DEV workflow Pre-flight step. DO NOT continue without functionId.');
255
259
  lines.push('1. Read the ticket context above');
256
260
  lines.push('2. Read CLAUDE.md — understand project architecture and conventions');
257
261
  lines.push('3. Read source code — identify related files, data flow, patterns');
258
262
  lines.push('4. If anything is unclear — ask ONE question at a time');
259
- lines.push('5. Output plan/' + ctx.taskId + '/requirement.md');
263
+ lines.push('5. Output 04.Coding/01.Requirements/[functionId]/' + ctx.taskId + '.md');
260
264
  lines.push('6. Display GATE 1 prompt and wait for APPROVED');
261
265
  }
262
266
 
263
267
  lines.push('');
264
268
  lines.push('DO NOT wait for the developer to ask. START NOW.');
265
269
  lines.push('If you have not started automatically, begin as soon as the developer types **"start"**.');
270
+ lines.push('(If a later ticket switch does not seem to trigger this — e.g. `ak use` was run in another terminal while this chat was already open — the developer can run **`/coding`** to load it manually.)');
266
271
  }
267
272
 
268
273
  lines.push('</ACTIVE_TASK>');
File without changes
package/scripts/init.js CHANGED
@@ -305,6 +305,11 @@ async function setupClaudeCommands(projectDir) {
305
305
  dest: 'create-testcase.md',
306
306
  description: 'QA 4-Gate TestCase Creation Workflow — converts raw requirements (SRS/Backlog/Jira/Spec file) into a complete, execution-ready Test Case set following the QA Workflow standard: Gate 1 (requirement & risk analysis), Gate 2 (scenario building), Gate 3 (detailed test case design), Gate 4 (review & optimization). Reads QA sub-skills from .claude/skills/test-skills/.',
307
307
  },
308
+ {
309
+ src: path.join(PKG_DIR, 'custom', 'templates', 'shared', 'coding-workflow.md'),
310
+ dest: 'coding.md',
311
+ description: 'Manual trigger for the DEV 5-Gate Coding Workflow (bug-fix / feature / refactor / investigation / documentation). Use this when the SessionStart auto-start message was missed — e.g. a ticket was loaded with `ak use` while this chat session was already open.',
312
+ },
308
313
  ];
309
314
 
310
315
  for (const cmd of commands) {
package/scripts/memory.js CHANGED
File without changes
package/scripts/prompt.js CHANGED
File without changes
package/scripts/remove.js CHANGED
File without changes
package/scripts/review.js CHANGED
File without changes
File without changes