chore(.agents): keep lean — remove default mode files, no modes list
.agents/ is an override layer. Default modes (ask/build/autonomous) and default skills come from SF's built-in config. Project files only exist when overriding or adding something project-specific. - Remove modes/ask.md, modes/build.md, modes/autonomous.md (defaults) - Remove enabled.modes from manifest (nothing project-defined) - Policies and skills stay: they are project-specific overrides To override a mode or skill, add a file with the same name. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
82d629c3ee
commit
4f04fb4c34
4 changed files with 1 additions and 153 deletions
|
|
@ -11,10 +11,7 @@ defaults:
|
|||
policy: default-safe
|
||||
|
||||
enabled:
|
||||
modes:
|
||||
- ask
|
||||
- build
|
||||
- autonomous
|
||||
# modes: not listed — no project overrides; SF built-in modes (ask/build/autonomous) apply
|
||||
policies:
|
||||
- default-safe
|
||||
- yolo
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
id: ask
|
||||
title: Ask
|
||||
policy: default-safe
|
||||
enableSkills: []
|
||||
disableSkills: []
|
||||
includeSnippets:
|
||||
- style
|
||||
- principles
|
||||
- non-goals
|
||||
toolIntent:
|
||||
allow:
|
||||
- read
|
||||
- search
|
||||
- web_fetch
|
||||
deny:
|
||||
- write
|
||||
- exec_command
|
||||
- git_commit
|
||||
- git_push
|
||||
---
|
||||
|
||||
# Ask Mode
|
||||
|
||||
Read-only investigation. Answer questions about the codebase, propose
|
||||
plans, but **make no changes**.
|
||||
|
||||
Use this mode when:
|
||||
|
||||
- The user is exploring or trying to understand something.
|
||||
- A plan needs review before implementation.
|
||||
- The right next step is unclear and probing the code base will help.
|
||||
|
||||
Switch to Build (Shift+Tab) when the user is ready for the agent to
|
||||
make changes.
|
||||
|
||||
This mode's policy denies writes, command execution, and git mutation.
|
||||
If a task requires any of those, surface that fact rather than
|
||||
attempting and failing.
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
---
|
||||
id: autonomous
|
||||
title: Autonomous
|
||||
policy: default-safe
|
||||
enableSkills:
|
||||
- forge-autonomous-runtime
|
||||
disableSkills: []
|
||||
includeSnippets:
|
||||
- style
|
||||
- principles
|
||||
- non-goals
|
||||
toolIntent:
|
||||
allow:
|
||||
- read
|
||||
- search
|
||||
- web_fetch
|
||||
- write
|
||||
- exec_command
|
||||
- git_commit
|
||||
deny:
|
||||
- git_push_force
|
||||
- rm_rf
|
||||
- drop_table
|
||||
---
|
||||
|
||||
# Autonomous Mode
|
||||
|
||||
Long-horizon unattended execution. SF drives the full UOK dispatch
|
||||
loop: milestone → slice → task → commit, without human confirmation
|
||||
per unit. The deterministic controller (not the LLM) reads `sf.db`
|
||||
and decides what to dispatch next.
|
||||
|
||||
**Entry points:**
|
||||
|
||||
- `sf run --autonomous` (CLI)
|
||||
- `sf headless next` / `sf headless autonomous` (machine surface)
|
||||
- TUI: enable via `/autonomous` or the autonomous panel
|
||||
|
||||
**Differences from Build:**
|
||||
|
||||
- No per-unit human confirmation gate.
|
||||
- Each task unit gets a **fresh agent context** — no accumulated state
|
||||
between units.
|
||||
- Budget limits enforced: turn cap and token cap per unit.
|
||||
- The 120 s bash default timeout is critical here — without it a
|
||||
single hanging command consumes the entire autonomous run budget.
|
||||
- Bash tool has a 120 s default timeout (configurable via
|
||||
`settings.json → bash.defaultTimeoutSeconds`).
|
||||
- Recovery and runaway-guard are active; stuck units are retried or
|
||||
abandoned automatically.
|
||||
|
||||
**What does NOT change in this mode:**
|
||||
|
||||
- Path deny rules and redactions from the active policy still apply.
|
||||
- Secrets are never written to commits or logs.
|
||||
- Destructive operations (`rm -rf`, `git push --force`, `drop_table`)
|
||||
are still denied.
|
||||
|
||||
**When to use:**
|
||||
|
||||
Use autonomous mode when the milestone/slice plan is stable, tests are
|
||||
present, and the work is low-blast-radius. Use Build mode when you
|
||||
want to review changes interactively or the task is novel/risky.
|
||||
|
||||
The YOLO flag (`Ctrl+Y` / `/mode yolo`) can be layered on top of
|
||||
Build or Autonomous to drop the remaining confirmation gates entirely.
|
||||
It is a flag — not a mode — and does not appear as a Shift+Tab stop.
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
---
|
||||
id: build
|
||||
title: Build
|
||||
policy: default-safe
|
||||
enableSkills: []
|
||||
disableSkills: []
|
||||
includeSnippets:
|
||||
- style
|
||||
- principles
|
||||
- non-goals
|
||||
toolIntent:
|
||||
allow:
|
||||
- read
|
||||
- search
|
||||
- web_fetch
|
||||
- write
|
||||
- exec_command
|
||||
- git_commit
|
||||
deny:
|
||||
- git_push_force
|
||||
- rm_rf
|
||||
- drop_table
|
||||
---
|
||||
|
||||
# Build Mode
|
||||
|
||||
Active development. Make changes, run tests, commit.
|
||||
|
||||
Confirmations are required for destructive operations per the
|
||||
default-safe policy (rm -rf, git push --force, git reset --hard,
|
||||
drop_table, etc.). Toggle the YOLO flag (Ctrl+Y) to drop those
|
||||
confirmations — that's a flag on Build, not a separate mode.
|
||||
|
||||
In this mode the agent is expected to:
|
||||
|
||||
- Run tests before committing.
|
||||
- Group related changes in a single commit; don't bundle unrelated
|
||||
work.
|
||||
- Use Git history as the rationale store — clear commit messages,
|
||||
rationale in the body, link to ADRs when relevant.
|
||||
- Update tests when changing behaviour.
|
||||
- Promote durable decisions to `docs/adr/` rather than burying them
|
||||
in commit messages.
|
||||
Loading…
Add table
Reference in a new issue