@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.
- package/README.md +0 -0
- package/bin/aiflow.js +0 -0
- package/bin/ak.js +0 -0
- package/custom/harness/playwright/.env.example +0 -0
- package/custom/harness/playwright/playwright.config.ts +0 -0
- package/custom/harness/playwright/tests/e2e/auth.setup.ts +0 -0
- package/custom/harness/playwright/tests/e2e/fixtures/test.ts +0 -0
- package/custom/harness/playwright/tests/e2e/pages/BasePage.ts +0 -0
- package/custom/harness/playwright/tests/e2e/support/auth.ts +0 -0
- package/custom/mcp-presets/README.md +0 -0
- package/custom/mcp-presets/backlog.json +0 -0
- package/custom/mcp-presets/figma-desktop.json +0 -0
- package/custom/mcp-presets/figma.json +0 -0
- package/custom/mcp-presets/gitnexus.json +0 -0
- package/custom/mcp-presets/google-sheets.json +0 -0
- package/custom/mcp-presets/jira.json +0 -0
- package/custom/mcp-presets/playwright.json +0 -0
- package/custom/prompts/bug-fix.md +0 -0
- package/custom/prompts/feature.md +0 -0
- package/custom/prompts/investigation.md +0 -0
- package/custom/rules/code-style.md +0 -0
- package/custom/rules/java/code-style.md +0 -0
- package/custom/rules/java/naming.md +0 -0
- package/custom/rules/java/review-checklist.md +0 -0
- package/custom/rules/java/spring-boot-examples.md +0 -0
- package/custom/rules/javascript/code-style.md +0 -0
- package/custom/rules/javascript/naming.md +0 -0
- package/custom/rules/ml-conventions.md +0 -0
- package/custom/rules/ml-review-checklist.md +0 -0
- package/custom/rules/naming.md +0 -0
- package/custom/rules/php/code-style.md +0 -0
- package/custom/rules/php/naming.md +0 -0
- package/custom/rules/project-conventions.md +67 -51
- package/custom/rules/review-checklist.md +0 -0
- package/custom/rules/test-patterns.md +0 -0
- package/custom/skills/automation-testing/SKILL.md +0 -0
- package/custom/skills/automation-testing/templates/BasePage.ts +0 -0
- package/custom/skills/automation-testing/templates/PageObject.example.ts +0 -0
- package/custom/skills/automation-testing/templates/playwright.config.ts +0 -0
- package/custom/skills/automation-testing/templates/spec.example.ts +0 -0
- package/custom/skills/ba-skills/{skill-ba-xay-dung-business-rules-v1.md → skill-ba-build-business-rules-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-template-phan-tich-ban-dau-v1.md → skill-ba-initial-analysis-template-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-phan-tich-ban-dau-v1.md → skill-ba-initial-analysis-v1.md} +2 -2
- package/custom/skills/ba-skills/{skill-ba-ve-luong-mermaid-v1.md → skill-ba-mermaid-flowchart-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-qa-template-v1.md → skill-ba-qna-template-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-qa-v1.md → skill-ba-qna-v1.md} +2 -2
- package/custom/skills/ba-skills/{skill-ba-template-uc-v1.md → skill-ba-uc-template-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-prototype-v1.md → skill-ba-ui-prototype-v1.md} +2 -2
- package/custom/skills/ba-skills/{skill-ba-viet-spec-uc-v1.md → skill-ba-write-uc-spec-v1.md} +4 -4
- package/custom/skills/coverage-check/SKILL.md +0 -0
- package/custom/skills/deploy-model/SKILL.md +0 -0
- package/custom/skills/design-experiment/SKILL.md +0 -0
- package/custom/skills/evaluate-model/SKILL.md +0 -0
- package/custom/skills/evidence-aggregation/SKILL.md +0 -0
- package/custom/skills/execute-flow/SKILL.md +0 -0
- package/custom/skills/execute-flow/templates/playwright.config.ts +0 -0
- package/custom/skills/explore-data/SKILL.md +0 -0
- package/custom/skills/figma-to-component/SKILL.md +0 -0
- package/custom/skills/frame-ml-problem/SKILL.md +0 -0
- package/custom/skills/gate-review/SKILL.md +1 -1
- package/custom/skills/generate-spec/SKILL.md +99 -99
- package/custom/skills/generate-test-report/SKILL.md +0 -0
- package/custom/skills/generate-test-report/templates/test-report.md +0 -0
- package/custom/skills/generate-testcase/SKILL.md +0 -0
- package/custom/skills/generate-testcase/templates/testcase.md +0 -0
- package/custom/skills/impact-analysis/SKILL.md +0 -0
- package/custom/skills/improve-algorithm/SKILL.md +0 -0
- package/custom/skills/investigate-bug/SKILL.md +0 -0
- package/custom/skills/log-bug/SKILL.md +0 -0
- package/custom/skills/pr-impact-analysis/SKILL.md +0 -0
- package/custom/skills/read-study-requirement/SKILL.md +7 -5
- package/custom/skills/report-customer/SKILL.md +0 -0
- package/custom/skills/retest-orchestration/SKILL.md +0 -0
- package/custom/skills/review-plan/SKILL.md +194 -194
- package/custom/skills/script-sync/SKILL.md +0 -0
- package/custom/skills/test-analysis/SKILL.md +0 -0
- package/custom/skills/test-skills/categories/00-core/00.01.requirement-analysis.md +0 -0
- package/custom/skills/test-skills/categories/00-core/00.02.risk-analysis.md +0 -0
- package/custom/skills/test-skills/categories/00-core/00.03.test-scenario-builder.md +0 -0
- package/custom/skills/test-skills/categories/00-core/00.04.testcase-review.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.03.decision-table.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.04.state.transition.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.05.pairwise.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.06.error-guessing.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.01.UI-layout.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.02.form-validation.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.03.navigation.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.04.localization.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.05.accessibility.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.01.CRUD-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.02.workflow-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.01.database-testing.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.02.import-export-testing.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.03.data-mapping.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.04.duplicate-handling.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.05.migration.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.01.API-testing.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.03.batch-processing.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.04.file-upload-download.md +0 -0
- package/custom/skills/test-skills/categories/08-domain-skills/CMS.md +0 -0
- package/custom/skills/test-skills/categories/08-domain-skills/Ecommerce.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.01.coverage-review.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.02.knowledge-learning.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.03.repository-update.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.04.change-history.md +0 -0
- package/custom/skills/test-skills/rules/directory-and-naming-convention.md +158 -0
- package/custom/skills/test-skills/rules/{QA_Writing_Standards.md → qa-writing-standards.md} +0 -0
- package/custom/skills/test-skills/template/{template_testcase.md → testcase-template.md} +0 -0
- package/custom/skills/train-model/SKILL.md +0 -0
- package/custom/templates/laravel.md +0 -0
- package/custom/templates/nestjs.md +0 -0
- package/custom/templates/nextjs.md +0 -0
- package/custom/templates/nodejs-express.md +0 -0
- package/custom/templates/php-plain.md +0 -0
- package/custom/templates/php.md +0 -0
- package/custom/templates/python-django.md +0 -0
- package/custom/templates/python-fastapi.md +0 -0
- package/custom/templates/python-ml.md +0 -0
- package/custom/templates/python.md +0 -0
- package/custom/templates/reactjs.md +0 -0
- package/custom/templates/shared/coding-workflow.md +15 -0
- package/custom/templates/shared/create-spec-workflow.md +80 -89
- package/custom/templates/shared/create-testcase-workflow.md +86 -84
- package/custom/templates/shared/gate-workflow.md +64 -11
- package/custom/templates/shared/ml-gate-workflow.md +0 -0
- package/custom/templates/spring-boot.md +0 -0
- package/custom/templates/tools/claude.md +13 -13
- package/custom/templates/tools/copilot.md +12 -12
- package/custom/templates/tools/cursor.md +12 -12
- package/custom/templates/tools/gemini.md +22 -22
- package/custom/templates/tools/generic.md +17 -17
- package/custom/templates/vue-nuxt.md +0 -0
- package/docs/common/AIFLOW.md +10 -10
- package/docs/common/CHANGELOG.md +33 -9
- package/docs/common/QUICK_START.md +0 -0
- package/docs/common/ai-integration.md +53 -53
- package/docs/common/cli-reference.md +0 -0
- package/docs/common/configuration.md +0 -0
- package/docs/common/getting-started.md +0 -0
- package/docs/common/troubleshooting.md +0 -0
- package/docs/common/workflows/bug-fix.md +126 -126
- package/docs/common/workflows/feature.md +123 -123
- package/docs/common/workflows/figma.md +0 -0
- package/docs/common/workflows/impact-analysis.md +0 -0
- package/docs/common/workflows/investigation.md +0 -0
- package/docs/common/workflows/refactor.md +0 -0
- package/docs/project/ARCHITECTURE.md +0 -0
- package/index.js +0 -0
- package/package.json +1 -1
- package/scripts/checkpoint.js +0 -0
- package/scripts/config.js +0 -0
- package/scripts/context.js +0 -0
- package/scripts/create-score-excel.js +41 -47
- package/scripts/detect.js +0 -0
- package/scripts/doctor.js +0 -0
- package/scripts/gitnexus-worker.js +0 -0
- package/scripts/guide.js +0 -0
- package/scripts/hooks/block-git-write.js +0 -0
- package/scripts/hooks/session-start.js +10 -5
- package/scripts/hooks/session-stop.js +0 -0
- package/scripts/init.js +5 -0
- package/scripts/memory.js +0 -0
- package/scripts/prompt.js +0 -0
- package/scripts/remove.js +0 -0
- package/scripts/review.js +0 -0
- package/scripts/scaffold-playwright.js +0 -0
- package/scripts/task.js +69 -22
- package/scripts/telemetry/cli.js +0 -0
- package/scripts/telemetry/config.js +0 -0
- package/scripts/telemetry/crypto.js +0 -0
- package/scripts/telemetry/flush.js +0 -0
- package/scripts/telemetry/record.js +0 -0
- package/scripts/update.js +0 -0
- package/scripts/use.js +3 -2
- package/scripts/validate.js +0 -0
- package/upstream/.claude-plugin/marketplace.json +0 -0
- package/upstream/.claude-plugin/plugin.json +0 -0
- package/upstream/.codex/INSTALL.md +0 -0
- package/upstream/.cursor-plugin/plugin.json +0 -0
- package/upstream/.gitattributes +0 -0
- package/upstream/.github/FUNDING.yml +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/config.yml +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/platform_support.md +0 -0
- package/upstream/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- package/upstream/.opencode/INSTALL.md +0 -0
- package/upstream/.opencode/plugins/superpowers.js +0 -0
- package/upstream/.version-bump.json +0 -0
- package/upstream/AGENTS.md +0 -0
- package/upstream/CHANGELOG.md +0 -0
- package/upstream/CLAUDE.md +0 -0
- package/upstream/CODE_OF_CONDUCT.md +0 -0
- package/upstream/GEMINI.md +0 -0
- package/upstream/LICENSE +0 -0
- package/upstream/README.md +0 -0
- package/upstream/RELEASE-NOTES.md +0 -0
- package/upstream/agents/code-reviewer.md +0 -0
- package/upstream/commands/brainstorm.md +0 -0
- package/upstream/commands/execute-plan.md +0 -0
- package/upstream/commands/write-plan.md +0 -0
- package/upstream/docs/README.codex.md +0 -0
- package/upstream/docs/README.opencode.md +0 -0
- package/upstream/docs/plans/2025-11-22-opencode-support-design.md +0 -0
- package/upstream/docs/plans/2025-11-22-opencode-support-implementation.md +0 -0
- package/upstream/docs/plans/2025-11-28-skills-improvements-from-user-feedback.md +0 -0
- package/upstream/docs/plans/2026-01-17-visual-brainstorming.md +0 -0
- package/upstream/docs/superpowers/plans/2026-01-22-document-review-system.md +0 -0
- package/upstream/docs/superpowers/plans/2026-02-19-visual-brainstorming-refactor.md +0 -0
- package/upstream/docs/superpowers/plans/2026-03-11-zero-dep-brainstorm-server.md +0 -0
- package/upstream/docs/superpowers/plans/2026-03-23-codex-app-compatibility.md +0 -0
- package/upstream/docs/superpowers/specs/2026-01-22-document-review-system-design.md +0 -0
- package/upstream/docs/superpowers/specs/2026-02-19-visual-brainstorming-refactor-design.md +0 -0
- package/upstream/docs/superpowers/specs/2026-03-11-zero-dep-brainstorm-server-design.md +0 -0
- package/upstream/docs/superpowers/specs/2026-03-23-codex-app-compatibility-design.md +0 -0
- package/upstream/docs/testing.md +0 -0
- package/upstream/docs/windows/polyglot-hooks.md +0 -0
- package/upstream/gemini-extension.json +0 -0
- package/upstream/hooks/hooks-cursor.json +0 -0
- package/upstream/hooks/hooks.json +0 -0
- package/upstream/hooks/run-hook.cmd +0 -0
- package/upstream/hooks/session-start +0 -0
- package/upstream/package.json +0 -0
- package/upstream/scripts/bump-version.sh +0 -0
- package/upstream/skills/brainstorming/SKILL.md +0 -0
- package/upstream/skills/brainstorming/scripts/frame-template.html +0 -0
- package/upstream/skills/brainstorming/scripts/helper.js +0 -0
- package/upstream/skills/brainstorming/scripts/server.cjs +0 -0
- package/upstream/skills/brainstorming/scripts/start-server.sh +0 -0
- package/upstream/skills/brainstorming/scripts/stop-server.sh +0 -0
- package/upstream/skills/brainstorming/spec-document-reviewer-prompt.md +0 -0
- package/upstream/skills/brainstorming/visual-companion.md +0 -0
- package/upstream/skills/dispatching-parallel-agents/SKILL.md +0 -0
- package/upstream/skills/executing-plans/SKILL.md +0 -0
- package/upstream/skills/finishing-a-development-branch/SKILL.md +0 -0
- package/upstream/skills/receiving-code-review/SKILL.md +0 -0
- package/upstream/skills/requesting-code-review/SKILL.md +0 -0
- package/upstream/skills/requesting-code-review/code-reviewer.md +0 -0
- package/upstream/skills/subagent-driven-development/SKILL.md +0 -0
- package/upstream/skills/subagent-driven-development/code-quality-reviewer-prompt.md +0 -0
- package/upstream/skills/subagent-driven-development/implementer-prompt.md +0 -0
- package/upstream/skills/subagent-driven-development/spec-reviewer-prompt.md +0 -0
- package/upstream/skills/systematic-debugging/CREATION-LOG.md +0 -0
- package/upstream/skills/systematic-debugging/SKILL.md +0 -0
- package/upstream/skills/systematic-debugging/condition-based-waiting-example.ts +0 -0
- package/upstream/skills/systematic-debugging/condition-based-waiting.md +0 -0
- package/upstream/skills/systematic-debugging/defense-in-depth.md +0 -0
- package/upstream/skills/systematic-debugging/find-polluter.sh +0 -0
- package/upstream/skills/systematic-debugging/root-cause-tracing.md +0 -0
- package/upstream/skills/systematic-debugging/test-academic.md +0 -0
- package/upstream/skills/systematic-debugging/test-pressure-1.md +0 -0
- package/upstream/skills/systematic-debugging/test-pressure-2.md +0 -0
- package/upstream/skills/systematic-debugging/test-pressure-3.md +0 -0
- package/upstream/skills/tdd-lean/SKILL.md +0 -0
- package/upstream/skills/test-driven-development/SKILL.md +0 -0
- package/upstream/skills/test-driven-development/testing-anti-patterns.md +0 -0
- package/upstream/skills/using-git-worktrees/SKILL.md +0 -0
- package/upstream/skills/using-superpowers/SKILL.md +0 -0
- package/upstream/skills/using-superpowers/references/codex-tools.md +0 -0
- package/upstream/skills/using-superpowers/references/copilot-tools.md +0 -0
- package/upstream/skills/using-superpowers/references/gemini-tools.md +0 -0
- package/upstream/skills/verification-before-completion/SKILL.md +0 -0
- package/upstream/skills/writing-plans/SKILL.md +0 -0
- package/upstream/skills/writing-plans/plan-document-reviewer-prompt.md +0 -0
- package/upstream/skills/writing-skills/SKILL.md +0 -0
- package/upstream/skills/writing-skills/anthropic-best-practices.md +0 -0
- package/upstream/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -0
- package/upstream/skills/writing-skills/graphviz-conventions.dot +0 -0
- package/upstream/skills/writing-skills/persuasion-principles.md +0 -0
- package/upstream/skills/writing-skills/render-graphs.js +0 -0
- package/upstream/skills/writing-skills/testing-skills-with-subagents.md +0 -0
- package/upstream/tests/brainstorm-server/package-lock.json +0 -0
- package/upstream/tests/brainstorm-server/package.json +0 -0
- package/upstream/tests/brainstorm-server/server.test.js +0 -0
- package/upstream/tests/brainstorm-server/windows-lifecycle.test.sh +0 -0
- package/upstream/tests/brainstorm-server/ws-protocol.test.js +0 -0
- package/upstream/tests/claude-code/README.md +0 -0
- package/upstream/tests/claude-code/analyze-token-usage.py +0 -0
- package/upstream/tests/claude-code/run-skill-tests.sh +0 -0
- package/upstream/tests/claude-code/test-document-review-system.sh +0 -0
- package/upstream/tests/claude-code/test-helpers.sh +0 -0
- package/upstream/tests/claude-code/test-subagent-driven-development-integration.sh +0 -0
- package/upstream/tests/claude-code/test-subagent-driven-development.sh +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/action-oriented.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/after-planning-flow.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/claude-suggested-it.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/i-know-what-sdd-means.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/mid-conversation-execute-plan.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/please-use-brainstorming.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/skip-formalities.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/subagent-driven-development-please.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/use-systematic-debugging.txt +0 -0
- package/upstream/tests/explicit-skill-requests/run-all.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-claude-describes-sdd.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-extended-multiturn-test.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-haiku-test.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-multiturn-test.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-test.sh +0 -0
- package/upstream/tests/opencode/run-tests.sh +0 -0
- package/upstream/tests/opencode/setup.sh +0 -0
- package/upstream/tests/opencode/test-plugin-loading.sh +0 -0
- package/upstream/tests/opencode/test-priority.sh +0 -0
- package/upstream/tests/opencode/test-tools.sh +0 -0
- package/upstream/tests/skill-triggering/prompts/dispatching-parallel-agents.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/executing-plans.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/requesting-code-review.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/systematic-debugging.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/test-driven-development.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/writing-plans.txt +0 -0
- package/upstream/tests/skill-triggering/run-all.sh +0 -0
- package/upstream/tests/skill-triggering/run-test.sh +0 -0
- package/upstream/tests/subagent-driven-dev/go-fractals/design.md +0 -0
- package/upstream/tests/subagent-driven-dev/go-fractals/plan.md +0 -0
- package/upstream/tests/subagent-driven-dev/go-fractals/scaffold.sh +0 -0
- package/upstream/tests/subagent-driven-dev/run-test.sh +0 -0
- package/upstream/tests/subagent-driven-dev/svelte-todo/design.md +0 -0
- package/upstream/tests/subagent-driven-dev/svelte-todo/plan.md +0 -0
- package/upstream/tests/subagent-driven-dev/svelte-todo/scaffold.sh +0 -0
- 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
|
|
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}
|
|
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
|
|
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)
|
|
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
|
|
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
|
|
275
|
-
const hasPlan =
|
|
276
|
-
const planFiles =
|
|
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(` •
|
|
285
|
-
for (const f of planFiles) console.log(chalk.gray(` -
|
|
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)
|
|
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
|
|
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:
|
|
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.
|
|
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;
|
package/scripts/telemetry/cli.js
CHANGED
|
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
|
|
package/scripts/validate.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/upstream/.gitattributes
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
|
package/upstream/AGENTS.md
CHANGED
|
File without changes
|
package/upstream/CHANGELOG.md
CHANGED
|
File without changes
|
package/upstream/CLAUDE.md
CHANGED
|
File without changes
|
|
File without changes
|
package/upstream/GEMINI.md
CHANGED
|
File without changes
|
package/upstream/LICENSE
CHANGED
|
File without changes
|
package/upstream/README.md
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
|
package/upstream/docs/testing.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/upstream/package.json
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
|
|
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
|
package/upstream/tests/explicit-skill-requests/prompts/subagent-driven-development-please.txt
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
|