@event4u/agent-config 1.15.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent-src/commands/bug-fix.md +1 -1
- package/.agent-src/commands/bug-investigate.md +2 -2
- package/.agent-src/commands/chat-history-checkpoint.md +1 -1
- package/.agent-src/commands/chat-history-clear.md +1 -1
- package/.agent-src/commands/chat-history.md +1 -1
- package/.agent-src/commands/check-current-md.md +1 -1
- package/.agent-src/commands/council-design.md +96 -0
- package/.agent-src/commands/council-optimize.md +115 -0
- package/.agent-src/commands/council-pr.md +123 -0
- package/.agent-src/commands/council.md +219 -0
- package/.agent-src/commands/create-pr.md +23 -0
- package/.agent-src/commands/do-and-judge.md +3 -3
- package/.agent-src/commands/do-in-steps.md +4 -4
- package/.agent-src/commands/e2e-heal.md +1 -1
- package/.agent-src/commands/e2e-plan.md +1 -1
- package/.agent-src/commands/feature-dev.md +8 -0
- package/.agent-src/commands/feature-explore.md +6 -1
- package/.agent-src/commands/feature-plan.md +33 -2
- package/.agent-src/commands/feature-refactor.md +5 -0
- package/.agent-src/commands/feature-roadmap.md +6 -1
- package/.agent-src/commands/feature.md +58 -0
- package/.agent-src/commands/fix-ci.md +5 -0
- package/.agent-src/commands/fix-portability.md +5 -0
- package/.agent-src/commands/fix-pr-bot-comments.md +5 -0
- package/.agent-src/commands/fix-pr-comments.md +5 -0
- package/.agent-src/commands/fix-pr-developer-comments.md +5 -0
- package/.agent-src/commands/fix-references.md +5 -0
- package/.agent-src/commands/fix-seeder.md +5 -0
- package/.agent-src/commands/fix.md +60 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/judge.md +1 -1
- package/.agent-src/commands/memory-add.md +3 -3
- package/.agent-src/commands/memory-full.md +2 -2
- package/.agent-src/commands/memory-promote.md +2 -2
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/onboard.md +3 -3
- package/.agent-src/commands/optimize-agents.md +6 -1
- package/.agent-src/commands/optimize-augmentignore.md +5 -0
- package/.agent-src/commands/optimize-rtk-filters.md +5 -0
- package/.agent-src/commands/optimize-skills.md +6 -1
- package/.agent-src/commands/optimize.md +54 -0
- package/.agent-src/commands/propose-memory.md +2 -2
- package/.agent-src/commands/review-changes.md +26 -1
- package/.agent-src/commands/review-routing.md +1 -1
- package/.agent-src/commands/roadmap-create.md +29 -2
- package/.agent-src/commands/set-cost-profile.md +3 -3
- package/.agent-src/commands/sync-agent-settings.md +2 -2
- package/.agent-src/commands/tests-create.md +1 -1
- package/.agent-src/commands/upstream-contribute.md +1 -1
- package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
- package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
- package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
- package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
- package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
- package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
- package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/rules/agent-authority.md +24 -0
- package/.agent-src/rules/architecture.md +1 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/.agent-src/rules/artifact-engagement-recording.md +1 -1
- package/.agent-src/rules/ask-when-uncertain.md +1 -1
- package/.agent-src/rules/autonomous-execution.md +78 -114
- package/.agent-src/rules/capture-learnings.md +1 -1
- package/.agent-src/rules/chat-history-cadence.md +3 -3
- package/.agent-src/rules/chat-history-ownership.md +3 -3
- package/.agent-src/rules/chat-history-visibility.md +3 -3
- package/.agent-src/rules/{command-suggestion.md → command-suggestion-policy.md} +7 -7
- package/.agent-src/rules/commit-conventions.md +1 -1
- package/.agent-src/rules/commit-policy.md +14 -42
- package/.agent-src/rules/context-hygiene.md +3 -3
- package/.agent-src/rules/direct-answers.md +1 -1
- package/.agent-src/rules/docs-sync.md +1 -1
- package/.agent-src/rules/e2e-testing.md +1 -1
- package/.agent-src/rules/guidelines.md +4 -4
- package/.agent-src/rules/improve-before-implement.md +2 -2
- package/.agent-src/rules/language-and-tone.md +37 -96
- package/.agent-src/rules/minimal-safe-diff.md +3 -3
- package/.agent-src/rules/model-recommendation.md +4 -4
- package/.agent-src/rules/no-cheap-questions.md +89 -0
- package/.agent-src/rules/non-destructive-by-default.md +15 -49
- package/.agent-src/rules/onboarding-gate.md +5 -5
- package/.agent-src/rules/review-routing-awareness.md +9 -9
- package/.agent-src/rules/roadmap-progress-sync.md +26 -33
- package/.agent-src/rules/role-mode-adherence.md +2 -2
- package/.agent-src/rules/scope-control.md +65 -46
- package/.agent-src/rules/security-sensitive-stop.md +2 -2
- package/.agent-src/rules/size-enforcement.md +1 -1
- package/.agent-src/rules/think-before-action.md +5 -5
- package/.agent-src/rules/token-efficiency.md +4 -4
- package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +3 -3
- package/.agent-src/rules/user-interaction.md +3 -3
- package/.agent-src/rules/verify-before-complete.md +12 -67
- package/.agent-src/scripts/update_roadmap_progress.py +9 -4
- package/.agent-src/skills/ai-council/SKILL.md +333 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/.agent-src/skills/blade-ui/SKILL.md +1 -1
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/command-routing/SKILL.md +1 -1
- package/.agent-src/skills/command-writing/SKILL.md +1 -1
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -1
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
- package/.agent-src/skills/developer-like-execution/SKILL.md +2 -2
- package/.agent-src/skills/flux/SKILL.md +1 -1
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/livewire/SKILL.md +1 -1
- package/.agent-src/skills/override-management/SKILL.md +2 -2
- package/.agent-src/skills/php-coder/SKILL.md +1 -1
- package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
- package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing-package/SKILL.md +1 -1
- package/.agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/.agent-src/skills/review-routing/SKILL.md +2 -2
- package/.agent-src/skills/rule-writing/SKILL.md +1 -1
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/skill-writing/SKILL.md +3 -3
- package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +1 -1
- package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +2 -2
- package/.agent-src/templates/agent-settings.md +8 -8
- package/.agent-src/templates/contexts/auth-model.md +1 -1
- package/.agent-src/templates/scripts/README.md +2 -2
- package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
- package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
- package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
- package/.agent-src/templates/scripts/telemetry_record.py +14 -1
- package/.claude-plugin/marketplace.json +10 -2
- package/AGENTS.md +11 -9
- package/CHANGELOG.md +123 -1
- package/README.md +28 -30
- package/config/agent-settings.template.yml +58 -1
- package/config/gitignore-block.txt +3 -0
- package/docs/architecture.md +4 -4
- package/docs/catalog.md +331 -0
- package/docs/contracts/STABILITY.md +39 -0
- package/docs/contracts/adr-command-suggestion.md +3 -3
- package/docs/contracts/adr-product-ui-track.md +2 -2
- package/docs/contracts/agent-memory-contract.md +2 -2
- package/docs/contracts/artifact-engagement-flow.md +1 -1
- package/docs/contracts/command-clusters.md +2 -2
- package/docs/contracts/command-suggestion-flow.md +3 -3
- package/docs/contracts/implement-ticket-flow.md +2 -2
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
- package/docs/contracts/load-context-schema.md +186 -0
- package/docs/contracts/rule-interactions.yml +96 -0
- package/docs/contracts/rule-priority-hierarchy.md +87 -0
- package/docs/contracts/ui-track-flow.md +1 -1
- package/docs/customization.md +14 -0
- package/docs/end-to-end-walkthroughs.md +165 -0
- package/docs/getting-started.md +26 -8
- package/docs/github-topics.md +12 -3
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
- package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
- package/docs/guidelines/php/git.md +164 -0
- package/docs/migrations/commands-1.15.0.md +1 -1
- package/docs/showcase.md +9 -4
- package/docs/skills-catalog.md +14 -8
- package/docs/ui-track-mental-model.md +2 -2
- package/llms.txt +13 -7
- package/package.json +1 -1
- package/scripts/agent-config +23 -0
- package/scripts/ai_council/__init__.py +39 -0
- package/scripts/ai_council/_default_prices.py +41 -0
- package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
- package/scripts/ai_council/_one_off_roundtrip.py +106 -0
- package/scripts/ai_council/budget_guard.py +172 -0
- package/scripts/ai_council/bundler.py +261 -0
- package/scripts/ai_council/clients.py +381 -0
- package/scripts/ai_council/modes.py +127 -0
- package/scripts/ai_council/orchestrator.py +350 -0
- package/scripts/ai_council/pricing.py +213 -0
- package/scripts/ai_council/project_context.py +159 -0
- package/scripts/ai_council/prompts.py +232 -0
- package/scripts/ai_council/session.py +144 -0
- package/scripts/check_always_budget.py +126 -0
- package/scripts/check_augmentignore.py +69 -0
- package/scripts/check_command_count_messaging.py +120 -0
- package/scripts/check_portability.py +55 -0
- package/scripts/check_public_catalog_links.py +122 -0
- package/scripts/check_references.py +4 -1
- package/scripts/check_roadmap_trackable.py +111 -0
- package/scripts/command_suggester/cooldown.py +1 -1
- package/scripts/generate_index.py +266 -0
- package/scripts/install_anthropic_key.sh +5 -0
- package/scripts/install_openai_key.sh +106 -0
- package/scripts/lint_load_context.py +163 -0
- package/scripts/schemas/command.schema.json +20 -0
- package/scripts/schemas/rule.schema.json +10 -0
- package/scripts/skill_linter.py +12 -4
- package/scripts/sync_agent_settings.py +1 -1
- package/scripts/update_counts.py +9 -4
- package/scripts/update_prices.py +124 -0
- package/.agent-src/guidelines/php/git.md +0 -96
- /package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
- /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: optimize
|
|
3
|
+
description: Optimize orchestrator — routes to skills, agents, augmentignore, rtk-filters
|
|
4
|
+
cluster: optimize
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
suggestion:
|
|
7
|
+
eligible: true
|
|
8
|
+
trigger_description: "optimize my skills, audit agents, tune augmentignore, optimize rtk filters"
|
|
9
|
+
trigger_context: "maintainer auditing or trimming agent infrastructure"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# /optimize
|
|
13
|
+
|
|
14
|
+
Top-level orchestrator for the `/optimize` family. Replaces 4 standalone
|
|
15
|
+
commands with a single entry point + sub-command dispatch.
|
|
16
|
+
|
|
17
|
+
## Sub-commands
|
|
18
|
+
|
|
19
|
+
| Sub-command | Routes to | Purpose |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `/optimize skills` | `optimize-skills.md` | Audit skills — measure baseline, find duplicates, run linter |
|
|
22
|
+
| `/optimize agents` | `optimize-agents.md` | Audit agent infrastructure — token overhead, rule triggers, AGENTS.md |
|
|
23
|
+
| `/optimize augmentignore` | `optimize-augmentignore.md` | Create or refine `.augmentignore` based on actual stack |
|
|
24
|
+
| `/optimize rtk` | `optimize-rtk-filters.md` | Create or refine project-local rtk filters |
|
|
25
|
+
|
|
26
|
+
Sub-command names match the locked contract in
|
|
27
|
+
[`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
|
|
28
|
+
|
|
29
|
+
## Dispatch
|
|
30
|
+
|
|
31
|
+
1. Parse the user's argument: `/optimize <sub-command> [args]`.
|
|
32
|
+
2. Look up the sub-command in the table above.
|
|
33
|
+
3. Load the body of the corresponding `commands/optimize-<sub>.md` file and
|
|
34
|
+
follow its `## Steps` (or `## Instructions`) section verbatim.
|
|
35
|
+
4. If the sub-command is unknown or missing, print the menu and ask:
|
|
36
|
+
|
|
37
|
+
> 1. skills — audit skills (find duplicates, run linter)
|
|
38
|
+
> 2. agents — audit agent infrastructure (token overhead, rule triggers)
|
|
39
|
+
> 3. augmentignore — create or refine `.augmentignore`
|
|
40
|
+
> 4. rtk — create or refine project-local rtk filters
|
|
41
|
+
|
|
42
|
+
## Migration
|
|
43
|
+
|
|
44
|
+
The 4 standalone `/optimize-*` commands continue to work for one release
|
|
45
|
+
cycle as deprecation shims. They emit a notice and route to the same
|
|
46
|
+
content. New invocations should use `/optimize <sub>`.
|
|
47
|
+
|
|
48
|
+
## Rules
|
|
49
|
+
|
|
50
|
+
- **Suggest only — never auto-apply.** All `/optimize` sub-commands are
|
|
51
|
+
audit-grade: they report and propose, but the user approves every change.
|
|
52
|
+
- **Do NOT chain sub-commands.** One `/optimize <sub>` per turn.
|
|
53
|
+
- If the user invokes `/optimize` with no argument, **show the menu** — do
|
|
54
|
+
not guess which sub-command they meant.
|
|
@@ -101,6 +101,6 @@ is intended (rarely).
|
|
|
101
101
|
## See also
|
|
102
102
|
|
|
103
103
|
- [`/memory-add`](memory-add.md) — curated (reviewer-validated) entries.
|
|
104
|
-
- [`engineering-memory-data-format`](
|
|
105
|
-
- [`memory-access`](
|
|
104
|
+
- [`engineering-memory-data-format`](../../docs/guidelines/agent-infra/engineering-memory-data-format.md)
|
|
105
|
+
- [`memory-access`](../../docs/guidelines/agent-infra/memory-access.md) — the
|
|
106
106
|
read-side contract that consumes what this command writes.
|
|
@@ -81,6 +81,31 @@ Pick dispatch mode based on diff size and environment:
|
|
|
81
81
|
Each judge returns its own `Judge / Model / Target / Verdict /
|
|
82
82
|
Issues` block in the format defined by that skill.
|
|
83
83
|
|
|
84
|
+
### 4b. Optional external council (B3 hook)
|
|
85
|
+
|
|
86
|
+
If `.agent-settings.yml` has `ai_council.enabled: true` **and** at least
|
|
87
|
+
one member is enabled, ask (in the user's language):
|
|
88
|
+
|
|
89
|
+
> 1. Add an external council review alongside the four internal judges? (billable)
|
|
90
|
+
> 2. Skip — internal judges only
|
|
91
|
+
|
|
92
|
+
Suppress when `personal.autonomy: on` (council is billable).
|
|
93
|
+
|
|
94
|
+
If picked **1**:
|
|
95
|
+
|
|
96
|
+
- Run `/council diff:<base>..<head>` in parallel with the four
|
|
97
|
+
internal judges (or sequentially after them — whichever the
|
|
98
|
+
dispatch mode picked in step 4 supports).
|
|
99
|
+
- Treat each council member as one extra "judge" in the consolidated
|
|
100
|
+
report (step 5), but **mark them clearly as external** so the user
|
|
101
|
+
can weight them differently. Council verdicts are **advisory** —
|
|
102
|
+
they never block on their own; they augment the internal verdicts.
|
|
103
|
+
- The council's neutrality preamble already strips host-agent
|
|
104
|
+
identity; do **not** add the internal judges' verdicts to the
|
|
105
|
+
council prompt (would defeat the Iron Law of Neutrality).
|
|
106
|
+
|
|
107
|
+
If picked **2** → continue with internal judges only.
|
|
108
|
+
|
|
84
109
|
### 5. Consolidate
|
|
85
110
|
|
|
86
111
|
Produce one combined report:
|
|
@@ -150,7 +175,7 @@ or the equivalent configured command).
|
|
|
150
175
|
- [`/do-and-judge`](do-and-judge.md) — implementer + judge loop for a single change
|
|
151
176
|
- [`/judge`](judge.md) — standalone judge, no review-changes dispatch
|
|
152
177
|
- [`code-review`](../skills/code-review/SKILL.md) — human-oriented review patterns (tone, feedback handling)
|
|
153
|
-
- [`role-contracts`](
|
|
178
|
+
- [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#reviewer) — Reviewer mode output contract (Summary / Risks / Findings / Required actions / Verdict)
|
|
154
179
|
|
|
155
180
|
## References
|
|
156
181
|
|
|
@@ -107,7 +107,7 @@ After the block, ask:
|
|
|
107
107
|
- [`reviewer-awareness`](../rules/reviewer-awareness.md) — role vocabulary
|
|
108
108
|
- [`review-routing-awareness`](../rules/review-routing-awareness.md) —
|
|
109
109
|
data-source rules
|
|
110
|
-
- [`review-routing-data-format`](
|
|
110
|
+
- [`review-routing-data-format`](../../docs/guidelines/agent-infra/review-routing-data-format.md)
|
|
111
111
|
— YAML schemas
|
|
112
112
|
- [`create-pr-description`](../skills/create-pr-description/SKILL.md) —
|
|
113
113
|
consumes the routing block
|
|
@@ -104,9 +104,36 @@ Regenerate `agents/roadmaps-progress.md` so the new roadmap shows up:
|
|
|
104
104
|
|
|
105
105
|
Mention the new overall count to the user.
|
|
106
106
|
|
|
107
|
-
### 8. Offer
|
|
107
|
+
### 8. Offer council review (B1 hook)
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
If `.agent-settings.yml` has `ai_council.enabled: true` **and** at least
|
|
110
|
+
one member is enabled (`anthropic` or `openai`), ask the user (in their
|
|
111
|
+
language):
|
|
112
|
+
|
|
113
|
+
> 1. Run the council on this roadmap before execution? (billable)
|
|
114
|
+
> 2. Skip council review
|
|
115
|
+
|
|
116
|
+
Suppress this question entirely when `personal.autonomy: on` is set —
|
|
117
|
+
council is billable, autonomous mode must not silently spend tokens
|
|
118
|
+
(see `road-to-ai-council.md` Decision 3 / Q47).
|
|
119
|
+
|
|
120
|
+
If the user picks **1**:
|
|
121
|
+
|
|
122
|
+
- Run `/council roadmap:<path>` with the user's original ask captured
|
|
123
|
+
in step 1 as `original_ask` (the handoff preamble carries it
|
|
124
|
+
verbatim, see `scripts/ai_council/prompts.py`).
|
|
125
|
+
- Append the council findings as a `## Council review (<UTC date>)`
|
|
126
|
+
section at the bottom of the roadmap. Include the trace path to
|
|
127
|
+
`agents/council-sessions/<timestamp>/raw-text.md` so future readers
|
|
128
|
+
can audit.
|
|
129
|
+
- Do **not** rewrite the roadmap based on the findings — surface them,
|
|
130
|
+
let the user decide what to act on.
|
|
131
|
+
|
|
132
|
+
If the user picks **2** → continue.
|
|
133
|
+
|
|
134
|
+
### 9. Offer execution
|
|
135
|
+
|
|
136
|
+
After saving (and any council review), ask the user (in their language) whether to start executing the roadmap immediately.
|
|
110
137
|
|
|
111
138
|
If yes → switch to the `roadmap-execute` command workflow with the newly created file.
|
|
112
139
|
|
|
@@ -25,7 +25,7 @@ the [`agent-settings` template](../templates/agent-settings.md#cost-profiles):
|
|
|
25
25
|
- For first-run setup use [`/onboard`](onboard.md).
|
|
26
26
|
- For any other single-value change, edit `.agent-settings.yml`
|
|
27
27
|
directly or ask the agent — the merge rules live in
|
|
28
|
-
[`layered-settings`](
|
|
28
|
+
[`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules).
|
|
29
29
|
- For role modes use [`/mode`](mode.md) — different concept (sets
|
|
30
30
|
`roles.active_role`, not `cost_profile`).
|
|
31
31
|
|
|
@@ -73,7 +73,7 @@ value directly — still echo the old → new line in step 6.
|
|
|
73
73
|
### 5. Write the value
|
|
74
74
|
|
|
75
75
|
Update `cost_profile` in `.agent-settings.yml` using the
|
|
76
|
-
[section-aware merge rules](
|
|
76
|
+
[section-aware merge rules](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
|
|
77
77
|
(preserve comments, preserve key order, touch only the changed field).
|
|
78
78
|
|
|
79
79
|
If the user picked "Keep current", do nothing and stop.
|
|
@@ -107,6 +107,6 @@ flip. Cost behaviour on those surfaces is governed by the platform itself.
|
|
|
107
107
|
## See also
|
|
108
108
|
|
|
109
109
|
- [`agent-settings`](../templates/agent-settings.md) — profile matrix and settings reference
|
|
110
|
-
- [`layered-settings`](
|
|
110
|
+
- [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — merge rules for settings edits
|
|
111
111
|
- [`onboard`](onboard.md) — first-run setup (includes profile confirmation)
|
|
112
112
|
- [`mode`](mode.md) — role-mode setter (different concept)
|
|
@@ -15,7 +15,7 @@ Reconciles `.agent-settings.yml` with the shipped template
|
|
|
15
15
|
(`config/agent-settings.template.yml`) and the selected cost-profile
|
|
16
16
|
preset (`config/profiles/{profile}.ini`). Applies the section-aware
|
|
17
17
|
merge rules documented in
|
|
18
|
-
[`layered-settings`](
|
|
18
|
+
[`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md):
|
|
19
19
|
|
|
20
20
|
- Template section order wins — keys reorder to match.
|
|
21
21
|
- Existing user scalar values are preserved.
|
|
@@ -129,6 +129,6 @@ is a local-agent concern.
|
|
|
129
129
|
- [`scripts/sync_agent_settings.py`](../../../scripts/sync_agent_settings.py) — the helper
|
|
130
130
|
- [`config/agent-settings.template.yml`](../../../config/agent-settings.template.yml) — canonical template
|
|
131
131
|
- [`config/profiles/`](../../../config/profiles/) — profile presets
|
|
132
|
-
- [`layered-settings`](
|
|
132
|
+
- [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — the merge rules this command enforces
|
|
133
133
|
- [`scripts/install.py`](../../../scripts/install.py) — first-install path; this command handles the update path
|
|
134
134
|
- [`/sync-gitignore`](sync-gitignore.md) — sibling command for the `.gitignore` block
|
|
@@ -74,4 +74,4 @@ suggestion:
|
|
|
74
74
|
|
|
75
75
|
## See also
|
|
76
76
|
|
|
77
|
-
- [`role-contracts`](
|
|
77
|
+
- [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#tester) — Tester mode output contract (Behaviour under test / Edge cases / Negative paths / Reproduction / Coverage gaps)
|
|
@@ -68,7 +68,7 @@ If project-specific content is found, ask:
|
|
|
68
68
|
| **Skill** | `.agent-src.uncompressed/skills/{name}/SKILL.md` | `.agent-src/skills/{name}/SKILL.md` |
|
|
69
69
|
| **Rule** | `.agent-src.uncompressed/rules/{name}.md` | `.agent-src/rules/{name}.md` |
|
|
70
70
|
| **Command** | `.agent-src.uncompressed/commands/{name}.md` | `.agent-src/commands/{name}.md` |
|
|
71
|
-
| **Guideline** |
|
|
71
|
+
| **Guideline** | `docs/guidelines/{cat}/{name}.md` | _(not compressed; reference-only)_ |
|
|
72
72
|
|
|
73
73
|
### 4. Get access to the package repo
|
|
74
74
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Commit Mechanics
|
|
2
|
+
|
|
3
|
+
Loaded by [`commit-policy`](../../rules/commit-policy.md). Holds the
|
|
4
|
+
detail behind the four commit exceptions, the Hard Floor that still
|
|
5
|
+
fires on top of any exception, and the roadmap-authorized-commit flow
|
|
6
|
+
in autonomous vs. non-autonomous mode.
|
|
7
|
+
|
|
8
|
+
**Size budget:** ≤ 3,000 chars. Tracked under Phase 6 of
|
|
9
|
+
`road-to-pr-34-followups`.
|
|
10
|
+
|
|
11
|
+
## Hard Floor still applies — bulk deletions and infra changes
|
|
12
|
+
|
|
13
|
+
Even when one of the four `commit-policy` exceptions authorizes a
|
|
14
|
+
commit, the [`non-destructive-by-default`](../../rules/non-destructive-by-default.md)
|
|
15
|
+
Hard Floor still fires when the diff:
|
|
16
|
+
|
|
17
|
+
- Removes a directory
|
|
18
|
+
- Deletes ≥5 unrelated files
|
|
19
|
+
- Touches Terraform / Pulumi / k8s manifests / Ansible / cloud-config
|
|
20
|
+
|
|
21
|
+
In those cases, **surface the diff** (paths + counts) and confirm
|
|
22
|
+
this turn before committing — even under `/commit-in-chunks`,
|
|
23
|
+
roadmap pre-scan authorization, or an explicit "commit this now". The
|
|
24
|
+
four exceptions cover *whether* commits happen; the Hard Floor covers
|
|
25
|
+
*which diffs* still need a separate confirmation.
|
|
26
|
+
|
|
27
|
+
## Roadmap-authorized commits
|
|
28
|
+
|
|
29
|
+
When **executing** a roadmap that contains commit steps:
|
|
30
|
+
|
|
31
|
+
- **Non-autonomous mode** (`personal.autonomy: off`, or `auto`
|
|
32
|
+
before opt-in) — agent may ask before each commit step. The user
|
|
33
|
+
authorized commits by writing them into the roadmap, but retains
|
|
34
|
+
step-level control.
|
|
35
|
+
- **Autonomous mode** (`personal.autonomy: on`, or `auto` after
|
|
36
|
+
opt-in) — agent does a quick pre-scan of the roadmap **before
|
|
37
|
+
starting execution**. If commit steps are found, ask **once** at
|
|
38
|
+
the very start: "Roadmap contains N commit steps — should they be
|
|
39
|
+
executed?". After that, honor or skip per the answer.
|
|
40
|
+
No re-asking per step.
|
|
41
|
+
|
|
42
|
+
The pre-scan ask is the **only** permitted commit-related question
|
|
43
|
+
in autonomous mode. Once answered, the decision is cached for the
|
|
44
|
+
rest of the roadmap execution.
|
|
45
|
+
|
|
46
|
+
## Speech-act check on commit phrases
|
|
47
|
+
|
|
48
|
+
The same speech-act check from
|
|
49
|
+
[`autonomous-execution`](../../rules/autonomous-execution.md#speech-act-check--the-phrase-must-be-a-meta-instruction-to-the-agent)
|
|
50
|
+
applies in reverse: an explicit commit phrase inside a quote, code
|
|
51
|
+
block, or content (e.g. a copy-paste of a chat log) is **not** a
|
|
52
|
+
permission grant.
|
|
53
|
+
|
|
54
|
+
A "commit this now" phrase has to be a **meta-instruction directed
|
|
55
|
+
at the agent** in the current turn. Quoted text, log excerpts,
|
|
56
|
+
roadmap snippets, and content the user is asking the agent to *read*
|
|
57
|
+
or *summarize* never authorize a commit.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Destructive-Operation Mechanics
|
|
2
|
+
|
|
3
|
+
Loaded by [`non-destructive-by-default`](../../rules/non-destructive-by-default.md).
|
|
4
|
+
Holds the bulk-deletion-during-WIP scope rule and the failure-mode
|
|
5
|
+
catalog. The rule keeps the Iron Law, the trigger table, the
|
|
6
|
+
deterministic-regeneration carve-out, and the cloud clause; this
|
|
7
|
+
context holds everything an agent reaches for once those have fired.
|
|
8
|
+
|
|
9
|
+
**Size budget:** ≤ 3,500 chars. Tracked under Phase 7.4 of
|
|
10
|
+
`road-to-pr-34-followups`.
|
|
11
|
+
|
|
12
|
+
## Bulk deletions during WIP — allowed if task-connected
|
|
13
|
+
|
|
14
|
+
Deletions inside an **active, user-stated task** are allowed in the
|
|
15
|
+
working tree, **even multiple files or multiple folders**. The Hard
|
|
16
|
+
Floor moves to the **commit** (row 6 of the trigger table), not the
|
|
17
|
+
in-progress edit.
|
|
18
|
+
|
|
19
|
+
**Allowed during WIP (no floor on the edit):**
|
|
20
|
+
|
|
21
|
+
- A roadmap step or current task explicitly names the files / folders to remove
|
|
22
|
+
- Refactor naturally drops deprecated code the user already agreed is dead
|
|
23
|
+
- Cleanup of generated artifacts — `node_modules/`, `dist/`, `.next/`,
|
|
24
|
+
build caches, `vendor/` reinstall — never source code
|
|
25
|
+
- Single-file edits, single-class refactors, deleting **one** file the
|
|
26
|
+
user just named
|
|
27
|
+
- Renames and moves (technically delete + add)
|
|
28
|
+
|
|
29
|
+
**Floor fires on the edit when the deletion is:**
|
|
30
|
+
|
|
31
|
+
- Whimsical — "while I was in there", drive-by cleanup not part of the task
|
|
32
|
+
- Unnamed scope — "delete all the old tests" without a list, glob
|
|
33
|
+
across unrelated files, "clean up the legacy folder" with no inventory
|
|
34
|
+
- ≥5 unrelated files in one operation, outside the current task scope
|
|
35
|
+
- Content destruction — `DROP TABLE`, `TRUNCATE`, `git reset --hard`
|
|
36
|
+
past unpushed work, database wipes (destroys *content*, not just tree)
|
|
37
|
+
|
|
38
|
+
Ambiguous → floor wins. Ask.
|
|
39
|
+
|
|
40
|
+
**The commit of task-aligned bulk deletions still needs its own ask.**
|
|
41
|
+
A roadmap or task authorizes the *edit*; only the user-this-turn
|
|
42
|
+
authorizes the *commit* (row 6 of the rule's trigger table). Surface
|
|
43
|
+
the diff (paths + counts), get confirmation, then commit.
|
|
44
|
+
|
|
45
|
+
## Failure modes
|
|
46
|
+
|
|
47
|
+
- Treating a standing autonomy directive as cover for a Hard-Floor
|
|
48
|
+
action. Standing autonomy never lifts the floor; merging to `main`,
|
|
49
|
+
deploying, pushing, prod-data edits, or whimsical `rm -rf <dir>`
|
|
50
|
+
always ask.
|
|
51
|
+
- Reading a roadmap step that says "deploy to staging" or
|
|
52
|
+
"merge into main" as authorization. The roadmap can sequence the
|
|
53
|
+
work; only the user-this-turn can authorize the floor crossing.
|
|
54
|
+
- Refusing to delete files the user already named because "the floor
|
|
55
|
+
fires on `rm`". It does not — task-aligned WIP deletions are
|
|
56
|
+
allowed, even multi-folder. The floor fires when the deletion is
|
|
57
|
+
whimsical, unscoped, or about to be committed.
|
|
58
|
+
- Committing a diff that removes a directory, deletes ≥5 unrelated
|
|
59
|
+
files, or touches Terraform / k8s manifests / Ansible without
|
|
60
|
+
surfacing the diff first — even when [`commit-policy`](../../rules/commit-policy.md)
|
|
61
|
+
otherwise authorizes commits (e.g. `/commit-in-chunks`, roadmap
|
|
62
|
+
pre-scan, an explicit "commit this now"). Bulk-deletion / infra
|
|
63
|
+
commits need their own ask, every time.
|
|
64
|
+
- Reading a roadmap step listing files to delete as authorization to
|
|
65
|
+
*commit* the deletion. The step authorizes the *edit*; the commit
|
|
66
|
+
is row 6 of the Hard Floor and needs its own confirmation.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Scope Mechanics
|
|
2
|
+
|
|
3
|
+
Loaded by [`scope-control`](../../rules/scope-control.md). Holds the
|
|
4
|
+
detail behind the Hard Floor restatement, the brief-before-asking
|
|
5
|
+
flow for separate-branch proposals, and the failure modes / bypass
|
|
6
|
+
rules around fenced steps.
|
|
7
|
+
|
|
8
|
+
**Size budget:** ≤ 4,000 chars. Tracked under Phase 6 of
|
|
9
|
+
`road-to-pr-34-followups`.
|
|
10
|
+
|
|
11
|
+
## Production, infrastructure, bulk-destructive — Hard Floor
|
|
12
|
+
|
|
13
|
+
A subset of the git-ops Iron Laws is **never** autonomous and never
|
|
14
|
+
auto-permitted by a standing autonomy directive. Canonical rule:
|
|
15
|
+
[`non-destructive-by-default`](../../rules/non-destructive-by-default.md).
|
|
16
|
+
Restated here so `scope-control` remains the single read for git/scope
|
|
17
|
+
concerns:
|
|
18
|
+
|
|
19
|
+
- **Production-branch merges** — `main`, `master`, `prod`,
|
|
20
|
+
`production`, `release/*`, or any branch the project marks as
|
|
21
|
+
deployment trunk. Always ask, even when the roadmap step says
|
|
22
|
+
"merge".
|
|
23
|
+
- **Deploys / releases** — `terraform apply` / `kubectl apply` on
|
|
24
|
+
prod, deploy scripts, release commands, tag pushes that trigger
|
|
25
|
+
CI deployment. Always ask.
|
|
26
|
+
- **Production data / infrastructure** — prod DB writes or
|
|
27
|
+
migrations, prod config edits, secrets rotation, IAM / role /
|
|
28
|
+
policy changes, DNS edits, anything in a `prod`-scoped path or
|
|
29
|
+
pipeline. Always ask.
|
|
30
|
+
- **Bulk-destructive ops** — wildcard or directory deletion
|
|
31
|
+
(`rm -rf <dir>`, `git rm -r`), `DROP TABLE`, `TRUNCATE`,
|
|
32
|
+
`git reset --hard` past unpushed work, mass class / module /
|
|
33
|
+
migration deletion, "delete everything matching X". Always ask.
|
|
34
|
+
|
|
35
|
+
A roadmap step or earlier turn does **not** count as authorization
|
|
36
|
+
for these. Authorization is "the user said so on this turn".
|
|
37
|
+
|
|
38
|
+
## Brief-before-asking — separate branch / PR / worktree
|
|
39
|
+
|
|
40
|
+
If a task seems to need a separate branch or PR (spike, hotfix,
|
|
41
|
+
experiment, worktree), STOP and **brief the user before asking**. The
|
|
42
|
+
brief MUST cover, in this order:
|
|
43
|
+
|
|
44
|
+
1. **Why** — what problem a separate branch solves that the current
|
|
45
|
+
branch cannot; why staying on the current branch would be worse.
|
|
46
|
+
2. **What** — exactly what you plan to do on the new branch: files
|
|
47
|
+
touched, prototypes built, experiments run, expected duration.
|
|
48
|
+
3. **How it continues** — the return path: merge back, cherry-pick,
|
|
49
|
+
throwaway delete, PR target, how the current branch's state is
|
|
50
|
+
protected while you work on the other one.
|
|
51
|
+
|
|
52
|
+
Then present numbered options (`user-interaction`) with "stay on the
|
|
53
|
+
current branch" as the default. The user decides. Do not branch
|
|
54
|
+
first and explain later.
|
|
55
|
+
|
|
56
|
+
## Decline = silence — context
|
|
57
|
+
|
|
58
|
+
The right moment to ask is **before** the work starts (writing the
|
|
59
|
+
roadmap, opening the ticket), not mid-execution. During roadmap
|
|
60
|
+
execution the branch question is settled; do not resurface it step
|
|
61
|
+
by step.
|
|
62
|
+
|
|
63
|
+
A proposal that "might be sensible" is not enough reason to ask.
|
|
64
|
+
Default: stay on the current branch, no release language. Only ask
|
|
65
|
+
when there's a concrete, evidence-based reason (e.g. risky migration
|
|
66
|
+
benefits from a spike branch). If in doubt, do not ask.
|
|
67
|
+
|
|
68
|
+
## Fenced step — failure modes
|
|
69
|
+
|
|
70
|
+
- Numbered-options block whose Option 1 is *"start with Phase 1 / E1.1
|
|
71
|
+
/ step X"*. The fence makes execution off-limits; offering it as the
|
|
72
|
+
default choice violates the fence.
|
|
73
|
+
- Re-asking *"may I begin now?"* after delivering the plan. The user
|
|
74
|
+
said no execution; that decision is binding for the rest of the
|
|
75
|
+
task.
|
|
76
|
+
- Treating delivery as a hand-off **to execution** (*"roadmap is
|
|
77
|
+
ready, kicking off E1.1"*) instead of a hand-off **to review**
|
|
78
|
+
(*"roadmap is ready, over to you"*).
|
|
79
|
+
- Inferring *"plan accepted"* from a thumbs-up or short
|
|
80
|
+
acknowledgement. Acceptance of the plan is not authorization to
|
|
81
|
+
start; the user gives the green light explicitly when ready.
|
|
82
|
+
|
|
83
|
+
## Fenced step — bypass
|
|
84
|
+
|
|
85
|
+
A clear *"go ahead"*, *"start now"*, *"mach weiter"*, or an explicit
|
|
86
|
+
*"approved, implement E1.1"* on a later turn lifts the fence. Until
|
|
87
|
+
then: silence on execution.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Autonomy Detection — Logic
|
|
2
|
+
|
|
3
|
+
Loaded by the [`autonomous-execution`](../../rules/autonomous-execution.md)
|
|
4
|
+
rule when deciding whether a user message in `auto` mode flips standing
|
|
5
|
+
autonomy on (or off). Anchor phrases and worked cases live in
|
|
6
|
+
[`autonomy-examples.md`](autonomy-examples.md).
|
|
7
|
+
|
|
8
|
+
## Recognize intent, not literal substring
|
|
9
|
+
|
|
10
|
+
In `auto` mode, the rule flips to `on` for the rest of the conversation
|
|
11
|
+
when the user expresses **"stop asking on trivial steps, just work"**.
|
|
12
|
+
The LLM recognizes the **intent**, not a literal substring, and
|
|
13
|
+
understands the semantic equivalent in either language.
|
|
14
|
+
|
|
15
|
+
## Litmus test — standing permission vs single-decision delegation
|
|
16
|
+
|
|
17
|
+
| Question | Outcome |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Would a reasonable reader interpret the message as **standing permission to skip trivial workflow questions**? | Yes → flip. |
|
|
20
|
+
| Is it a **single-decision delegation** ("you decide for this step", "for this one let me know what you'd pick")? | Handle that step autonomously, do **not** flip standing mode. |
|
|
21
|
+
|
|
22
|
+
The flip is sticky for the rest of the conversation; single-decision
|
|
23
|
+
delegation is one-shot.
|
|
24
|
+
|
|
25
|
+
## Speech-act check — meta-instruction or content?
|
|
26
|
+
|
|
27
|
+
Before flipping, verify the phrase is **addressed to the agent as
|
|
28
|
+
guidance about how to work**, not a literal substring inside an
|
|
29
|
+
unrelated instruction. The same words can be content, data, quote,
|
|
30
|
+
copy, code, or subject matter — none of those flip.
|
|
31
|
+
|
|
32
|
+
Do **not** flip when the phrase is:
|
|
33
|
+
|
|
34
|
+
- **Content / copy** — "Put the slogan 'just do it' on the landing page."
|
|
35
|
+
- **Quote / reference** — "Nike's tagline is 'just do it' — write a blog post about it."
|
|
36
|
+
- **Subject of a request** — "Write docs about the 'work autonomously' modes."
|
|
37
|
+
- **Code / data** — string literals, test fixtures, translations, JSON.
|
|
38
|
+
- **About a third party** — "My colleague works autonomously."
|
|
39
|
+
- **A question or hypothetical** — "Should I set `don't ask` as the default?"
|
|
40
|
+
|
|
41
|
+
## Heuristic — strip and read
|
|
42
|
+
|
|
43
|
+
Strip quotes, code blocks, and embedded content. Read what's **left**.
|
|
44
|
+
If the remainder is still a directive to the agent about its own
|
|
45
|
+
working style → flip. Otherwise → don't.
|
|
46
|
+
|
|
47
|
+
## Opt-out is symmetric
|
|
48
|
+
|
|
49
|
+
The reverse intent ("ask me again", "stop being autonomous") flips
|
|
50
|
+
back to `off`. The same litmus test and speech-act check apply —
|
|
51
|
+
"ask me first" inside a quote, code, or third-party reference does
|
|
52
|
+
not flip.
|
|
53
|
+
|
|
54
|
+
In doubt → keep current mode. No speculative flips.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Autonomy Examples — Anchors, Trivial Cases, Failure Modes
|
|
2
|
+
|
|
3
|
+
Loaded by the [`autonomous-execution`](../../rules/autonomous-execution.md)
|
|
4
|
+
rule when concrete examples sharpen a decision. The detection algorithm
|
|
5
|
+
lives in [`autonomy-detection.md`](autonomy-detection.md); the setting
|
|
6
|
+
semantics live in [`autonomy-mechanics.md`](autonomy-mechanics.md).
|
|
7
|
+
|
|
8
|
+
## Opt-in anchors — flip `auto` → `on`
|
|
9
|
+
|
|
10
|
+
Multilingual phrases that, when spoken **as a meta-instruction to the
|
|
11
|
+
agent** (per the speech-act check in [`autonomy-detection.md`](autonomy-detection.md)),
|
|
12
|
+
flip standing autonomy on:
|
|
13
|
+
|
|
14
|
+
- DE: "arbeite selbstständig" · "frag nicht jedes Mal" · "tue es einfach"
|
|
15
|
+
- EN: "work autonomously" · "don't ask" · "just do it"
|
|
16
|
+
|
|
17
|
+
Illustrative, not exhaustive — recognition is intent-based, not
|
|
18
|
+
substring-based.
|
|
19
|
+
|
|
20
|
+
## Opt-out anchors — flip back to `off`
|
|
21
|
+
|
|
22
|
+
Reverse-trigger phrases (same speech-act check applies):
|
|
23
|
+
|
|
24
|
+
- DE: "frag mich wieder" · "frag mich erst" · "stop autonomous mode"
|
|
25
|
+
- EN: "ask me first" · "ask me again" · "stop being autonomous"
|
|
26
|
+
|
|
27
|
+
## Speech-act check — patterns that DO NOT flip
|
|
28
|
+
|
|
29
|
+
The same words can appear in many forms. None of these flip standing
|
|
30
|
+
autonomy:
|
|
31
|
+
|
|
32
|
+
- **Content / copy** — "Put the slogan 'just do it' on the landing page."
|
|
33
|
+
- **Quote / reference** — "Nike's tagline is 'just do it' — write a blog post about it."
|
|
34
|
+
- **Subject of a request** — "Write docs about the 'work autonomously' modes."
|
|
35
|
+
- **Code / data** — string literals, test fixtures, translations, JSON.
|
|
36
|
+
- **About a third party** — "My colleague works autonomously."
|
|
37
|
+
- **A question or hypothetical** — "Should I set `don't ask` as the default?"
|
|
38
|
+
|
|
39
|
+
Counter-examples — meta-questions, self-descriptions, or one-shot
|
|
40
|
+
delegations also do **not** flip:
|
|
41
|
+
|
|
42
|
+
- "Why don't you ask that yourself?"
|
|
43
|
+
- "I'm working autonomously right now."
|
|
44
|
+
- "Can you decide that yourself?"
|
|
45
|
+
|
|
46
|
+
## Trivial — JUST ACT (in `on` or `auto`-after-opt-in)
|
|
47
|
+
|
|
48
|
+
Eight worked cases. In `personal.autonomy: off`, ask these. In `on`
|
|
49
|
+
or `auto`-after-opt-in, act on them.
|
|
50
|
+
|
|
51
|
+
- "Should I start with Step 2 or Step 3?" — pick the obvious next step
|
|
52
|
+
on the roadmap and proceed; if blocked, name the blocker, otherwise go.
|
|
53
|
+
- "Should we commit now or after the next change?" — answered by the
|
|
54
|
+
commit-default in [`commit-policy`](../../rules/commit-policy.md), no need to ask.
|
|
55
|
+
- "How should I split the commits?" — never asked; either you are
|
|
56
|
+
invoked via `/commit-in-chunks` (split and commit) or you are not
|
|
57
|
+
(don't commit at all).
|
|
58
|
+
- "Should I run the linter / tests now or after the change?" — run
|
|
59
|
+
what [`verify-before-complete`](../../rules/verify-before-complete.md)
|
|
60
|
+
requires; don't ask.
|
|
61
|
+
- "I found 3 follow-up issues — fix all or stop?" — if they are within
|
|
62
|
+
the stated task scope and minimal-safe-diff allows, fix them; if they
|
|
63
|
+
expand scope, stop and surface them as a list.
|
|
64
|
+
- "Filename should be `X.md` or `Y.md`?" when one matches the
|
|
65
|
+
surrounding convention — pick the convention-matching one.
|
|
66
|
+
- "Do you want a verification table or paragraph?" — pick whichever
|
|
67
|
+
fits the conversation style; format is not a decision worth a turn.
|
|
68
|
+
- "Show me a diff before regenerating output from a tracked source?"
|
|
69
|
+
— compression, code-gen, formatter passes, lock-file rebuilds — run
|
|
70
|
+
it and report the result. Reversibility comes from the source, not
|
|
71
|
+
from per-file confirmation. See [`non-destructive-by-default`](../../rules/non-destructive-by-default.md#not-in-scope--deterministic-regeneration)
|
|
72
|
+
§ Not in scope.
|
|
73
|
+
|
|
74
|
+
## Failure modes — autonomy side
|
|
75
|
+
|
|
76
|
+
Wrong-behavior patterns this rule prevents:
|
|
77
|
+
|
|
78
|
+
- Asking "Step 2 or Step 3?" when the roadmap orders them.
|
|
79
|
+
- "Should I run the CI checks?" — `verify-before-complete` decides; act.
|
|
80
|
+
- "Do we want to commit this?" — no, by default. Don't ask.
|
|
81
|
+
- Numbered-options block whose only choice differences are sequencing
|
|
82
|
+
("do A then B" vs "do B then A") with no real trade-off.
|
|
83
|
+
- Asking after the user already issued a standing autonomy directive
|
|
84
|
+
earlier in the conversation (cache the opt-in for `auto`).
|
|
85
|
+
|
|
86
|
+
For Hard-Floor failure modes (treating autonomy as cover for a
|
|
87
|
+
floor-crossing action, reading a roadmap step as deploy authorization,
|
|
88
|
+
refusing task-aligned WIP deletions, committing bulk-deletion / infra
|
|
89
|
+
diffs without surfacing them) see
|
|
90
|
+
[`non-destructive-by-default`](../../rules/non-destructive-by-default.md#failure-modes).
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Autonomy Mechanics — Settings and Platform Behavior
|
|
2
|
+
|
|
3
|
+
Loaded by the [`autonomous-execution`](../../rules/autonomous-execution.md)
|
|
4
|
+
rule when settings semantics or platform-specific defaults are
|
|
5
|
+
relevant. Detection logic lives in [`autonomy-detection.md`](autonomy-detection.md).
|
|
6
|
+
|
|
7
|
+
## `personal.autonomy` setting
|
|
8
|
+
|
|
9
|
+
| Value | Behavior |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `on` | Suppress trivial questions. Act on the obvious next step. Still ask on blocking / critical decisions, and ALWAYS ask on Hard-Floor triggers. |
|
|
12
|
+
| `off` | Ask trivial questions too. Use this if you want the agent to check in on each workflow step. |
|
|
13
|
+
| `auto` (default) | Same as `off` by default. Flips to `on` for the rest of the conversation as soon as the user expresses the intent "stop asking, just work". See [detection logic](autonomy-detection.md) — match by **intent**, not exact string. The flip never lifts the Hard Floor. |
|
|
14
|
+
|
|
15
|
+
The value is read once on the first turn (per
|
|
16
|
+
[`layered-settings`](../../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules))
|
|
17
|
+
and cached. Missing key → treat as `on`.
|
|
18
|
+
|
|
19
|
+
## Cloud platforms — settings degrade to `on`
|
|
20
|
+
|
|
21
|
+
Setting reads degrade gracefully on cloud platforms (no
|
|
22
|
+
`.agent-settings.yml` available). Treat as `personal.autonomy: on` —
|
|
23
|
+
the user had to deliberately ship a custom skill bundle to a cloud
|
|
24
|
+
agent and is unlikely to want trivial-question friction.
|
|
25
|
+
|
|
26
|
+
The Hard Floor still applies on every surface, including cloud. There
|
|
27
|
+
is no "cloud override" for production-branch merges, deploys, pushes,
|
|
28
|
+
prod data/infra, or whimsical bulk deletions — see
|
|
29
|
+
[`non-destructive-by-default`](../../rules/non-destructive-by-default.md#cloud-behavior).
|