{
	"shortcut": "f4",
	"tasks": [
		{
			"name": "Review changes",
			"category": "Plan",
			"description": "Review the current code changes (Plan)",
			"requireDirty": true,
			"prompt": "Review the changes on branch {{branch}} ({{files_changed_count}} changed files: {{files_changed}}). Change summary: {{diff_stat}}. Last commit: {{last_commit}}. Check `git status` and `git diff` to see what changed, then double-check the changes for bugs, edge cases, security issues, and consistency with the rest of the codebase. Do a plan proposal for the fixes if needed. Do a summary of your findings"
		},
		{
			"name": "Review code",
			"category": "Plan",
			"description": "Review the whole project's code quality (Plan)",
			"prompt": "Review this project's code holistically: identify code smells, dead code, duplication, awkward architecture or patterns, maintainability issues, inconsistencies, and missing or unclear documentation. Prioritize by impact, propose a plan for the fixes, and summarize your findings. Do not make any changes yet."
		},
		{
			"name": "Cleanup",
			"category": "Plan",
			"description": "Clean up dead code and duplicates (Plan)",
			"prompt": "Scan the project for dead code, unused imports, commented-out blocks, and duplicated logic. Do a plan proposal for the removals and consolidations, keeping behavior unchanged. Do not make any changes yet."
		},
		{
			"name": "Security",
			"category": "Plan",
			"description": "Security audit (Plan)",
			"prompt": "Audit this project for security issues: hardcoded secrets or credentials, unsafe patterns (injection, path traversal, unsafe deserialization), and vulnerable or outdated dependencies. Do a plan proposal for the fixes. Do not make any changes yet."
		},
		{
			"name": "Performance",
			"category": "Plan",
			"description": "Performance review (Plan)",
			"prompt": "Review this project for likely performance bottlenecks: inefficient algorithms, redundant I/O or computation, missing caching, and memory leaks. Do a plan proposal for the optimizations, prioritized by impact. Do not make any changes yet."
		},
		{
			"name": "Propose features",
			"category": "Plan",
			"description": "Propose new features (Plan)",
			"prompt": "Review this project and propose new features that would add value. For each idea, describe the problem it solves, the user benefit, and a rough implementation approach. Prioritize by impact and effort. Do not make any changes yet. Try to evaluate how many lines this will be in term of changes, if this will breaks API, compatibility issue."
		},
		{
			"name": "Build",
			"category": "Do",
			"description": "Test build is ok and fix issues",
			"prompt": "Build the project (run the build script, e.g. `npm run build`, plus type check if available). If the build fails, diagnose the errors and fix them, then re-build until it succeeds. Summarize what was broken and what you changed."
		},
		{
			"name": "Tests",
			"category": "Do",
			"description": "Run tests and fix failures",
			"prompt": "Run the project's test suite (and type check / lint if available). If anything fails, diagnose and fix the failures, then re-run until green. Summarize the results."
		},
		{
			"name": "Readme",
			"category": "Docs",
			"description": "Update the README.md",
			"prompt": "Update the README.md to match the current state of the project. Check the code, scripts, and configuration, then update the README.md sections that are now out of date (description, installation, usage, configuration). Keep it concise and accurate."
		},
		{
			"name": "Release",
			"category": "Ops",
			"description": "Prepare a release (version, changelog, tag)",
			"when": "git",
			"prompt": "Prepare a release for this project (branch {{branch}}): check `git log` since the last tag, update the version in package.json (or the equivalent location), add a changelog entry summarizing the changes, and create a git tag if git present. Do not push."
		},
		{
			"name": "Commit",
			"category": "Ops",
			"description": "Prepare a clean commit",
			"requireDirty": true,
			"when": "git",
			"prompt": "Prepare the working tree on branch {{branch}} ({{files_changed_count}} changed files: {{files_changed}}) for a clean commit: stage the relevant changes, and write a clear commit message describing what changed and why. Do not push."
		}
	]
}
