Our review
Provides a set of task commands to build, test, lint, and run the shizuku application, enforcing the use of a task runner instead of direct Go commands.
Strengths
- Simplifies build commands
- Ensures consistency across developers and CI
- Prevents accidentally using raw Go commands
- Single entry point for all build operations
Limitations
- Only applicable to the shizuku project
- Requires Task to be installed
- Limited to predefined commands
Use this skill whenever you need to build, test, lint, or run the shizuku application.
Do not use this skill for other Go projects or when you need to perform custom Go operations not covered by the task commands.
Security analysis
SafeThe skill only instructs running local build tasks (task build, run, lint, test) via the Task build system. No destructive, obfuscated, or network-sensitive commands are present. It does not disable safety measures or exfiltrate data.
No concerns found
Examples
Build the shizuku binary using the task runner.Run all tests in the shizuku project.Lint the Go codebase using the task runner.name: task description: Build, test, lint, or run the shizuku application. ALWAYS use this skill instead of invoking Go commands or out/shizuku directly.
Shizuku Task Runner
This project uses Task (taskfile.dev) as its build system. You MUST always use task commands instead of invoking Go commands directly.
Critical Rule
NEVER run these commands directly:
go buildgo rungo fmtgo test
ALWAYS use the corresponding task commands below.
Available Commands
Build
Compiles the shizuku binary to out/shizuku.
task build
What it does: Runs go build -o out/shizuku cmd/main.go
Run
Runs the application with arguments.
task run -- <args>
Examples:
task run -- init
task run -- sync
task run -- sync --verbose
task run -- --help
What it does: Runs go run cmd/main.go with the provided arguments
Lint
Formats all Go code in the project.
task lint
What it does: Runs go fmt ./... across the codebase
Test
Runs all tests or specific tests with optional arguments.
# Run all tests
task test
# Run tests for a specific package
task test -- ./internal/shizukuconfig
# Run a specific test
task test -- -run TestLoadConfig ./internal/shizukuconfig
# Run tests with verbose output
task test -- -v ./...
What it does: Runs go test with the provided arguments (defaults to ./...)
Usage Pattern
When you need to:
- Build the binary → Use
task build - Run the app → Use
task run -- <args> - Format code → Use
task lint - Run tests → Use
task test(with optional-- <args>)
Why Use Task?
- Source tracking - Task watches Go source files and only rebuilds when needed
- Consistency - All developers and CI use the same commands
- Simplicity - Single entry point for all build operations
- Project standard - This is the established pattern for this codebase
Passing Arguments
When passing arguments to task run or task test, always use the -- separator:
task run -- arg1 arg2 # Correct
task run arg1 arg2 # Wrong - task will interpret these as task flags
task test -- -v ./... # Correct
task test -v ./... # Wrong
Integration with Development Workflow
- After creating or modifying code, run
task lintto format - Run
task testto ensure tests pass - Run
task buildto compile the binary - Run
task run -- syncto test the built functionality
Automatic Invocation
This skill should be invoked automatically whenever:
- You're about to build the project
- You're about to run the application
- You're about to format code
- You're about to run tests
Always default to task commands. If you catch yourself about to use go build, go run, go fmt, or go test, STOP and use the appropriate task command instead.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.