Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/ADRs/0002-initial-fullsend-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,12 @@ We propose adopting the following **reference workflow** as the mental model for

**Slash commands (illustrative, configurable per repo):**

> **Note:** The bare command names below (`/triage`, `/implement`,
> `/review`) are illustrative. All production fullsend commands use the
> `/fs-` prefix (e.g., `/fs-triage`, `/fs-code`, `/fs-review`) to avoid
> collisions with other AI tools. See
> [ADR 0042](0042-fs-prefix-for-slash-commands.md).

- `/triage` — run or re-run triage on the issue **from scratch** (clears **`duplicate`** and other triage/ downstream labels at run start; **reopens** the issue if **`closed`**—see **When a triage run starts**)
- `/implement` — hand off to the **Implementation** stage (implementation agent; expects **`ready-to-implement`** or forces with human ack — policy per repo)
- `/review` — enqueue review swarm for current PR head
Expand Down
78 changes: 78 additions & 0 deletions docs/ADRs/0042-fs-prefix-for-slash-commands.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[high] correctness

ADR number collision. ADR 0040 already exists on main as docs/ADRs/0040-org-pool-for-parallel-e2e-tests.md (merged after this branch diverged). ADR 0041 also exists. This PR would create a second file numbered 0040, causing ambiguity in cross-references and the title line. The cross-reference from ADR 0002 (ADR 0040) would also be ambiguous.

Suggested fix: Renumber to the next available ADR number (0042). Update the filename, the title in frontmatter and heading, and the cross-reference in docs/ADRs/0002-initial-fullsend-design.md.

title: "42. Use /fs- prefix for all slash commands"
status: Accepted
relates_to:
- agent-architecture
topics:
- slash-commands
- namespace
- ux
---

# 42. Use /fs- prefix for all slash commands

Date: 2026-05-26

## Status

Accepted

Supersedes the bare command examples in
[ADR 0002](0002-initial-fullsend-design.md).

## Context

Multiple AI-powered tools respond to slash commands in GitHub issue and
PR comments. GitHub Copilot uses `/fix` and `/review`; other bots use
similar bare verbs. When fullsend agents listen for the same bare
commands (e.g., `/triage`, `/implement`, `/review`), any of these tools
may intercept the command, causing unintended side effects or ambiguous
behavior.

The original design document ([ADR 0002](0002-initial-fullsend-design.md))
used bare commands as illustrative examples. As the ecosystem matured,
the collision risk became concrete — Copilot and other tools already
claim several of the same verbs.

Two separate issues (#1473, #1477) were filed proposing workarounds for
command collisions, both unaware that a namespacing decision had already
been made but was recorded only in the
[glossary](../glossary.md#slash-command). This ADR formalizes that
decision so it is discoverable alongside other architectural choices.

## Options

### A. Bare commands (`/triage`, `/implement`, `/review`)

- Pro: shorter to type, familiar syntax.
- Con: collides with Copilot and other tools that claim the same verbs.

### B. `/fs-` prefixed commands (`/fs-triage`, `/fs-code`, `/fs-review`)

- Pro: unique namespace; no known collision with existing tools.
- Pro: short enough to remain ergonomic.
- Con: users must learn the prefix.

### C. `/fullsend-` prefixed commands

- Pro: unambiguous namespace.
- Con: too verbose for frequent interactive use.

## Decision

All fullsend slash commands use the `/fs-` prefix
(e.g., `/fs-triage`, `/fs-code`, `/fs-review`). The entry point's slash
command parser must recognize only `/fs-`-prefixed commands and ignore
bare verbs.

## Consequences

- Fullsend commands will not collide with Copilot, other AI bots, or
future GitHub-native slash commands.
- Users and documentation must use the `/fs-` prefix; bare commands are
not recognized.
- The glossary already reflects this convention. ADR 0002's illustrative
examples of bare commands (`/triage`, `/implement`, `/review`) are
superseded by this decision.
- Agent prompt instructions, harness definitions, and dispatch
configuration that reference slash commands must use the `/fs-` form.
Loading