# 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. ### Local build ``` cd C:\Users\Warren\claude_tasks\ctask_v0.1 go build -o ctask.exe . ``` ### Local install (copies to GOPATH/bin) ``` cd C:\Users\Warren\claude_tasks\ctask_v0.1 go install . ``` Binary output: `C:\Users\Warren\go\bin\ctask.exe` ### Remote install Not available. There is no git remote configured and the module path in `go.mod` is a local placeholder. Do not provide `go install @latest` commands or any remote install instructions. ## 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: `cd C:\Users\Warren\claude_tasks\ctask_v0.1 && go install .` Good: "This project is not published remotely. Build locally with `go install .`" ## Testing ``` 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.