Sirens Deep: what is already shipped, the August 19 gap, and stale repo identity #76

Closed
opened 2026-08-07 18:38:13 +00:00 by coilyco-ops · 3 comments
Member

Corrections

Two earlier claims in this issue were wrong, both from reasoning off issue text and commit subjects instead of reading the tree.

  1. "sirens-deep exists nowhere in the portfolio." Wrong. A sirens-deep workload is deployed and its profile is on main.
  2. "PR #77 is a prerequisite." Wrong, and backwards. See the diff analysis on #73. That branch adds role-intent routing, which #67 and #68 deliberately removed, and merging it would revert the profile architecture.

A third statement needs tightening. This issue previously described Sirens Deep as "the social-persona response profile on a DeepSeek backend." That is imprecise on both halves.

What Sirens Deep actually is on main

agent/sirens-deep.yaml, schema coilyco-harness.agent.v1:

  • identity: CoilyCo
  • audit_role: general
  • response_style: social
  • channel: ""
  • local_skill_roots: [.agents/skills/coilyco-general]
  • mcp_servers: []

docs/response-profiles.md states that the filename "remains the stable deployment selection used by the existing sirens-deep workload," and that the profile is HTTP-only, has no MCP roster, and has no automatic issue tracker.

So sirens-deep is a deployment selector name, and the profile behind it is now the CoilyCo general-purpose social profile, repurposed by bcc5998 on 2026-08-06. It is not a Sirens community persona.

The DeepSeek association is a deployment fact, not a repository fact. The definition names no model. main reads the model tag from AGENT_PROXY_MODEL at runtime. The name traces to 5704293, "refactor: name the DeepSeek profile Sirens Deep," on 2026-08-05.

The real August 19 gap

The demo in coilysiren/inbox#324 needs a Discord agent with tools that talks to other agents and can be evaluated on identity. Measured against agent/sirens-deep.yaml as it stands:

Already there

  • A deployed sirens-deep workload with a stable deployment selector.
  • Deployment-selectable profiles and YAML harness definitions.
  • A social response style.
  • DeepSeek reasoning preserved across tool turns, f869390.

Not there

  • Discord binding. The profile is HTTP-only with channel: "". The demo is a Discord channel.
  • MCP roster. mcp_servers: []. coilysiren/inbox#334 wants tools on this agent.
  • The social media manager persona. The prep call named that specific persona. The current profile is CoilyCo general-purpose, which is adjacent but not the same thing.
  • Agent-to-agent recognition. Kai stated on the call that her agents do not recognize other agents. The demo shape is agents interacting in a shared channel.
  • The identity eval covering itself, other humans, and other agents.

None of that is a refactor. It is profile configuration, a channel binding, an MCP roster, and the eval.

Stale repository identity

The Forgejo description still reads:

Sirens Echo Community harness for the Sirens Discord.

That is already inaccurate. The repository ships two selectable profiles, one of which is a general-purpose CoilyCo harness that is not the Sirens Discord community agent at all. Candidate replacement:

Model-opaque harness for the Sirens Discord and CoilyCo deployments, shipping the Sirens Echo community and Sirens Deep general-purpose profiles.

Kai owns the final wording. The Forgejo repository description is instance metadata rather than a tracked file, and the MCP surface available to agent sessions exposes no repository-edit tool, so that line is a Kai or authorized ops action.

README.md and docs/FEATURES.md were touched by the profile commits and may already be current. Check them in the same pass rather than assuming.

Member-data boundary, unchanged

The August 19 demo runs on Abhay's small purpose-made Discord, not the Sirens community server, so no real member data is in scope for the stream.

Open only if a profile is ever pointed at the real community server on a hosted backend: retention and training terms, whether the community is told which backend answers them, and whether any channel class is excluded. Issue #55's telemetry body-safety contract is unaffected either way.

## Corrections Two earlier claims in this issue were wrong, both from reasoning off issue text and commit subjects instead of reading the tree. 1. **"sirens-deep exists nowhere in the portfolio."** Wrong. A `sirens-deep` workload is deployed and its profile is on `main`. 2. **"PR #77 is a prerequisite."** Wrong, and backwards. See the diff analysis on #73. That branch adds role-intent routing, which #67 and #68 deliberately removed, and merging it would revert the profile architecture. A third statement needs tightening. This issue previously described Sirens Deep as "the social-persona response profile on a DeepSeek backend." That is imprecise on both halves. ## What Sirens Deep actually is on main `agent/sirens-deep.yaml`, schema `coilyco-harness.agent.v1`: * `identity: CoilyCo` * `audit_role: general` * `response_style: social` * `channel: ""` * `local_skill_roots: [.agents/skills/coilyco-general]` * `mcp_servers: []` `docs/response-profiles.md` states that the filename "remains the stable deployment selection used by the existing `sirens-deep` workload," and that the profile is HTTP-only, has no MCP roster, and has no automatic issue tracker. So `sirens-deep` is a **deployment selector name**, and the profile behind it is now the CoilyCo general-purpose social profile, repurposed by `bcc5998` on 2026-08-06. It is not a Sirens community persona. The DeepSeek association is a **deployment fact, not a repository fact**. The definition names no model. `main` reads the model tag from `AGENT_PROXY_MODEL` at runtime. The name traces to `5704293`, "refactor: name the DeepSeek profile Sirens Deep," on 2026-08-05. ## The real August 19 gap The demo in https://forgejo.coilysiren.me/coilysiren/inbox/issues/324 needs a Discord agent with tools that talks to other agents and can be evaluated on identity. Measured against `agent/sirens-deep.yaml` as it stands: **Already there** * A deployed `sirens-deep` workload with a stable deployment selector. * Deployment-selectable profiles and YAML harness definitions. * A social response style. * DeepSeek reasoning preserved across tool turns, `f869390`. **Not there** * **Discord binding.** The profile is HTTP-only with `channel: ""`. The demo is a Discord channel. * **MCP roster.** `mcp_servers: []`. https://forgejo.coilysiren.me/coilysiren/inbox/issues/334 wants tools on this agent. * **The social media manager persona.** The prep call named that specific persona. The current profile is CoilyCo general-purpose, which is adjacent but not the same thing. * **Agent-to-agent recognition.** Kai stated on the call that her agents do not recognize other agents. The demo shape is agents interacting in a shared channel. * **The identity eval** covering itself, other humans, and other agents. None of that is a refactor. It is profile configuration, a channel binding, an MCP roster, and the eval. ## Stale repository identity The Forgejo description still reads: > Sirens Echo Community harness for the Sirens Discord. That is already inaccurate. The repository ships two selectable profiles, one of which is a general-purpose CoilyCo harness that is not the Sirens Discord community agent at all. Candidate replacement: > Model-opaque harness for the Sirens Discord and CoilyCo deployments, shipping the Sirens Echo community and Sirens Deep general-purpose profiles. Kai owns the final wording. The Forgejo repository description is instance metadata rather than a tracked file, and the MCP surface available to agent sessions exposes no repository-edit tool, so that line is a Kai or authorized ops action. `README.md` and `docs/FEATURES.md` were touched by the profile commits and may already be current. Check them in the same pass rather than assuming. ## Member-data boundary, unchanged The August 19 demo runs on Abhay's small purpose-made Discord, not the Sirens community server, so no real member data is in scope for the stream. Open only if a profile is ever pointed at the real community server on a hosted backend: retention and training terms, whether the community is told which backend answers them, and whether any channel class is excluded. Issue #55's telemetry body-safety contract is unaffected either way.
coilyco-ops changed title from Record sirens-deep as a second deploy variant of this harness to sirens-deep: DeepSeek deploy variant, committed for the August 19 Temporal demo 2026-08-07 18:49:48 +00:00
coilyco-ops changed title from sirens-deep: DeepSeek deploy variant, committed for the August 19 Temporal demo to Update repository identity for the Sirens Deep profile already on main 2026-08-07 19:11:18 +00:00
coilyco-ops changed title from Update repository identity for the Sirens Deep profile already on main to Sirens Deep: what is already shipped, the August 19 gap, and stale repo identity 2026-08-07 19:15:11 +00:00
Author
Member

Repository description: already fixed, close that part

Direction from Kai, 2026-08-12 session.

The issue records the description as stale:

Sirens Echo Community harness for the Sirens Discord.

That is no longer what the instance carries. The current description on coilyco-gaming/sirens-echo reads:

A discord community agent harness - home of sirens echo and sirens deep

Which is accurate about both profiles and needs no further wording decision. That item is done — no Kai or ops action is outstanding on it.

What remains here

The issue body itself flags it: README.md and docs/FEATURES.md were touched by the profile commits and may already be current. Check them rather than assuming. That is the only open work item left in this issue that belongs to the engineer.

The August 19 gap, restated against current status

The "Not there" list has moved since this was written. Current disposition of each:

Gap Status
Discord binding #135 — deploy change, engineer opens the PR, Kai merges and verifies
MCP roster Landed. sirens-deep-mcp-roster.yml carries forgejo and steam
The social media manager persona #98 — unblocked as of 2026-08-12, top of queue
Agent-to-agent recognition Still unbuilt. The piece #81's matrix most depends on
The identity eval #81 — now four axes, disclosure added

Agent-to-agent recognition remains the genuinely unbuilt one, and per #81 it is the axis carrying the three-model sweep. Worth naming plainly: it is the item most likely to miss August 19.

Member-data boundary

Unchanged and still correct. The demo runs on Abhay's small purpose-made Discord, not the Sirens community server.

## Repository description: already fixed, close that part Direction from Kai, 2026-08-12 session. The issue records the description as stale: > Sirens Echo Community harness for the Sirens Discord. That is no longer what the instance carries. The current description on `coilyco-gaming/sirens-echo` reads: > A discord community agent harness - home of sirens echo and sirens deep Which is accurate about both profiles and needs no further wording decision. **That item is done** — no Kai or ops action is outstanding on it. ## What remains here The issue body itself flags it: `README.md` and `docs/FEATURES.md` were touched by the profile commits and may already be current. **Check them rather than assuming.** That is the only open work item left in this issue that belongs to the engineer. ## The August 19 gap, restated against current status The "Not there" list has moved since this was written. Current disposition of each: | Gap | Status | | --- | --- | | Discord binding | #135 — deploy change, engineer opens the PR, Kai merges and verifies | | MCP roster | Landed. `sirens-deep-mcp-roster.yml` carries `forgejo` and `steam` | | The social media manager persona | #98 — unblocked as of 2026-08-12, top of queue | | Agent-to-agent recognition | Still unbuilt. The piece #81's matrix most depends on | | The identity eval | #81 — now four axes, disclosure added | Agent-to-agent recognition remains the genuinely unbuilt one, and per #81 it is the axis carrying the three-model sweep. Worth naming plainly: it is the item most likely to miss August 19. ## Member-data boundary Unchanged and still correct. The demo runs on Abhay's small purpose-made Discord, not the Sirens community server.
Author
Member

Status refresh against main at 06a86a0

This issue's inventory has moved a lot, so here it is re-measured rather than remembered. Two of its statements are now stale in the useful direction, and one was fixed by someone else already.

Already there, updated

The original list still holds, and gains:

  • A composed identity. #98 is closed. Deep composes a real Agent Compose role bundle with the personality meld, ValidateSystemPrompt inverts per profile so Echo still carries none of it, and all eight roster roles bake so SIRENS_DEEP_ROLE selects one with no rebuild.
  • Knowledge of its own authority. #122 is closed. A skill generated from the deployed guardfile, stating deny-by-absence, inside Deep's local skill roots.
  • It cannot claim to be a person. #148 is closed. A shared prompt rule plus a validator that binds every response style, since the social profile previously had no deterministic reply check at all.
  • Durable work. #143 through #147 are closed: a job record with a state machine, async submit and poll and cancel, job-scoped telemetry, structured commands with a schema treated as an authority boundary, and thread-to-job binding.

