docs(commands): record that CommandFromPrompt is #127's groundwork #877

Merged
coilysiren merged 2 commits from aos/claude/hs68-prompt-command-intent into main 2026-08-17 03:09:43 +00:00
Member

#823 asked which CommandFromPrompt is: deliberate groundwork for #127, or a leftover. It is groundwork, and the answer was in the commit that introduced it the whole time.

1. Read the commit that introduced it

d718a30, 2026-08-13. Its first line:

Issue 127's mapping half, which the design seat called mechanically clean.

And it states, in the commit rather than anywhere that could be inferred later, why the other half is absent:

Registration is deliberately not here. Rendering is pure and testable; registering is a live API call whose failure mode is a malformed set in a real guild, and it depends on when prompts are known, which is the open question on issue 163.

So the split is intentional and its reason was recorded at the time. #823's framing of a green suite over unreachable code holds as a general worry and does not describe this file.

2. Whether #127 is the intent

Yes, and #127 is open, priority/P4 role/engineer, with Kai's approval recorded by Delphi on 2026-08-13. The 01:29Z comment on that issue from Olaf already says the surface is further along than its title implies and names promptcommand.go specifically.

3. Whether the access-policy gap is why it was never wired

No, and this is the part worth correcting. #823 guessed that a summon path the policy does not model was a good reason to stop halfway. Reasonable guess, wrong one - that gap closed in the same week, in 3142129:

  • docs/access-policy.reference.yaml names all six summon paths, slash commands included, so a reader can enumerate them without reading Go.
  • onInteraction in commanddiscord.go puts an interaction through the same access.Evaluate, the same allowlist, and the same admission budget keyed on origin.Key() that a mention takes.

What actually remains is smaller and more concrete than the policy question:

  • Registration is a live API call, and its failure mode is a malformed set in a real guild.
  • The promotable-prompt allowlist, decided on #127 on 2026-08-12: a prompt is not a command until this repository says so, and its argument schema is declared here rather than taken from the publishing server. Nothing declares that list yet.
  • SIRENS_ECHO_DISCORD_COMMANDS defaults false and neither lane sets it, so what exists is dark rather than reachable.

And one reason has expired: boot-time prompt discovery, the open question d718a30 cited, was #163. #163 is closed. The commit's stated blocker is one item shorter than when it was written, which nothing recorded until now.

What this changes

docs/sirens-echo-prompt-commands.md gains a Deliberate groundwork for sirens-echo#127 section carrying all of the above, and one line saying the file is deleted alongside #127 rather than on a caller count.

unwiredcapabilities_test.go gains a two-line pointer on the CommandFromPrompt row, so the next person to run that test finds the decision instead of re-deriving it. The test itself is unchanged and still asserts the function is unwired.

No behaviour change. just gate passes.

closes #823

#823 asked which `CommandFromPrompt` is: deliberate groundwork for #127, or a leftover. **It is groundwork**, and the answer was in the commit that introduced it the whole time. ## 1. Read the commit that introduced it `d718a30`, 2026-08-13. Its first line: > Issue 127's mapping half, which the design seat called mechanically clean. And it states, in the commit rather than anywhere that could be inferred later, why the other half is absent: > Registration is deliberately not here. Rendering is pure and testable; registering is a live API call whose failure mode is a malformed set in a real guild, and it depends on when prompts are known, which is the open question on issue 163. So the split is intentional and its reason was recorded at the time. #823's framing of a green suite over unreachable code holds as a general worry and does not describe this file. ## 2. Whether #127 is the intent Yes, and #127 is open, `priority/P4` `role/engineer`, with Kai's approval recorded by Delphi on 2026-08-13. The 01:29Z comment on that issue from Olaf already says the surface is further along than its title implies and names `promptcommand.go` specifically. ## 3. Whether the access-policy gap is why it was never wired **No, and this is the part worth correcting.** #823 guessed that a summon path the policy does not model was a good reason to stop halfway. Reasonable guess, wrong one - that gap closed in the same week, in `3142129`: - `docs/access-policy.reference.yaml` names all six summon paths, slash commands included, so a reader can enumerate them without reading Go. - `onInteraction` in `commanddiscord.go` puts an interaction through the same `access.Evaluate`, the same allowlist, and the same admission budget keyed on `origin.Key()` that a mention takes. What actually remains is smaller and more concrete than the policy question: - **Registration is a live API call**, and its failure mode is a malformed set in a real guild. - **The promotable-prompt allowlist**, decided on #127 on 2026-08-12: a prompt is not a command until this repository says so, and its argument schema is declared here rather than taken from the publishing server. Nothing declares that list yet. - `SIRENS_ECHO_DISCORD_COMMANDS` **defaults false** and neither lane sets it, so what exists is dark rather than reachable. And one reason has expired: boot-time prompt discovery, the open question `d718a30` cited, was #163. **#163 is closed.** The commit's stated blocker is one item shorter than when it was written, which nothing recorded until now. ## What this changes `docs/sirens-echo-prompt-commands.md` gains a **Deliberate groundwork for sirens-echo#127** section carrying all of the above, and one line saying the file is deleted alongside #127 rather than on a caller count. `unwiredcapabilities_test.go` gains a two-line pointer on the `CommandFromPrompt` row, so the next person to run that test finds the decision instead of re-deriving it. The test itself is unchanged and still asserts the function is unwired. No behaviour change. `just gate` passes. closes #823
docs(commands): record that CommandFromPrompt is #127's groundwork
All checks were successful
ci / test (pull_request) Successful in 47s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
ci / image-build (pull_request) Successful in 28s
8138723c12
sirens-echo#823 asked which it is: deliberate groundwork or a leftover. It is
groundwork, and the commit that introduced it says so in its first line.

The issue's third question guessed the access-policy gap was why it was never
wired. It is not. That gap closed the same week: the reference policy names all
six summon paths including slash commands, and an interaction takes the same
access.Evaluate a mention does.

What actually remains is the live registration call, the promotable-prompt
allowlist decided on #127, and a default-false switch neither lane sets.
Boot-time prompt discovery was a fourth reason and stopped being one when #163
closed.

Recorded in the doc rather than the issue, because a caller count is what makes
someone reach for the delete key and the doc is what they will read next.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Merge remote-tracking branch 'origin/main' into aos/claude/hs68-prompt-command-intent
All checks were successful
ci / test (pull_request) Successful in 45s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
ci / image-build (pull_request) Successful in 18s
1454d94d52
Sign in to join this conversation.
No reviewers
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!877
No description provided.