Shizuku Task Runner

VerifiedSafe

Uses Task (taskfile.dev) to build, test, lint, and run the Shizuku application. Provides standardized commands instead of direct Go commands.

Sby Skills Guide Bot
DevelopmentBeginner
406/2/2026
Claude CodeCursorWindsurf
#go#taskfile#build-system#workflow

Recommended for

Our review

This skill enforces using Task commands instead of direct Go commands to build, test, lint, and run the Shizuku application.

Strengths

  • Ensures command consistency across developers and CI
  • Prevents mistakes from running Go directly
  • Provides a single entry point for all build operations
  • Simplifies argument passing with the -- separator

Limitations

  • Only applicable to the Shizuku project
  • Requires Task to be installed in the environment
  • May be overkill for trivial one-off Go commands
When to use it

Use this skill whenever you need to build, run, lint, or test the Shizuku application.

When not to use it

Do not use it when you need to run a Go command not covered by Task, or when you want fine-grained control without Task.

Security analysis

Safe
Quality score90/100

Only instructs running typical build tool commands (task build, lint, test, run) via a task runner; no destructive, exfiltrating, or obfuscated actions are specified.

No concerns found

Examples

Build the binary
Build the Shizuku project using the task runner.
Run the app with arguments
Run the Shizuku app with the 'sync' command and verbose output.
Test a specific package
Run tests for the internal/shizukuconfig package in the Shizuku project.

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 build
  • go run
  • go fmt
  • go 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:

  1. Build the binary → Use task build
  2. Run the app → Use task run -- <args>
  3. Format code → Use task lint
  4. Run tests → Use task test (with optional -- <args>)

Why Use Task?

  1. Source tracking - Task watches Go source files and only rebuilds when needed
  2. Consistency - All developers and CI use the same commands
  3. Simplicity - Single entry point for all build operations
  4. 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

  1. After creating or modifying code, run task lint to format
  2. Run task test to ensure tests pass
  3. Run task build to compile the binary
  4. Run task run -- sync to 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.

Related skills