@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
package/scripts/task.js CHANGED
@@ -206,12 +206,8 @@ async function resetTask(taskId) {
206
206
  }
207
207
 
208
208
  const taskState = await fs.readJson(statePath);
209
- const planDir = path.join(PROJECT_DIR, 'plan', taskId);
210
- const planFiles = [];
211
- if (await fs.pathExists(planDir)) {
212
- const entries = await fs.readdir(planDir);
213
- for (const f of entries) planFiles.push(path.join('plan', taskId, f));
214
- }
209
+ const docPaths = await findTaskDocs(taskId);
210
+ const planFiles = docPaths.map(p => path.relative(PROJECT_DIR, p));
215
211
 
216
212
  // Show what will happen
217
213
  console.log(chalk.cyan(`\nReset task: ${taskId}\n`));
@@ -220,12 +216,12 @@ async function resetTask(taskId) {
220
216
  console.log(chalk.gray(` Gate: ${taskState.currentGate} → 1 | Approvals cleared | Status: active`));
221
217
 
222
218
  const deletePlan = planFiles.length > 0 && await confirm({
223
- message: `Also delete ${planFiles.length} plan file(s) in plan/${taskId}/?`,
219
+ message: `Also delete ${planFiles.length} gate doc file(s) (04.Coding/ + legacy plan/) for ${taskId}?`,
224
220
  default: false,
225
221
  });
226
222
 
227
223
  if (deletePlan) {
228
- console.log(chalk.gray('\n Plan files to delete:'));
224
+ console.log(chalk.gray('\n Gate doc files to delete:'));
229
225
  for (const f of planFiles) console.log(chalk.gray(` • ${f}`));
230
226
  }
231
227
 
@@ -252,10 +248,13 @@ async function resetTask(taskId) {
252
248
  await fs.copy(ctxPath, CURRENT_FILE, { overwrite: true });
253
249
  }
254
250
 
255
- if (deletePlan) await fs.remove(planDir);
251
+ if (deletePlan) {
252
+ for (const p of docPaths) await fs.remove(p);
253
+ await fs.remove(path.join(PROJECT_DIR, 'plan', taskId));
254
+ }
256
255
 
257
256
  console.log(chalk.green(`✓ Task ${taskId} reset to Gate 1.`));
258
- if (deletePlan) console.log(chalk.gray(` Deleted plan/${taskId}/`));
257
+ if (deletePlan) console.log(chalk.gray(` Deleted ${planFiles.length} gate doc file(s).`));
259
258
  console.log(chalk.gray(' Open Claude to start Gate 1: claude'));
260
259
  }
261
260
 
