@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,80 @@
|
|
|
1
|
+
# Verification Mechanics
|
|
2
|
+
|
|
3
|
+
Loaded by [`verify-before-complete`](../../rules/verify-before-complete.md).
|
|
4
|
+
Holds the decision logic and lookup tables behind the Iron Law: when
|
|
5
|
+
to run which verification command, the per-task-type evidence table,
|
|
6
|
+
confidence gating, and the break-glass reduction during live
|
|
7
|
+
incidents.
|
|
8
|
+
|
|
9
|
+
**Size budget:** ≤ 4,000 chars. Tracked under Phase 6 of
|
|
10
|
+
`road-to-pr-34-followups`.
|
|
11
|
+
|
|
12
|
+
## When to run what — timing matters
|
|
13
|
+
|
|
14
|
+
**Quality tools (PHPStan, Rector, ECS) run ONCE at the very end** — not after every edit.
|
|
15
|
+
Do NOT run quality checks between tasks if you have more work to do.
|
|
16
|
+
Only run the full quality pipeline when you are about to finish all work in the current conversation.
|
|
17
|
+
|
|
18
|
+
**Tests: as targeted as possible, as little as necessary.**
|
|
19
|
+
|
|
20
|
+
- During work: run ONLY the specific test class or test case affected by the change.
|
|
21
|
+
Use `--filter=ClassName` or `--filter=test_name` — NEVER the full suite mid-work.
|
|
22
|
+
- Only run tests when you genuinely need to verify behavior (not "just to be safe").
|
|
23
|
+
- Full test suite: ONCE at the very end, before quality tools.
|
|
24
|
+
|
|
25
|
+
**The sequence at the end:**
|
|
26
|
+
|
|
27
|
+
1. All code changes are done
|
|
28
|
+
2. Run tests — targeted first (`--filter`), full suite only if targeted passes
|
|
29
|
+
3. Run quality pipeline (PHPStan → Rector → ECS → PHPStan)
|
|
30
|
+
4. Fix any issues from step 2-3
|
|
31
|
+
5. ONLY THEN claim completion or suggest commit/push/PR
|
|
32
|
+
|
|
33
|
+
## Minimum verification per task type
|
|
34
|
+
|
|
35
|
+
| Task | Required evidence |
|
|
36
|
+
|---|---|
|
|
37
|
+
| Code change | Tests + PHPStan |
|
|
38
|
+
| New feature | Tests + PHPStan + smoke test |
|
|
39
|
+
| Bug fix | Regression test + full suite |
|
|
40
|
+
| Refactoring | Full suite + PHPStan + Rector |
|
|
41
|
+
| Config/migration | Relevant tests or command output |
|
|
42
|
+
| API endpoint | curl/HTTP response output |
|
|
43
|
+
| Documentation only | No verification needed |
|
|
44
|
+
|
|
45
|
+
**Never accept** as proof: "should work", "looks correct", "logic is sound".
|
|
46
|
+
No captured output = not verified.
|
|
47
|
+
|
|
48
|
+
## Confidence gating
|
|
49
|
+
|
|
50
|
+
State confidence explicitly before claiming completion on non-trivial work.
|
|
51
|
+
|
|
52
|
+
- **High** — runtime path read end-to-end, relevant tests inspected or run,
|
|
53
|
+
no hidden side-effects (queues/events/observers) unaccounted for.
|
|
54
|
+
- **Medium** — main path verified but one gap remains; list the gap in the
|
|
55
|
+
completion message.
|
|
56
|
+
- **Low** — broad implementation NOT allowed; switch to analysis, narrow
|
|
57
|
+
the scope, or ask the user before proceeding.
|
|
58
|
+
|
|
59
|
+
For high-risk areas (auth, tenancy, migrations, queues, dependencies,
|
|
60
|
+
external APIs, data exposure), "high" requires tests AND a cross-layer
|
|
61
|
+
read — not inference from a single file.
|
|
62
|
+
|
|
63
|
+
## Break-glass reduction
|
|
64
|
+
|
|
65
|
+
During a live production incident the verification gate is **narrowed**,
|
|
66
|
+
never skipped. Break-glass requires explicit user invocation (e.g.
|
|
67
|
+
`break-glass: true`, "this is a hotfix"). Never enter it unilaterally.
|
|
68
|
+
|
|
69
|
+
Minimum evidence:
|
|
70
|
+
|
|
71
|
+
- **Targeted test(s)** covering the exact regression — zero tests is not
|
|
72
|
+
acceptable.
|
|
73
|
+
- **Smoke check** of the fixed path (curl, manual trigger, log tail) with
|
|
74
|
+
output captured in the message.
|
|
75
|
+
- **Explicit list of skipped validations** and a **follow-up commitment**
|
|
76
|
+
(ticket or PR line) to run them within 24h.
|
|
77
|
+
|
|
78
|
+
Completion wording: _"hotfix applied, full verification deferred per
|
|
79
|
+
break-glass"_ — never _"done"_ or _"verified"_. The normal gate resumes
|
|
80
|
+
on the follow-up PR.
|
|
@@ -99,5 +99,5 @@ cast (usually Core-6 for review skills, empty for others).
|
|
|
99
99
|
|
|
100
100
|
## Related
|
|
101
101
|
|
|
102
|
-
- [
|
|
102
|
+
- [`../../docs/guidelines/agent-infra/role-contracts.md`](../../docs/guidelines/agent-infra/role-contracts.md) — workflow modes personas compose with
|
|
103
103
|
- [`../rules/artifact-drafting-protocol.md`](../rules/artifact-drafting-protocol.md) — mandatory per new persona
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "always"
|
|
3
|
+
description: "Priority Index for the four authority rules — Hard Floor → Permission Gate → Commit Default → Trivial-vs-Blocking; read first, route to canonical rule"
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
source: package
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Agent Authority — Priority Index
|
|
9
|
+
|
|
10
|
+
Four rules answer **"may the agent do this autonomously?"** Check bands in order; higher band wins.
|
|
11
|
+
|
|
12
|
+
| Band | Trigger | Canonical rule |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| **1. Hard Floor** | Prod-trunk merge · deploy · push · prod data/infra · whimsical bulk deletion · bulk-deletion or infra commit | [`non-destructive-by-default`](non-destructive-by-default.md) |
|
|
15
|
+
| **2. Permission Gate** | Git op · branch / PR / tag · architectural or library change · scope expansion | [`scope-control`](scope-control.md) |
|
|
16
|
+
| **3. Commit Default** | About to commit — never, unless one of four exceptions fires | [`commit-policy`](commit-policy.md) |
|
|
17
|
+
| **4. Trivial-vs-Blocking** | Routine workflow question — act or ask | [`autonomous-execution`](autonomous-execution.md) |
|
|
18
|
+
|
|
19
|
+
## Index rules
|
|
20
|
+
|
|
21
|
+
- **Hard Floor wins, always.** No autonomy setting, roadmap step, or standing instruction lifts it.
|
|
22
|
+
- **Higher band wins on conflict.** Commit exception ≠ Hard Floor override; scope permission ≠ commit override.
|
|
23
|
+
- **Index never restates an Iron Law.** Iron Laws live verbatim in canonical files; this router only points.
|
|
24
|
+
- **Unsure → ask.** [`ask-when-uncertain`](ask-when-uncertain.md) is the universal escape hatch.
|
|
@@ -10,7 +10,7 @@ source: package
|
|
|
10
10
|
## General Principles
|
|
11
11
|
|
|
12
12
|
- **Controllers are thin** — no business logic, delegate to services.
|
|
13
|
-
- **Only Single Action Controllers** — every new controller MUST use `__invoke()`. No multi-action / resource controllers. See
|
|
13
|
+
- **Only Single Action Controllers** — every new controller MUST use `__invoke()`. No multi-action / resource controllers. See `../../docs/guidelines/php/controllers.md` for naming conventions.
|
|
14
14
|
- **Every controller needs a FormRequest** — never validate inline with `$request->validate()`. Use a dedicated `FormRequest` subclass.
|
|
15
15
|
- **Services contain business logic** — calculations, orchestration, validation.
|
|
16
16
|
- **Models have no business logic** — only relationships, scopes, accessors/mutators.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
alwaysApply: false
|
|
4
|
-
description: "
|
|
4
|
+
description: "Creating a new skill, rule, command, or guideline, or significantly rewriting one — runs a mandatory Understand → Research → Draft sequence before any artifact content is written."
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
alwaysApply: false
|
|
4
|
-
description: "After
|
|
4
|
+
description: "After a /implement-ticket or /work phase-step (refine/memory/analyze/plan/implement/test/verify/report) or full task — emit one telemetry:record call with consulted+applied ids when enabled"
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -94,7 +94,7 @@ are related".
|
|
|
94
94
|
- **Session handoff** (`/agent-handoff`, fresh-chat proposal): ask LAST,
|
|
95
95
|
after all domain / clarifying questions — so the user's answers can be
|
|
96
96
|
folded into the handoff prompt. Full rationale in
|
|
97
|
-
[`agent-interaction-and-decision-quality`](
|
|
97
|
+
[`agent-interaction-and-decision-quality`](../../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md#handoff--model-switch-questions).
|
|
98
98
|
- **Model switch**: different phase — [`model-recommendation`](model-recommendation.md)
|
|
99
99
|
triggers at task start with its own STOP-AND-WAIT gate, standalone, not
|
|
100
100
|
appended to a Q&A block. Do not conflate the two.
|
|
@@ -1,158 +1,122 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
description: "
|
|
4
|
-
alwaysApply:
|
|
2
|
+
type: "auto"
|
|
3
|
+
description: "Deciding whether to ask the user or just act on a workflow step — trivial-vs-blocking classification, autonomy opt-in detection, commit default; defers to non-destructive-by-default for the Hard Floor"
|
|
4
|
+
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
|
+
load_context:
|
|
7
|
+
- .agent-src.uncompressed/contexts/execution/autonomy-detection.md
|
|
8
|
+
- .agent-src.uncompressed/contexts/execution/autonomy-mechanics.md
|
|
9
|
+
- .agent-src.uncompressed/contexts/execution/autonomy-examples.md
|
|
6
10
|
---
|
|
7
11
|
|
|
8
12
|
# Autonomous Execution
|
|
9
13
|
|
|
10
14
|
User's time is the scarce resource. Trivial workflow questions are
|
|
11
|
-
noise.
|
|
12
|
-
**hard floor** (always ask, no override), and the **commit
|
|
13
|
-
(never commit, never ask — review-first by design).
|
|
15
|
+
noise. This rule defines **trivial** (just act), **blocking** (still
|
|
16
|
+
ask), the **hard floor** (always ask, no override), and the **commit
|
|
17
|
+
default** (never commit, never ask — review-first by design).
|
|
14
18
|
|
|
15
19
|
## Hard Floor — see [`non-destructive-by-default`](non-destructive-by-default.md)
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
The universal safety floor (production-branch merges, deploys, pushes,
|
|
18
22
|
prod data/infra, whimsical bulk deletions, and commits containing
|
|
19
23
|
bulk deletions or infra changes) is governed by the canonical
|
|
20
24
|
[`non-destructive-by-default`](non-destructive-by-default.md) rule.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
trigger from that rule fires, stop and ask — every section below
|
|
26
|
-
assumes the floor has cleared.
|
|
25
|
+
It applies regardless of `personal.autonomy`, a standing autonomy
|
|
26
|
+
directive, or any roadmap authorization. Nothing in **this** rule
|
|
27
|
+
lifts it. If a trigger fires, stop and ask — every other section
|
|
28
|
+
below assumes the floor has already been cleared.
|
|
27
29
|
|
|
28
30
|
## Setting — `personal.autonomy`
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
and cache. Missing key → treat as `on`.
|
|
32
|
+
Three values: `on` (suppress trivial questions), `off` (ask trivial
|
|
33
|
+
questions too), `auto` (default — same as `off` until the user opts
|
|
34
|
+
in via a standing autonomy directive). Read once on the first turn
|
|
35
|
+
(per [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules))
|
|
36
|
+
and cache. Missing key → treat as `on`. Full table, semantics, and
|
|
37
|
+
cloud behavior:
|
|
38
|
+
[`contexts/execution/autonomy-mechanics.md`](../contexts/execution/autonomy-mechanics.md).
|
|
38
39
|
|
|
39
40
|
## Opt-in detection — match by intent, not exact string
|
|
40
41
|
|
|
41
|
-
In `auto
|
|
42
|
-
**"stop asking on trivial steps, just work"**.
|
|
43
|
-
not the literal substring
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
- EN: "work autonomously" · "don't ask" · "just do it"
|
|
49
|
-
|
|
50
|
-
Litmus test: standing permission to skip trivial questions? → flip.
|
|
51
|
-
Single-decision delegation ("you decide for this step") → handle that
|
|
52
|
-
step, do **not** flip standing mode.
|
|
53
|
-
|
|
54
|
-
### Speech-act check — meta-instruction, not content
|
|
55
|
-
|
|
56
|
-
Before flipping, verify the phrase is **addressed to the agent as
|
|
57
|
-
guidance about how to work**, not a literal substring inside another
|
|
58
|
-
instruction. Do **not** flip when the phrase is:
|
|
59
|
-
|
|
60
|
-
- **Content / copy** — "Put the slogan 'just do it' on the landing page."
|
|
61
|
-
- **Quote / reference** — "Nike's tagline is 'just do it' — write a blog post."
|
|
62
|
-
- **Subject of a request** — "Write docs about the 'work autonomously' modes."
|
|
63
|
-
- **Code / data** — string literals, fixtures, translations, JSON.
|
|
64
|
-
- **About a third party** — "My colleague works autonomously."
|
|
65
|
-
- **Question / hypothetical** — "Should I set `don't ask` as the default?"
|
|
66
|
-
|
|
67
|
-
Heuristic: strip quotes, code blocks, embedded content. Read what's
|
|
68
|
-
**left**. Still a directive to the agent about its working style →
|
|
69
|
-
flip. Otherwise → don't.
|
|
70
|
-
|
|
71
|
-
Opt-out (reversed intent) flips back to `off`:
|
|
42
|
+
In `auto` mode, flip to `on` for the rest of the conversation when
|
|
43
|
+
the user expresses **"stop asking on trivial steps, just work"**.
|
|
44
|
+
Recognize **intent**, not the literal substring. Opt-out (same intent,
|
|
45
|
+
reversed) flips back to `off`. Both directions are
|
|
46
|
+
**speech-act-checked**: the phrase must be a meta-instruction to the
|
|
47
|
+
agent, not content / quote / subject / code / third-party reference /
|
|
48
|
+
hypothetical. In doubt → keep current mode, no speculative flips.
|
|
72
49
|
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Counter-examples — do **not** flip on meta-questions, self-descriptions,
|
|
79
|
-
or one-shot delegations: "why don't you ask that yourself?", "I'm
|
|
80
|
-
working autonomously right now", "can you decide that yourself?".
|
|
81
|
-
|
|
82
|
-
In doubt → keep current mode, no speculative flips.
|
|
50
|
+
Algorithm and speech-act heuristic:
|
|
51
|
+
[`contexts/execution/autonomy-detection.md`](../contexts/execution/autonomy-detection.md).
|
|
52
|
+
Anchor phrases (DE+EN), no-flip patterns, counter-examples:
|
|
53
|
+
[`contexts/execution/autonomy-examples.md`](../contexts/execution/autonomy-examples.md).
|
|
83
54
|
|
|
84
55
|
## Trivial — JUST ACT, do not ask
|
|
85
56
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
-
|
|
90
|
-
- "How should I split the commits?" — never asked; either `/commit-in-chunks` was invoked (split + commit) or it wasn't (don't commit).
|
|
91
|
-
- "Run linter / tests now or later?" — `verify-before-complete` decides; act.
|
|
92
|
-
- "Found 3 follow-ups — fix all or stop?" — if within scope and minimal-safe-diff allows, fix; if scope expands, stop and surface as list.
|
|
93
|
-
- "Filename `X.md` or `Y.md`?" when one matches convention — pick convention-matching one.
|
|
94
|
-
- "Verification table or paragraph?" — pick whichever fits; format isn't a decision worth a turn.
|
|
95
|
-
- "Show me a diff before regenerating output from a tracked source?"
|
|
96
|
-
— compression, code-gen, formatter passes, lock-file rebuilds — run
|
|
97
|
-
it and report the result. Reversibility comes from the source, not
|
|
98
|
-
from per-file confirmation. See [`non-destructive-by-default`](non-destructive-by-default.md#not-in-scope--deterministic-regeneration)
|
|
99
|
-
§ Not in scope.
|
|
100
|
-
|
|
101
|
-
`personal.autonomy: off`: ask these. `on` or `auto`-after-opt-in: act.
|
|
57
|
+
In `personal.autonomy: on` or `auto`-after-opt-in, do not ask
|
|
58
|
+
trivial workflow questions — pick the obvious next step and proceed.
|
|
59
|
+
In `personal.autonomy: off`, ask them. Worked cases:
|
|
60
|
+
[`contexts/execution/autonomy-examples.md`](../contexts/execution/autonomy-examples.md).
|
|
102
61
|
|
|
103
62
|
## Blocking — STILL ASK regardless of `personal.autonomy`
|
|
104
63
|
|
|
105
|
-
Beyond the Hard Floor, the autonomy setting also never
|
|
64
|
+
Beyond the Hard Floor above, the autonomy setting also never
|
|
65
|
+
overrides:
|
|
106
66
|
|
|
107
|
-
- **Vague-request triggers** in [`ask-when-uncertain`](ask-when-uncertain.md)
|
|
108
|
-
|
|
67
|
+
- **Vague-request triggers** in [`ask-when-uncertain`](ask-when-uncertain.md)
|
|
68
|
+
— ambiguous requirements stay ambiguous; pick-one-and-pray is wrong.
|
|
69
|
+
- **Architectural / structural choices** that the codebase doesn't
|
|
70
|
+
already settle (multi-stack picks, library introductions).
|
|
109
71
|
- **Security-sensitive paths** — see [`security-sensitive-stop`](security-sensitive-stop.md).
|
|
110
|
-
- **Scope expansion** beyond stated task — see [`scope-control`](scope-control.md).
|
|
111
|
-
- **Remote-state
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
72
|
+
- **Scope expansion** beyond the stated task — see [`scope-control`](scope-control.md).
|
|
73
|
+
- **Remote-state operations** — push, merge, rebase, force-push,
|
|
74
|
+
branch create/delete/switch, PR create/close/retarget, tag/release.
|
|
75
|
+
Permission-gated by [`scope-control`](scope-control.md); the
|
|
76
|
+
prod-trunk and deploy-tied subset is governed by
|
|
77
|
+
[`non-destructive-by-default`](non-destructive-by-default.md).
|
|
78
|
+
- **Destructive ops** — see [`non-destructive-by-default`](non-destructive-by-default.md)
|
|
79
|
+
for the full taxonomy (whimsical bulk deletions, content
|
|
80
|
+
destruction, commits containing bulk deletions or infra changes).
|
|
81
|
+
|
|
82
|
+
When in doubt whether something is trivial or blocking → it is
|
|
83
|
+
blocking. Ask.
|
|
115
84
|
|
|
116
85
|
## Commit policy — see [`commit-policy`](commit-policy.md)
|
|
117
86
|
|
|
118
|
-
Committing is governed by [`commit-policy`](commit-policy.md)
|
|
119
|
-
applies regardless of `personal.autonomy`. Summary:
|
|
87
|
+
Committing is governed by the canonical [`commit-policy`](commit-policy.md)
|
|
88
|
+
rule, which applies regardless of `personal.autonomy`. Summary:
|
|
120
89
|
|
|
121
90
|
- NEVER commit unless user said so this turn, a commit command was
|
|
122
91
|
invoked, a standing instruction is active, or the roadmap authorizes it.
|
|
123
|
-
- NEVER ask about committing.
|
|
124
|
-
- In autonomous mode, the **only** permitted commit-related question
|
|
125
|
-
|
|
92
|
+
- NEVER ask about committing. The user invokes a command or says so.
|
|
93
|
+
- In autonomous mode, the **only** permitted commit-related question is
|
|
94
|
+
the one-shot pre-scan ask at the start of roadmap execution.
|
|
126
95
|
|
|
127
|
-
Push, merge, rebase, branch creation, PR
|
|
128
|
-
permission-gated
|
|
96
|
+
Push, merge, rebase, branch creation, PR operations, and tags remain
|
|
97
|
+
permission-gated by [`scope-control`](scope-control.md#git-operations--permission-gated).
|
|
129
98
|
|
|
130
99
|
## Failure modes
|
|
131
100
|
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
|
|
138
|
-
For Hard-Floor failure modes (treating autonomy as cover for a
|
|
139
|
-
floor-crossing action, reading a roadmap step as deploy authorization,
|
|
140
|
-
refusing task-aligned WIP deletions, committing bulk-deletion / infra
|
|
141
|
-
diffs without surfacing them) see
|
|
101
|
+
Autonomy-side wrong-behavior patterns (sequencing-only asks, CI-run
|
|
102
|
+
asks, commit asks, no-trade-off option blocks, re-asking after a
|
|
103
|
+
standing opt-in):
|
|
104
|
+
[`contexts/execution/autonomy-examples.md`](../contexts/execution/autonomy-examples.md).
|
|
105
|
+
For Hard-Floor failure modes see
|
|
142
106
|
[`non-destructive-by-default`](non-destructive-by-default.md#failure-modes).
|
|
143
107
|
|
|
144
|
-
## Cloud Behavior
|
|
145
|
-
|
|
146
|
-
Settings reads degrade gracefully on cloud platforms (no
|
|
147
|
-
`.agent-settings.yml`). Treat as `personal.autonomy: on` — user had to
|
|
148
|
-
deliberately ship a custom skill bundle and is unlikely to want
|
|
149
|
-
trivial-question friction.
|
|
150
|
-
|
|
151
108
|
## See also
|
|
152
109
|
|
|
153
|
-
- [`non-destructive-by-default`](non-destructive-by-default.md) —
|
|
154
|
-
|
|
155
|
-
- [`
|
|
156
|
-
|
|
110
|
+
- [`non-destructive-by-default`](non-destructive-by-default.md) —
|
|
111
|
+
universal safety floor; never overridden by autonomy
|
|
112
|
+
- [`scope-control`](scope-control.md) — git-ops permission gate
|
|
113
|
+
(push/merge/branch/PR/tag stays explicit)
|
|
114
|
+
- [`ask-when-uncertain`](ask-when-uncertain.md) — vague-request
|
|
115
|
+
triggers that always require asking
|
|
116
|
+
- [`no-cheap-questions`](no-cheap-questions.md) — mode-independent
|
|
117
|
+
floor against context-derived, sequencing-only, and
|
|
118
|
+
Iron-Law-violating asks (applies in `off` and pre-opt-in `auto` too)
|
|
119
|
+
- [`direct-answers`](direct-answers.md) — Iron Laws on brevity and
|
|
120
|
+
no-flattery (this rule extends to no-trivial-questions)
|
|
157
121
|
- [`/commit-in-chunks`](../commands/commit-in-chunks.md) — auto-split and commit without confirmation
|
|
158
122
|
- [`/commit`](../commands/commit.md) — split and commit with confirmation
|
|
@@ -82,7 +82,7 @@ Body: 1-paragraph **pattern** (not anecdote) + 1 concrete example.
|
|
|
82
82
|
A learning file is the input to `learning-to-rule-or-skill`, which
|
|
83
83
|
produces a proposal draft under `agents/proposals/`. The proposal is
|
|
84
84
|
then gated by `scripts/check_proposal.py`; see
|
|
85
|
-
[`self-improvement-pipeline`](
|
|
85
|
+
[`self-improvement-pipeline`](../../docs/guidelines/agent-infra/self-improvement-pipeline.md).
|
|
86
86
|
|
|
87
87
|
The `agents/learnings/` and `agents/proposals/` directories are
|
|
88
88
|
consumer-owned — the package ships templates and schemas, never the
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
description: "
|
|
4
|
-
alwaysApply:
|
|
2
|
+
type: "auto"
|
|
3
|
+
description: "Appending to .agent-chat-history — cadence boundaries (per_turn/per_phase/per_tool), turn-check ownership refusal handling, never writing the file directly; cadence is the trigger, not reply length"
|
|
4
|
+
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
description: "
|
|
4
|
-
alwaysApply:
|
|
2
|
+
type: "auto"
|
|
3
|
+
description: "First turn or reference to .agent-chat-history — detects ownership (match/returning/foreign/missing) and HOOK/ENGINE/CHECKPOINT/MANUAL path classification with numbered-options prompt"
|
|
4
|
+
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
description: "
|
|
4
|
-
alwaysApply:
|
|
2
|
+
type: "auto"
|
|
3
|
+
description: "Emitting the chat-history heartbeat marker — paste subprocess stdout verbatim or nothing, never type from memory, hybrid mode prints on drift only, slip handling per language-and-tone"
|
|
4
|
+
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
description: "
|
|
4
|
-
alwaysApply:
|
|
2
|
+
type: "auto"
|
|
3
|
+
description: "User prompt without /command but matching an eligible slash command — surface matches as numbered options with as-is escape hatch; never auto-executes, user always picks"
|
|
4
|
+
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -25,7 +25,7 @@ SUGGEST. NEVER INVOKE. THE USER PICKS, ALWAYS.
|
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
A suggestion block emits options. It does **not** start a command
|
|
28
|
-
flow. The user picking option N triggers `slash-
|
|
28
|
+
flow. The user picking option N triggers `slash-command-routing-policy` on the
|
|
29
29
|
**next** turn — with all the command's own halts intact.
|
|
30
30
|
|
|
31
31
|
## When to fire
|
|
@@ -33,7 +33,7 @@ flow. The user picking option N triggers `slash-commands` on the
|
|
|
33
33
|
On a user turn that matches **all** of the following:
|
|
34
34
|
|
|
35
35
|
1. The message does **not** start with an explicit `/command` (those
|
|
36
|
-
bypass suggestion entirely — see `slash-
|
|
36
|
+
bypass suggestion entirely — see `slash-command-routing-policy`).
|
|
37
37
|
2. `commands.suggestion.enabled` is `true` (default).
|
|
38
38
|
3. The user has not issued `/command-suggestion-off` in this conversation.
|
|
39
39
|
4. No clarification is owed for the same turn (per
|
|
@@ -110,7 +110,7 @@ prompt runs exactly as it would without this rule.
|
|
|
110
110
|
|
|
111
111
|
## What this rule does NOT do
|
|
112
112
|
|
|
113
|
-
- Invoke any command. Picking option N is what triggers `slash-
|
|
113
|
+
- Invoke any command. Picking option N is what triggers `slash-command-routing-policy`.
|
|
114
114
|
- Stack with other questions. One numbered-options block per turn.
|
|
115
115
|
- Re-trigger on its own output. Command names emitted in the
|
|
116
116
|
suggestion block are excluded from the next-turn matcher input.
|
|
@@ -126,7 +126,7 @@ available — degrade silently, never crash the turn.
|
|
|
126
126
|
|
|
127
127
|
## Interactions
|
|
128
128
|
|
|
129
|
-
- [`slash-
|
|
129
|
+
- [`slash-command-routing-policy`](slash-command-routing-policy.md) — explicit `/command` skips suggestion entirely.
|
|
130
130
|
- [`user-interaction`](user-interaction.md) — numbered-options Iron Law and single-source recommendation.
|
|
131
131
|
- [`ask-when-uncertain`](ask-when-uncertain.md) — clarification wins on conflict.
|
|
132
132
|
- [`scope-control`](scope-control.md) — git-op gates outrank suggestion.
|
|
@@ -61,4 +61,4 @@ ci(lint): add skill-lint workflow
|
|
|
61
61
|
docs(roadmap): add phase 3 implementation plan
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
→ Type selection rules, anti-patterns, decision checklist: `guidelines/php/git.md`
|
|
64
|
+
→ Type selection rules, anti-patterns, decision checklist: `docs/guidelines/php/git.md`
|
|
@@ -3,6 +3,8 @@ type: "always"
|
|
|
3
3
|
description: "Commit policy — never commit and never ask about committing unless the user said so this turn, the roadmap authorizes it, or a commit command is invoked"
|
|
4
4
|
alwaysApply: true
|
|
5
5
|
source: package
|
|
6
|
+
load_context:
|
|
7
|
+
- .agent-src.uncompressed/contexts/authority/commit-mechanics.md
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# Commit Policy
|
|
@@ -36,26 +38,12 @@ Exactly four ways the agent may commit:
|
|
|
36
38
|
3. **Commit command invoked** — `/commit` (with confirmation) or
|
|
37
39
|
`/commit-in-chunks` (auto-split, no confirmation).
|
|
38
40
|
4. **Roadmap authorization** — the roadmap file lists explicit commit
|
|
39
|
-
steps and the user invoked roadmap execution.
|
|
40
|
-
[Roadmap-authorized commits](#roadmap-authorized-commits) below.
|
|
41
|
+
steps and the user invoked roadmap execution.
|
|
41
42
|
|
|
42
|
-
Anything else → no commit.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
Even when one of the four exceptions above authorizes a commit, the
|
|
47
|
-
[`non-destructive-by-default`](non-destructive-by-default.md) Hard
|
|
48
|
-
Floor still fires when the diff:
|
|
49
|
-
|
|
50
|
-
- Removes a directory
|
|
51
|
-
- Deletes ≥5 unrelated files
|
|
52
|
-
- Touches Terraform / Pulumi / k8s manifests / Ansible / cloud-config
|
|
53
|
-
|
|
54
|
-
In those cases, **surface the diff** (paths + counts) and confirm
|
|
55
|
-
this turn before committing — even under `/commit-in-chunks`,
|
|
56
|
-
roadmap pre-scan authorization, or an explicit "commit this now". The
|
|
57
|
-
four exceptions cover *whether* commits happen; the Hard Floor covers
|
|
58
|
-
*which diffs* still need a separate confirmation.
|
|
43
|
+
Anything else → no commit. Hard Floor (bulk deletions, infra changes)
|
|
44
|
+
still fires on top of any exception — see
|
|
45
|
+
[`commit-mechanics`](../contexts/authority/commit-mechanics.md) for
|
|
46
|
+
the diff triggers and the roadmap-authorized commit flow.
|
|
59
47
|
|
|
60
48
|
## NEVER ask about committing
|
|
61
49
|
|
|
@@ -64,10 +52,10 @@ variant is **forbidden**. The user invokes a command or says so
|
|
|
64
52
|
explicitly. Don't surface a commit option in numbered-options blocks
|
|
65
53
|
unless the rest of the message would be incomplete without it.
|
|
66
54
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
55
|
+
Quoted commit phrases (chat-log paste, log excerpt, roadmap snippet)
|
|
56
|
+
are **not** permission — see
|
|
57
|
+
[`commit-mechanics`](../contexts/authority/commit-mechanics.md)
|
|
58
|
+
§ Speech-act check.
|
|
71
59
|
|
|
72
60
|
## NEVER write commit steps into roadmaps unsolicited
|
|
73
61
|
|
|
@@ -79,29 +67,13 @@ delivery decision; roadmaps plan **work**.
|
|
|
79
67
|
If the user explicitly wants commit steps in the roadmap, write them
|
|
80
68
|
clearly and unambiguously (e.g. "Commit phase X: chore: …").
|
|
81
69
|
|
|
82
|
-
## Roadmap-authorized commits
|
|
83
|
-
|
|
84
|
-
When **executing** a roadmap that contains commit steps:
|
|
85
|
-
|
|
86
|
-
- **Non-autonomous mode** (`personal.autonomy: off`, or `auto`
|
|
87
|
-
before opt-in) — agent may ask before each commit step. The user
|
|
88
|
-
authorized commits by writing them into the roadmap, but retains
|
|
89
|
-
step-level control.
|
|
90
|
-
- **Autonomous mode** (`personal.autonomy: on`, or `auto` after
|
|
91
|
-
opt-in) — agent does a quick pre-scan of the roadmap **before
|
|
92
|
-
starting execution**. If commit steps are found, ask **once** at
|
|
93
|
-
the very start: "Roadmap contains N commit steps — should they be
|
|
94
|
-
executed?". After that, honor or skip per the answer.
|
|
95
|
-
No re-asking per step.
|
|
96
|
-
|
|
97
|
-
The pre-scan ask is the **only** permitted commit-related question
|
|
98
|
-
in autonomous mode. Once answered, the decision is cached for the
|
|
99
|
-
rest of the roadmap execution.
|
|
100
|
-
|
|
101
70
|
## See also
|
|
102
71
|
|
|
103
72
|
- [`autonomous-execution`](autonomous-execution.md) — when to suppress
|
|
104
73
|
trivial questions; this rule survives the suppression.
|
|
74
|
+
- [`no-cheap-questions`](no-cheap-questions.md) — commit asks are
|
|
75
|
+
cheap by construction; this rule is the canonical Iron Law, the
|
|
76
|
+
cheap-questions rule cites it and refuses to surface the option.
|
|
105
77
|
- [`scope-control`](scope-control.md) — git-ops permission gate
|
|
106
78
|
(push, merge, branch, PR, tag stay separately permission-gated).
|
|
107
79
|
- [`/commit`](../commands/commit.md) — split and commit with confirmation.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
alwaysApply:
|
|
4
|
-
description: "
|
|
2
|
+
type: "auto"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
description: "When debugging, fixing errors, or running long conversations — 3-failure stop rule, tool-loop detection, fresh-chat triggers"
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "always"
|
|
3
|
-
description: "Always — direct, unembellished answers. No flattery, no invented facts (verify
|
|
3
|
+
description: "Always — direct, unembellished answers. No flattery, no invented facts (verify load-bearing claims, otherwise ask). Emojis only as functional markers. Brevity is the default."
|
|
4
4
|
alwaysApply: true
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
@@ -55,7 +55,7 @@ exist in `.augment/templates/agent-settings.md`:
|
|
|
55
55
|
3. **Add a comment** above the key explaining what it does.
|
|
56
56
|
4. **Update the local `.agent-settings.yml`** — add the new key with its default value.
|
|
57
57
|
Preserve all existing values, apply template order and comments. Follow the
|
|
58
|
-
[section-aware merge rules](
|
|
58
|
+
[section-aware merge rules](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
|
|
59
59
|
so the user benefits immediately without running a separate command.
|
|
60
60
|
|
|
61
61
|
**This step is mandatory.** If the template gains a new key but the local `.agent-settings.yml`
|
|
@@ -9,7 +9,7 @@ source: package
|
|
|
9
9
|
|
|
10
10
|
## Before writing E2E tests
|
|
11
11
|
|
|
12
|
-
1. **Read the guideline** —
|
|
12
|
+
1. **Read the guideline** — `../../docs/guidelines/e2e/playwright.md` for all conventions and patterns.
|
|
13
13
|
2. **Check existing tests** — match the project's structure, fixtures, and Page Object patterns.
|
|
14
14
|
3. **Check `playwright.config.ts`** — base URL, browsers, timeouts, projects.
|
|
15
15
|
|