add-tool-packagelisted
Install: claude install-skill twindebank/tclaw
Scaffold a new MCP tool package under `internal/tool/`. Ask the user for:
1. **Package name** — lowercase, no abbreviations (e.g. `weathertools`, `spotify`)
2. **Brief description** — what the tools do (e.g. "Weather forecasts and alerts")
3. **Tool group** — which group these belong to, or a new one (ask if unsure)
4. **Needs credentials?** — API key, OAuth, or none
## Reference patterns
Before writing any code, read these files to match the exact patterns:
- `internal/tool/tfl/package.go` — minimal package (optional secret, no OAuth)
- `internal/tool/scheduletools/package.go` — package with extra dependencies
- `internal/tool/toolpkg/toolpkg.go` — the `Package` interface
- `internal/tool/all/all.go` — where packages are registered
- `internal/tool/tfl/definitions.go` — tool definition pattern
- `internal/toolgroup/group.go` — tool group constants
Also read `docs/go-patterns.md` for code style rules.
## Files to create
For a package named `{name}`:
### `internal/tool/{name}/package.go`
- Struct implementing `toolpkg.Package`
- `Name()` returns stable identifier
- `Description()` returns human-readable summary
- `Group()` returns the tool group
- `GroupTools()` maps group to `[]claudecli.Tool` with glob pattern `"mcp__tclaw__{name}_*"`
- `RequiredSecrets()` — empty slice if no credentials, or `[]SecretSpec{...}` with env prefix
- `Info()` returns `*toolpkg.PackageInfo` with credential status
- `Register()` calls `RegisterTools(handler, deps)`
- If credentials needed: