- Go 97.9%
- Shell 1.4%
- Just 0.3%
- Dockerfile 0.3%
- Python 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .agents/skills | ||
| .forgejo/workflows | ||
| .github | ||
| .ward | ||
| agent | ||
| agents | ||
| assets | ||
| cmd | ||
| docs | ||
| eval | ||
| internal | ||
| scripts | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| _typos.toml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| justfile | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
sirens-echo
A discord community agent harness - home of sirens echo and sirens deep
About
Sirens Echo is an automated community response service. Its model context is a repository-owned neutral profile plus approved Sirens knowledge. The Discord deployment remains Sirens Echo.
- Only a mention or reply in a configured channel, or a thread under one, invokes the service. Everything else is ignored, direct messages included.
- A git-tracked access policy stacks guild, channel, user, and role grants with a deny list. Per-user, per-guild, and global limits bound spend.
- Replies disable all mentions. Twelve earlier messages give continuity.
- A deterministic validator rejects greetings, emojis, banter, and sign-offs.
- The tool roster exposes public Eco MCP and a private, repository-fixed Forgejo MCP.
- Unanswered questions and corrections become sanitized Forgejo issues.
- The action surface stays repository-scoped, with no moderation or roles.
No automatic memory. Guarded investigations use
.agents/skills/ops-social-discord/. See the walkthrough.
Coilyco harness
The sirens-deep deployment selects agents/deep/definition.yaml. Its model
identity is Sirens Deep of Coilyco and its scope is general-purpose.
- It loads only the domain-neutral
coilyco-generalpolicy and names no channel, so deployment selects Discord ingress, HTTP ingress, or both. - It starts with no MCP, repository knowledge, issue tracker, or write surface while retaining the shared safety and transport bounds.
- One process serves several channels across several guilds, plus opt-in direct messages. See multiple Discord contexts.
General-purpose means topic-neutral and extensible, not universally authorized. Future tools or knowledge must be added explicitly to the tracked definition with their own permission boundary.
Configuration
Every number has one home, internal/community/config.go, and every one of
them takes an environment override through the same helper. There is no tier of
numbers a deployment cannot reach. The list is generated into
the reference from the table itself, and a test
fails if a number drifts out of the file or the reference falls behind it.
Deploy selects the tracked YAML definition, Agent Proxy route, Discord switch,
channel and guild scope, admission limits, and instance name. Reachability of
POST /v1/turn is decided at the network layer by the deployment. See
tuning,
tuning a deployment,
response profiles,
admission control, and
deployment.
Development
Run commands through just:
just setup
just build
just policy-check
just test
just vet
just pre-commit-all
just setup installs the pre-commit hooks. Run it once per clone.
just eval-echo exercises the production prompt, Agent Proxy, and static
Eco MCP roster without sending Discord messages or creating issues. Set
OTEL_EXPORTER_OTLP_ENDPOINT to name the evaluation target you run against.
Deployment
Main pushes publish a full-source-SHA Echo image to Forgejo OCI.
coilyco-bridge/deploy owns the k3s Deployment, secrets, rollout, and
rollback. See the rollout checks.
See also
See AGENTS.md, docs/FEATURES.md, justfile, .ward/ward.yaml, admission, access, HTTP, health, notices, identity, role record, jobs, job lifecycle, job telemetry, commands, execution, guardfile knowledge, reply progress, the identity eval, counterparts, attribution, grants, and docs/sirens-echo-deploy.md. Cross-reference convention from FEATURES.md, tracked by coilysiren/agentic-os#59.