Two entries in "Not there" are now inaccurate

MCP roster. mcp_servers: [].

The field no longer exists. e90e34b moved the roster to a deployment-owned YAML file named by SIRENS_ECHO_MCP_ROSTER, so a definition cannot carry one. Whether Deep has tools is a deploy fact, and per the roster comments quoted in #137 it does have the Forgejo MCP.

Discord binding. The profile is HTTP-only with channel: "".

channel: "" is still true and no longer means HTTP-only. It is the prompt's boundary label, not the routing key: admissionPolicy renders no channel sentence when it is empty, and routing comes from the access policy. Deep is on Discord today through the DM lane, and per my comment on #135 the guild path needs no code either.

The stale repository description is fixed

The Forgejo description still reads: Sirens Echo Community harness for the Sirens Discord.

It now reads "A discord community agent harness - home of sirens echo and sirens deep". Whoever changed it, that bullet is done.

What is genuinely still not there

Exactly one item from the original list survives re-measurement:

  • Agent-to-agent recognition. Nothing in the tree recognizes a counterpart as an agent rather than a person. #81 records it as the axis most worth a three-model sweep and the one most likely to break under a weaker model.

The identity eval is partially built: agent/board-deep.yaml is a human-graded board that emits a dataset and reports no verdict, and evaluation-deep.yaml is the deterministic gate. Neither covers the three recognition axes yet, which is #81's scope.

Suggested disposition

This issue did its job as the durable record of the gap. Everything in it is now either closed, reassigned to a live issue, or fixed. I would close it and let #81 carry the remaining recognition work, but it is labelled consult and the call is yours.

The member-data boundary at the end is unchanged and still correct.

## Status refresh against `main` at `06a86a0` This issue's inventory has moved a lot, so here it is re-measured rather than remembered. Two of its statements are now stale in the useful direction, and one was fixed by someone else already. ### Already there, updated The original list still holds, and gains: * **A composed identity.** #98 is closed. Deep composes a real Agent Compose role bundle with the personality meld, `ValidateSystemPrompt` inverts per profile so Echo still carries none of it, and all eight roster roles bake so `SIRENS_DEEP_ROLE` selects one with no rebuild. * **Knowledge of its own authority.** #122 is closed. A skill generated from the deployed guardfile, stating deny-by-absence, inside Deep's local skill roots. * **It cannot claim to be a person.** #148 is closed. A shared prompt rule plus a validator that binds every response style, since the social profile previously had no deterministic reply check at all. * **Durable work.** #143 through #147 are closed: a job record with a state machine, async submit and poll and cancel, job-scoped telemetry, structured commands with a schema treated as an authority boundary, and thread-to-job binding. ### Two entries in "Not there" are now inaccurate > **MCP roster.** `mcp_servers: []`. The field no longer exists. `e90e34b` moved the roster to a deployment-owned YAML file named by `SIRENS_ECHO_MCP_ROSTER`, so a definition cannot carry one. Whether Deep has tools is a deploy fact, and per the roster comments quoted in #137 it does have the Forgejo MCP. > **Discord binding.** The profile is HTTP-only with `channel: ""`. `channel: ""` is still true and no longer means HTTP-only. It is the prompt's boundary *label*, not the routing key: `admissionPolicy` renders no channel sentence when it is empty, and routing comes from the access policy. Deep is on Discord today through the DM lane, and per my comment on #135 the guild path needs no code either. ### The stale repository description is fixed > The Forgejo description still reads: Sirens Echo Community harness for the Sirens Discord. It now reads "A discord community agent harness - home of sirens echo and sirens deep". Whoever changed it, that bullet is done. ### What is genuinely still not there Exactly one item from the original list survives re-measurement: * **Agent-to-agent recognition.** Nothing in the tree recognizes a counterpart as an agent rather than a person. #81 records it as the axis most worth a three-model sweep and the one most likely to break under a weaker model. The identity eval is partially built: `agent/board-deep.yaml` is a human-graded board that emits a dataset and reports no verdict, and `evaluation-deep.yaml` is the deterministic gate. Neither covers the three recognition axes yet, which is #81's scope. ### Suggested disposition This issue did its job as the durable record of the gap. Everything in it is now either closed, reassigned to a live issue, or fixed. I would close it and let #81 carry the remaining recognition work, but it is labelled `consult` and the call is yours. The member-data boundary at the end is unchanged and still correct.
Author
Member

