# ctask Project Guidelines ## Build and Install This project is a local-only Go CLI. It is not published to any package registry or remote repository. ### Prerequisites - Go 1.26+ (`winget install GoLang.Go`) - just (optional task runner: `winget install Casey.Just`) ### Install on Windows ```powershell cd C:\Users\Warren\claude_tasks\ctask_v0.1 powershell -NoProfile -ExecutionPolicy Bypass -File scripts/install.ps1 ``` Or with just: `just install` This builds from the local repo, copies files to `%LOCALAPPDATA%\ctask\bin`, and adds the directory to user PATH. | Installed file | Location | |---|---| | ctask.exe | %LOCALAPPDATA%\ctask\bin\ctask.exe | | ctask-statusline.sh | %LOCALAPPDATA%\ctask\bin\ctask-statusline.sh | | ctask-statusline.ps1 | %LOCALAPPDATA%\ctask\bin\ctask-statusline.ps1 | ### Uninstall ```powershell cd C:\Users\Warren\claude_tasks\ctask_v0.1 powershell -NoProfile -ExecutionPolicy Bypass -File scripts/uninstall.ps1 ``` Or with just: `just uninstall` Removes only ctask files and the PATH entry (if ctask install added it). Does NOT remove workspaces or task data. ### Dev build (no install) ``` just build # or: go build -o ctask.exe . just test # or: go test ./... -v -count=1 ``` ### Remote install Not available. There is no git remote configured. Do not provide `go install @latest` commands. ## Repository and Package Identity Never invent remote repository, package, or module identities. Do not guess GitHub usernames/orgs, repo URLs, Go module paths, release install commands, or package manager coordinates. Only provide remote clone/install/publish commands if they are verified from the actual repo config (e.g. `go.mod`, `git remote -v`) or explicitly provided by the user. If publishing/release details are not configured, say so plainly and provide local-only build/install commands instead. ### Bad vs Good Bad: `go install github.com/someone/ctask@latest` Bad: `git clone https://github.com/someone/ctask.git` Good: `just install` or `powershell -File scripts/install.ps1` Good: "This project is not published remotely. Build and install locally." ## Testing ``` just test # or: go test ./... -v -count=1 ``` ## Data Safety The `ctask delete` command has active-workspace protection: 1. Checks `CTASK_WORKSPACE` env var (catches same-session attempts) 2. Checks for `.ctask/manifest-start.json` (catches cross-terminal attempts) Both checks run before any mutation. Any changes to the delete path must preserve this "refuse before mutate" invariant.