From 4f04fb4c34984288286ca426314881199f59eca3 Mon Sep 17 00:00:00 2001 From: Mikael Hugo Date: Mon, 11 May 2026 23:47:29 +0200 Subject: [PATCH] =?UTF-8?q?chore(.agents):=20keep=20lean=20=E2=80=94=20rem?= =?UTF-8?q?ove=20default=20mode=20files,=20no=20modes=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .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> --- .agents/manifest.yaml | 5 +-- .agents/modes/ask.md | 39 --------------------- .agents/modes/autonomous.md | 67 ------------------------------------- .agents/modes/build.md | 43 ------------------------ 4 files changed, 1 insertion(+), 153 deletions(-) delete mode 100644 .agents/modes/ask.md delete mode 100644 .agents/modes/autonomous.md delete mode 100644 .agents/modes/build.md diff --git a/.agents/manifest.yaml b/.agents/manifest.yaml index d858f294d..4c5fb473d 100644 --- a/.agents/manifest.yaml +++ b/.agents/manifest.yaml @@ -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 diff --git a/.agents/modes/ask.md b/.agents/modes/ask.md deleted file mode 100644 index 70896486f..000000000 --- a/.agents/modes/ask.md +++ /dev/null @@ -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. diff --git a/.agents/modes/autonomous.md b/.agents/modes/autonomous.md deleted file mode 100644 index aa65d5895..000000000 --- a/.agents/modes/autonomous.md +++ /dev/null @@ -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. diff --git a/.agents/modes/build.md b/.agents/modes/build.md deleted file mode 100644 index 8bc1da4cc..000000000 --- a/.agents/modes/build.md +++ /dev/null @@ -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.