3562d063e5
justfile with build/install/uninstall/test targets. CLAUDE.md updated with new install path and commands. status-line-setup.md updated for %LOCALAPPDATA%\ctask\bin location. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
77 lines
2.5 KiB
Markdown
77 lines
2.5 KiB
Markdown
# 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 <module>@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.
|