Decision: close it

Direction from Kai, 2026-08-12 session. The consult label made this her call, and the recommendation in the status refresh is accepted.

This issue did its job. It was the durable record of the August 19 gap, it corrected two of its own claims along the way, and every line in it is now closed, reassigned to a live issue, or verified fixed.

Where the remaining work lives

Was in this issue Now
Discord binding #135 — deploy-gated, the last demo blocker
MCP roster Landed. Field no longer exists; roster is deployment-owned
Social media manager persona #98 — closed
Agent-to-agent recognition #153 — built as the "nothing at all" slice; Kai has since called for disclosure + register
The identity eval #81 — four axes, disclosure added
Stale repository description Fixed
README.md / docs/FEATURES.md check Carried to #81's preparation work rather than left here

On the re-measurement

Two corrections in the status refresh are worth keeping visible, because both were things this issue asserted and the tree disproved:

  • mcp_servers: [] — the field no longer exists at all. Whether Deep has tools is a deploy fact.
  • channel: "" — still true, and it does not mean HTTP-only. It is the prompt's boundary label, not a routing key.

That is the second time this issue has been corrected by reading the tree rather than the issue text, and it is the reason closing it is right: a stale inventory left open invites someone to read it as current.

Unchanged and still correct

The member-data boundary. The August 19 demo runs on Abhay's small purpose-made Discord, not the Sirens community server, so no real member data is in scope. That constraint outlives this issue — if a profile is ever pointed at the real community server on a hosted backend, retention, disclosure of which backend answers, and channel-class exclusions all become live questions. Worth re-filing standalone if that day comes.

## Decision: close it Direction from Kai, 2026-08-12 session. The `consult` label made this her call, and the recommendation in the status refresh is accepted. This issue did its job. It was the durable record of the August 19 gap, it corrected two of its own claims along the way, and every line in it is now closed, reassigned to a live issue, or verified fixed. ## Where the remaining work lives | Was in this issue | Now | | --- | --- | | Discord binding | #135 — deploy-gated, the last demo blocker | | MCP roster | Landed. Field no longer exists; roster is deployment-owned | | Social media manager persona | #98 — closed | | Agent-to-agent recognition | #153 — built as the "nothing at all" slice; Kai has since called for disclosure + register | | The identity eval | #81 — four axes, disclosure added | | Stale repository description | Fixed | | README.md / docs/FEATURES.md check | Carried to #81's preparation work rather than left here | ## On the re-measurement Two corrections in the status refresh are worth keeping visible, because both were things this issue asserted and the tree disproved: * `mcp_servers: []` — the field no longer exists at all. Whether Deep has tools is a deploy fact. * `channel: ""` — still true, and it does not mean HTTP-only. It is the prompt's boundary label, not a routing key. That is the second time this issue has been corrected by reading the tree rather than the issue text, and it is the reason closing it is right: a stale inventory left open invites someone to read it as current. ## Unchanged and still correct The member-data boundary. The August 19 demo runs on Abhay's small purpose-made Discord, not the Sirens community server, so no real member data is in scope. That constraint outlives this issue — if a profile is ever pointed at the real community server on a hosted backend, retention, disclosure of which backend answers, and channel-class exclusions all become live questions. Worth re-filing standalone if that day comes.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo#76
No description provided.