@@ -271,9 +270,9 @@ async function removeTask(taskId) {
271
270
 
272
271
  const isActive = await fs.pathExists(CURRENT_FILE) &&
273
272
  ((await fs.readJson(CURRENT_FILE).catch(() => ({}))).taskId === taskId);
274
- const planDir = path.join(PROJECT_DIR, 'plan', taskId);
275
- const hasPlan = await fs.pathExists(planDir);
276
- const planFiles = hasPlan ? await fs.readdir(planDir) : [];
273
+ const docPaths = await findTaskDocs(taskId);
274
+ const hasPlan = docPaths.length > 0;
275
+ const planFiles = docPaths.map(p => path.relative(PROJECT_DIR, p));
277
276
 
278
277
  // Show what will be deleted
279
278
  console.log(chalk.cyan(`\nRemove task: ${taskId}\n`));
@@ -281,8 +280,8 @@ async function removeTask(taskId) {
281
280
  console.log(chalk.gray(` • .aiflow/tasks/${taskId}/ (context snapshot + gate state)`));
282
281
  if (isActive) console.log(chalk.gray(` • .aiflow/context/current.json (this is the active task)`));
283
282
  if (hasPlan) {
284
- console.log(chalk.gray(` • plan/${taskId}/ (${planFiles.length} file(s)):`));
285
- for (const f of planFiles) console.log(chalk.gray(` - plan/${taskId}/${f}`));
283
+ console.log(chalk.gray(` • Gate docs (${planFiles.length} file(s)):`));
284
+ for (const f of planFiles) console.log(chalk.gray(` - ${f}`));
286
285
  }
287
286
 
288
287
  console.log();
@@ -294,7 +293,10 @@ async function removeTask(taskId) {
294
293
 
295
294
  await fs.remove(taskDir);
296
295
  if (isActive) await fs.remove(CURRENT_FILE);
297
- if (hasPlan) await fs.remove(planDir);
296
+ if (hasPlan) {
297
+ for (const p of docPaths) await fs.remove(p);
298
+ await fs.remove(path.join(PROJECT_DIR, 'plan', taskId));
299
+ }
298
300
 
299
301
  console.log(chalk.green(`✓ Task ${taskId} removed.`));
300
302
  }
@@ -348,23 +350,21 @@ async function nextGate(taskId) {
348
350
  // Clear current context so no task is "active"
349
351
  await fs.remove(CURRENT_FILE);
350
352
 
351
- // Generate cumulative task-summary.md
352
- const planDir = path.join(PROJECT_DIR, 'plan', resolvedId);
353
- await fs.ensureDir(planDir);
354
- const summaryPath = path.join(planDir, 'task-summary.md');
353
+ // Generate cumulative task-summary.md (task-internal state — lives in .aiflow/, not gate docs)
354
+ const summaryPath = path.join(TASKS_DIR, resolvedId, 'task-summary.md');
355
355
  const summaryContent = await generateMarkdownSummary(taskState);
356
356
  await fs.writeFile(summaryPath, summaryContent, 'utf-8');
357
357
 
358
358
  const taskType = existing.taskType || 'feature';
359
359
  console.log(chalk.green(`✓ Gate ${currentGate} approved for ${resolvedId}.`));
360
- console.log(chalk.gray(` Summary saved to: plan/${resolvedId}/task-summary.md`));
360
+ console.log(chalk.gray(` Summary saved to: .aiflow/tasks/${resolvedId}/task-summary.md`));
361
361
  const nextLabel = gateLabel(nextGateNum, taskType);
362
362
  console.log(chalk.white(`\n Next: Gate ${nextGateNum} — ${nextLabel}`));
363
363
  console.log(chalk.cyan(`\n To continue in a fresh session (Recommended to avoid context pollution):`));
364
364
  console.log(chalk.gray(` 1. Open a NEW chatbox or terminal session.`));
365
365
  console.log(chalk.gray(` 2. Run: aiflow task resume ${resolvedId} (to load context).`));
366
366
  console.log(chalk.gray(` 3. Type "start" or "continue from the current plan".`));
367
- console.log(chalk.yellow(` (Note: Gate 3 progress is saved via [x] checkboxes in plan.md.`));
367
+ console.log(chalk.yellow(` (Note: Gate 3 progress is saved via [x] checkboxes in the Gate 2 plan doc (04.Coding/02.Plans/).`));
368
368
  console.log(chalk.yellow(` The AI will automatically resume the exact task you left off.)`));
369
369
  console.log();
370
370
  }
@@ -373,6 +373,38 @@ async function nextGate(taskId) {
373
373
  // Internal helpers
374
374
  // ──────────────────────────────────────────────────────────────
375
375
 
376
+ /**
377
+ * Find gate output docs for a task under 04.Coding/<section>/<functionId>/<taskId>.md
378
+ * (new convention) plus the legacy plan/<taskId>/ folder. Returns absolute paths.
379
+ */
380
+ async function findTaskDocs(taskId) {
381
+ const results = [];
382
+
383
+ const codingDir = path.join(PROJECT_DIR, '04.Coding');
384
+ if (await fs.pathExists(codingDir)) {
385
+ const sections = await fs.readdir(codingDir, { withFileTypes: true }).catch(() => []);
386
+ for (const section of sections) {
387
+ if (!section.isDirectory()) continue;
388
+ const sectionDir = path.join(codingDir, section.name);
389
+ const featureDirs = await fs.readdir(sectionDir, { withFileTypes: true }).catch(() => []);
390
+ for (const feature of featureDirs) {
391
+ if (!feature.isDirectory()) continue;
392
+ const docPath = path.join(sectionDir, feature.name, `${taskId}.md`);
393
+ if (await fs.pathExists(docPath)) results.push(docPath);
394
+ }
395
+ }
396
+ }
397
+
398
+ // Legacy convention: plan/<taskId>/
399
+ const legacyDir = path.join(PROJECT_DIR, 'plan', taskId);
400
+ if (await fs.pathExists(legacyDir)) {
401
+ const entries = await fs.readdir(legacyDir).catch(() => []);
402
+ for (const f of entries) results.push(path.join(legacyDir, f));
403
+ }
404
+
405
+ return results;
406
+ }
407
+
376
408
  async function deactivateOtherTasks(exceptTaskId) {
377
409
  if (!(await fs.pathExists(TASKS_DIR))) return;
378
410
  const entries = await fs.readdir(TASKS_DIR, { withFileTypes: true });
@@ -410,6 +442,21 @@ async function detectCurrentGate(taskId) {
410
442
  if (state.currentGate) return state.currentGate;
411
443
  }
412
444
 
445
+ // New convention: 04.Coding/<section>/<functionId>/<taskId>.md
446
+ const hasDocInSection = async (section) => {
447
+ const dir = path.join(PROJECT_DIR, '04.Coding', section);
448
+ if (!(await fs.pathExists(dir))) return false;
449
+ const features = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
450
+ for (const f of features) {
451
+ if (f.isDirectory() && await fs.pathExists(path.join(dir, f.name, `${taskId}.md`))) return true;
452
+ }
453
+ return false;
454
+ };
455
+ if (await hasDocInSection('04.Reviews')) return 5;
456
+ if (await hasDocInSection('02.Plans')) return 3;
457
+ if (await hasDocInSection('01.Requirements')) return 2;
458
+
459
+ // Legacy convention: plan/<taskId>/
413
460
  const planDir = path.join(PROJECT_DIR, 'plan', taskId);
414
461
  if (!(await fs.pathExists(planDir))) return 1;
415
462
  if (await fs.pathExists(path.join(planDir, 'summary.md'))) return 5;
File without changes
File without changes
File without changes
File without changes
File without changes
package/scripts/update.js CHANGED
File without changes
package/scripts/use.js CHANGED
@@ -630,7 +630,6 @@ async function promptForTaskType(detectedDefault) {
630
630
  { name: td("🐛 Bug Fix", "Coding", "Fix bugs, crashes, regressions"), value: "bug-fix" },
631
631
  { name: td("✨ Feature", "Coding", "Build new features, user stories"), value: "feature" },
632
632
  { name: td("🔄 Refactor", "Coding", "Improve code without behavior change"), value: "refactor" },
633
- { name: td("🔬 Testing", "Testing", "Write tests, QA, coverage"), value: "testing" },
634
633
  { name: td("▶️ Execute Test", "Testing", "Run existing TC scripts (4-gate flow)"), value: "execute" },
635
634
  { name: td("📋 Create Spec", "BA", "Create UC Spec from raw requirements (4-gate BA)"), value: "create-spec" },
636
635
  { name: td("✅ Create TestCase", "QA", "Create Test Cases from requirements (4-gate QA)"), value: "create-testcase" },
@@ -704,7 +703,6 @@ async function manualContext(prefillId = "") {
704
703
  { name: td("🐛 Bug Fix", "Coding", "Fix bugs, crashes, regressions"), value: "bug-fix" },
705
704
  { name: td("✨ Feature", "Coding", "Build new features, user stories"), value: "feature" },
706
705
  { name: td("🔄 Refactor", "Coding", "Improve code without behavior change"), value: "refactor" },
707
- { name: td("🔬 Testing", "Testing", "Write tests, QA, coverage"), value: "testing" },
708
706
  { name: td("▶️ Execute Test", "Testing", "Run existing TC scripts (4-gate flow)"), value: "execute" },
709
707
  { name: td("📋 Create Spec", "BA", "Create UC Spec from raw requirements (4-gate BA)"), value: "create-spec" },
710
708
  { name: td("✅ Create TestCase", "QA", "Create Test Cases from requirements (4-gate QA)"), value: "create-testcase" },
@@ -1103,6 +1101,9 @@ async function suggestNextStep() {
1103
1101
  console.log(
1104
1102
  `\n ${chalk.yellow("Note:")} If the AI does not start automatically, type ${chalk.bold.green('"Gate 1"')} or ${chalk.bold.green('"Analyze ticket"')} to begin.`,
1105
1103
  );
1104
+ console.log(
1105
+ ` ${chalk.yellow("Already have a chat open?")} A ticket loaded via ${chalk.bold.green("ak use")} is only picked up by a ${chalk.bold("new")} Claude session (SessionStart hook). If you loaded this ticket into an already-running chat, type ${chalk.bold.green('"/coding"')} there to load it manually instead of restarting.`,
1106
+ );
1106
1107
  console.log();
1107
1108
  }
1108
1109
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/upstream/LICENSE CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes