add AI Coding Agent instructions for slackecho
This commit is contained in:
48
.github/copilot-instructions.md
vendored
Normal file
48
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
# AI Coding Agent Instructions for slackecho
|
||||
|
||||
## Project Overview
|
||||
**slackecho** is a minimal bash shell script that sends messages to Slack via incoming webhooks using `curl`. The project intentionally keeps scope small: message delivery only, no dependencies beyond curl.
|
||||
|
||||
## Architecture & Key Components
|
||||
- **Single Script**: `slackecho` - standalone bash executable with no external modules
|
||||
- **Integration Method**: Slack Incoming Webhooks (posts JSON payload via HTTP POST)
|
||||
- **Minimal Scope**: Script handles message delivery; does not manage authentication, logging, or retries
|
||||
|
||||
**Key Design Decision**: This is a "do one thing well" utility meant for shell script integration (e.g., reporting from cron jobs or CI/CD pipelines). Avoid adding features that expand scope beyond message transmission.
|
||||
|
||||
## Setup & Execution
|
||||
1. **Configuration**: Currently hardcoded `SLACKURL` in the script (TODO: move to external config file)
|
||||
2. **Installation**: Copy `slackecho` to a system binary path (e.g., `/usr/local/bin/`)
|
||||
3. **Dependency**: Requires `curl` to be installed
|
||||
|
||||
## Command Signature
|
||||
```bash
|
||||
slackecho <message> [username] [channel] [icon]
|
||||
```
|
||||
|
||||
- `message` (required): Text to send
|
||||
- `username`: Slack display name (default: "slackecho-user")
|
||||
- `channel`: Target channel (default: "general")
|
||||
- `icon`: Emoji icon (default: ":robot_face:")
|
||||
|
||||
## Patterns & Conventions
|
||||
- **Parameter Handling**: Arguments passed positionally; optional parameters checked with empty string tests (`[ "$2" = "" ]`)
|
||||
- **Curl Usage**: Single POST request with URL-encoded JSON payload; output suppressed to `/dev/null`
|
||||
- **Error Handling**: Currently minimal—no validation of Slack URL or message content; POST failures silently ignored
|
||||
- **Default Values**: All four parameters have sensible defaults defined within script
|
||||
|
||||
## Common Modifications
|
||||
When adding features, maintain the philosophy of simplicity:
|
||||
- **Configuration File**: TODO item suggests moving hardcoded `SLACKURL` to external config
|
||||
- **Tests**: Currently N/A; any test framework should be lightweight (e.g., BATS for bash)
|
||||
- **Logging**: Not currently implemented; if added, should be optional/minimal
|
||||
|
||||
## Important TODOs
|
||||
1. Create external configuration file (move `SLACKURL` and defaults)
|
||||
2. Add test framework (likely bash-based)
|
||||
3. Add code review process
|
||||
4. Document contribution guidelines
|
||||
|
||||
## References
|
||||
- Slack Incoming Webhooks: Uses Slack's webhook JSON format with `channel`, `username`, `text`, `icon_emoji` fields
|
||||
- Repository Maintainer: gary@hansenit.solutions
|
||||
Reference in New Issue
Block a user