Taskfile Commands and Development Workflow

This repository uses Taskfile for task automation and development workflows. Understanding and using these tasks is essential for effective development and troubleshooting.

Updating This File

This file should be regenerated when new tasks are added. Run task docs:taskfile to update it with the latest task list.

Key Development Principles

  1. MUST Use tasks instead of raw commands - If you regularly execute a command, it should be in a Taskfile
  2. MUST Leverage existing workflows - Many common operations already have tasks defined
  3. MUST Follow the ArgoCD development workflow - Pause ArgoCD sync for local testing, then resume when ready
  4. MUST Refactor and reuse - Identify duplication and refactor, including into the dev-common shared tasks

Common Command Mappings

❌ NEVER run these raw commands - use tasks instead:

Raw Command✅ Use Task Instead
kubectl apply -k path/task infra:apply
kubectl logs -f deployment/Xtask infra:logs
docker build -t image .task infra:build
pytest or python -m pytesttask test or task metrics:test
python script.pyCheck for task <component>:<action>

Before running ANY command, check if a task exists for it.

Available Tasks

The following tasks are available in this repository. Use task --list to see the most current list:

NameDescription
builder:add-reposAdd additional repository worktrees to existing builder workspace (usage - task builder:add-repos BUILDER_NAME=my-feature REPOS=ai-dev,domain-apis)
builder:attachAttach to builder workspace tmux session (usage - task builder:attach BUILDER_NAME=my-feature)
builder:cleanupRemove builder workspace (usage - task builder:cleanup BUILDER_NAME=my-feature)
builder:controlOpen control center view of all builder workspaces
builder:initInitialize builder workspace with multi-repo support (usage - task builder:init BUILDER_NAME=my-feature REPOS=ai-dev)
builder:listList all builder workspaces
builder:openOpen builder workspace (usage - task builder:open BUILDER_NAME=my-feature [IDE=code
builder:sendSend command to builder workspace session (usage - task builder:send BUILDER_NAME=my-feature CMD=“git status”)
builders:statusShow git status for all builders and their repositories
docs:taskfileGenerate/update the taskfile steering documentation
projects:createCreate a new project (usage - task projects:create NAME=my-project FORMAT=kiro CATEGORY=infrastructure)
projects:indexGenerate project index at .ai/projects/INDEX.md
projects:listList all projects with their status and category
projects:syncSync project metadata with artifacts (usage - task projects:sync [PROJECT=name])
shared:dev:commitCommit changes to workspace-shared from consuming repository (usage - task shared:dev:commit REPO_PATH=../ai-dev MESSAGE=“Update shared components”)
shared:dev:pushPush workspace-shared changes to remote repository (usage - task shared:dev:push REPO_PATH=../ai-dev)
shared:dev:releaseCreate a new release tag for workspace-shared (usage - task shared:dev:release REPO_PATH=../ai-dev TAG=v1.1.0 MESSAGE=“Release v1.1.0”)
shared:dev:testRun tests for workspace-shared components (usage - task shared:dev:test REPO_PATH=../ai-dev)
shared:listList all repositories with workspace-shared submodules
shared:pinPin workspace-shared submodule to specific version (usage - task shared:pin REPO_PATH=../ai-dev TAG=v1.0.0)
shared:setupAdd workspace-shared as submodule to a repository (usage - task shared:setup REPO_PATH=../ai-dev)
shared:statusShow workspace-shared submodule status across repositories (usage - task shared:status REPO_PATH=../ai-dev)
shared:testTest workspace-shared management tasks functionality
shared:updateUpdate workspace-shared submodule to latest version (usage - task shared:update REPO_PATH=../ai-dev)
shared:validateValidate workspace-shared submodule integrity (usage - task shared:validate REPO_PATH=../ai-dev)
workspace:bootstrapBootstrap workspace-root repository in code-server (one-time setup)
workspace:initInitialize local workspace (usage - task workspace:init WS=codev)
workspace:install-toolsInstall development tools (local execution - for Docker build)
workspace:install-tools-remoteInstall development tools on remote code-server container (calls local task via kubectl exec)
workspace:shellGet a shell in the code-server pod
workspace:statusShow code-server workspace status (local execution)
workspace:status-localShow local workspace status
workspace:status-remoteShow code-server workspace status on remote container (calls local task via kubectl exec)
workspace:syncSync code-server workspaces and projects (local execution - reads from workspaces.yaml config)
workspace:sync-githubSync GitHub repositories (requires SSH key to be added to GitHub)
workspace:sync-remoteSync code-server workspaces and projects on remote container (calls local task via kubectl exec)
workspace:test-toolsTest installed development tools (local execution)
workspace:test-tools-remoteTest installed development tools on remote container (calls local task via kubectl exec)

Best Practices

  1. Always check status first - Use task status or component-specific status tasks
  2. Use the development workflow - Pause ArgoCD, apply directly, test, then resume
  3. Run tests before committing - Use appropriate test tasks for your changes
  4. Leverage existing tasks - Don’t reinvent commands that already exist
  5. Update tasks when needed - If you find yourself running the same commands repeatedly, add them to a Taskfile