@event4u/agent-config 1.15.0 → 1.17.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/{agents-audit.md → agents/audit.md} +4 -3
- package/.agent-src/commands/{agents-cleanup.md → agents/cleanup.md} +12 -6
- package/.agent-src/commands/{agents-prepare.md → agents/prepare.md} +4 -3
- package/.agent-src/commands/agents.md +46 -0
- 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 → chat-history/checkpoint.md} +5 -5
- package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +5 -5
- package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
- package/.agent-src/commands/chat-history/show.md +107 -0
- package/.agent-src/commands/chat-history.md +33 -89
- package/.agent-src/commands/check-current-md.md +1 -1
- package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
- package/.agent-src/commands/commit.md +22 -2
- package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
- package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
- package/.agent-src/commands/context.md +44 -0
- package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
- package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
- package/.agent-src/commands/copilot-agents.md +44 -0
- package/.agent-src/commands/council/default.md +221 -0
- package/.agent-src/commands/council/design.md +97 -0
- package/.agent-src/commands/council/optimize.md +116 -0
- package/.agent-src/commands/council/pr.md +124 -0
- package/.agent-src/commands/council.md +54 -0
- package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
- package/.agent-src/commands/create-pr.md +49 -5
- 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 → feature/dev.md} +6 -3
- package/.agent-src/commands/{feature-explore.md → feature/explore.md} +5 -4
- package/.agent-src/commands/{feature-plan.md → feature/plan.md} +32 -5
- package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -3
- package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +7 -6
- package/.agent-src/commands/feature.md +52 -0
- package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -3
- package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -3
- package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -3
- package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -3
- package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -6
- package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -3
- package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -3
- package/.agent-src/commands/fix.md +54 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +7 -6
- package/.agent-src/commands/judge/solo.md +90 -0
- package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +8 -7
- package/.agent-src/commands/judge.md +35 -70
- package/.agent-src/commands/{memory-add.md → memory/add.md} +7 -6
- package/.agent-src/commands/{memory-full.md → memory/load.md} +6 -5
- package/.agent-src/commands/{memory-promote.md → memory/promote.md} +6 -5
- package/.agent-src/commands/{propose-memory.md → memory/propose.md} +6 -5
- package/.agent-src/commands/memory.md +48 -0
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
- package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
- package/.agent-src/commands/module.md +44 -0
- package/.agent-src/commands/onboard.md +3 -3
- package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +5 -4
- package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -4
- package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -3
- package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +5 -4
- package/.agent-src/commands/optimize.md +48 -0
- package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
- package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
- package/.agent-src/commands/override.md +44 -0
- 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 → roadmap/create.md} +33 -5
- package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
- package/.agent-src/commands/roadmap.md +44 -0
- 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 → tests/create.md} +5 -4
- package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
- package/.agent-src/commands/tests.md +44 -0
- 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/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
- package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
- package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
- package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
- package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
- package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
- package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
- package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
- package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -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/contexts/judges/no-consolidate-rationale.md +102 -0
- package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -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 +14 -70
- package/.agent-src/rules/ask-when-uncertain.md +28 -43
- package/.agent-src/rules/augment-portability.md +15 -61
- package/.agent-src/rules/augment-source-of-truth.md +27 -93
- 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/cli-output-handling.md +10 -76
- package/.agent-src/rules/command-suggestion-policy.md +93 -0
- package/.agent-src/rules/commit-conventions.md +17 -14
- 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 +34 -49
- package/.agent-src/rules/docker-commands.md +5 -5
- package/.agent-src/rules/docs-sync.md +16 -70
- 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 +50 -133
- package/.agent-src/rules/minimal-safe-diff.md +3 -3
- package/.agent-src/rules/missing-tool-handling.md +28 -22
- package/.agent-src/rules/model-recommendation.md +4 -4
- package/.agent-src/rules/no-cheap-questions.md +82 -0
- package/.agent-src/rules/no-roadmap-references.md +73 -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/package-ci-checks.md +21 -61
- package/.agent-src/rules/preservation-guard.md +64 -29
- package/.agent-src/rules/review-routing-awareness.md +26 -45
- package/.agent-src/rules/roadmap-progress-sync.md +28 -96
- 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 +9 -9
- package/.agent-src/rules/size-enforcement.md +1 -1
- package/.agent-src/rules/skill-quality.md +16 -48
- package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +7 -4
- package/.agent-src/rules/think-before-action.md +55 -45
- package/.agent-src/rules/token-efficiency.md +4 -4
- package/.agent-src/rules/tool-safety.md +19 -16
- package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +27 -41
- package/.agent-src/rules/user-interaction.md +16 -71
- 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 +335 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/.agent-src/skills/api-testing/SKILL.md +1 -1
- 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/check-refs/SKILL.md +59 -40
- 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 +86 -28
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +7 -7
- package/.agent-src/skills/developer-like-execution/SKILL.md +6 -6
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
- package/.agent-src/skills/flux/SKILL.md +31 -11
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/github-ci/SKILL.md +2 -2
- package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
- package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
- package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
- package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/lint-skills/SKILL.md +57 -39
- package/.agent-src/skills/livewire/SKILL.md +1 -1
- package/.agent-src/skills/md-language-check/SKILL.md +61 -39
- package/.agent-src/skills/override-management/SKILL.md +7 -7
- package/.agent-src/skills/php-coder/SKILL.md +1 -1
- package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
- package/.agent-src/skills/quality-tools/SKILL.md +2 -2
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
- package/.agent-src/skills/readme-reviewer/SKILL.md +31 -30
- package/.agent-src/skills/readme-writing/SKILL.md +79 -54
- package/.agent-src/skills/readme-writing-package/SKILL.md +51 -48
- package/.agent-src/skills/receiving-code-review/SKILL.md +53 -48
- package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
- package/.agent-src/skills/review-routing/SKILL.md +2 -2
- package/.agent-src/skills/rule-writing/SKILL.md +1 -1
- package/.agent-src/skills/security/SKILL.md +7 -2
- package/.agent-src/skills/security-audit/SKILL.md +7 -3
- 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 +69 -61
- package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
- package/.agent-src/skills/test-performance/SKILL.md +0 -1
- package/.agent-src/skills/traefik/SKILL.md +4 -4
- 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 +30 -28
- 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 +31 -12
- package/AGENTS.md +11 -9
- package/CHANGELOG.md +213 -2
- package/README.md +43 -44
- package/config/agent-settings.template.yml +58 -1
- package/config/gitignore-block.txt +3 -0
- package/docs/architecture.md +5 -7
- package/docs/catalog.md +359 -0
- package/docs/contracts/STABILITY.md +46 -1
- package/docs/contracts/adr-chat-history-split.md +1 -3
- package/docs/contracts/adr-command-suggestion.md +3 -5
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
- package/docs/contracts/adr-product-ui-track.md +5 -8
- package/docs/contracts/adr-prompt-driven-execution.md +3 -4
- package/docs/contracts/agent-memory-contract.md +8 -13
- package/docs/contracts/artifact-engagement-flow.md +7 -10
- package/docs/contracts/command-clusters.md +56 -46
- package/docs/contracts/command-suggestion-flow.md +4 -6
- package/docs/contracts/context-paths.md +99 -0
- package/docs/contracts/file-ownership-matrix.json +6722 -0
- package/docs/contracts/file-ownership-matrix.md +134 -0
- package/docs/contracts/implement-ticket-flow.md +8 -11
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -2
- package/docs/contracts/linear-ai-three-layers.md +0 -2
- package/docs/contracts/load-context-budget-model.md +178 -0
- package/docs/contracts/load-context-schema.md +184 -0
- package/docs/contracts/rule-interactions.md +0 -1
- package/docs/contracts/rule-interactions.yml +96 -0
- package/docs/contracts/rule-priority-hierarchy.md +87 -0
- package/docs/contracts/ui-track-flow.md +8 -18
- package/docs/customization.md +16 -0
- package/docs/end-to-end-walkthroughs.md +165 -0
- package/docs/getting-started.md +29 -10
- package/docs/github-topics.md +12 -3
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
- 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/_one_off_phase4_dispatch_latency.py +108 -0
- package/scripts/_one_off_phase6_trigger_jaccard.py +92 -0
- package/scripts/_phase2_shim_helper.py +109 -0
- package/scripts/agent-config +33 -0
- package/scripts/ai_council/__init__.py +39 -0
- package/scripts/ai_council/_default_prices.py +41 -0
- package/scripts/ai_council/_one_off_2a4_acceptance.py +208 -0
- package/scripts/ai_council/_one_off_context_layer_v1_estimate.py +67 -0
- package/scripts/ai_council/_one_off_context_layer_v1_review.py +292 -0
- package/scripts/ai_council/_one_off_followups_review.py +259 -0
- package/scripts/ai_council/_one_off_nondestructive_inline_audit.py +209 -0
- package/scripts/ai_council/_one_off_phase_2a_budget_rebalance.py +257 -0
- package/scripts/ai_council/_one_off_phase_2a_post_revert.py +197 -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/_one_off_rule_hardening_v1.py +251 -0
- package/scripts/ai_council/_one_off_structural_open_questions.py +232 -0
- package/scripts/ai_council/_one_off_structural_optimization.py +144 -0
- package/scripts/ai_council/_one_off_structural_v3_gaps.py +252 -0
- package/scripts/ai_council/_one_off_structural_v3_review.py +240 -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 +444 -0
- package/scripts/check_augmentignore.py +69 -0
- package/scripts/check_cluster_patterns.py +159 -0
- package/scripts/check_command_count_messaging.py +127 -0
- package/scripts/check_context_paths.py +201 -0
- package/scripts/check_no_roadmap_refs.py +155 -0
- package/scripts/check_phase_coupling.py +148 -0
- package/scripts/check_portability.py +57 -0
- package/scripts/check_public_catalog_links.py +122 -0
- package/scripts/check_references.py +33 -3
- package/scripts/check_roadmap_trackable.py +111 -0
- package/scripts/check_safety_floor_untouched.py +125 -0
- package/scripts/command_suggester/cooldown.py +1 -1
- package/scripts/command_suggester/loader.py +4 -1
- package/scripts/compress.py +59 -13
- package/scripts/generate_index.py +270 -0
- package/scripts/generate_ownership_matrix.py +323 -0
- package/scripts/hooks/augment-roadmap-progress.sh +57 -0
- package/scripts/install.py +49 -28
- 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/lint_no_new_atomic_commands.py +12 -11
- package/scripts/requirements-evals.txt +1 -0
- package/scripts/roadmap_progress_hook.py +159 -0
- package/scripts/schemas/command.schema.json +22 -1
- package/scripts/schemas/rule.schema.json +10 -0
- package/scripts/skill_linter.py +13 -4
- package/scripts/sync_agent_settings.py +26 -3
- package/scripts/update_counts.py +16 -4
- package/scripts/update_prices.py +124 -0
- package/.agent-src/guidelines/php/git.md +0 -96
- package/.agent-src/rules/command-suggestion.md +0 -134
- /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,65 @@
|
|
|
1
|
+
# Review Routing Awareness — mechanics
|
|
2
|
+
|
|
3
|
+
Memory-lookup snippet, "do NOT overreach" guardrails, and anti-pattern
|
|
4
|
+
catalog for the
|
|
5
|
+
[`review-routing-awareness`](../../../rules/review-routing-awareness.md)
|
|
6
|
+
rule. The four required-behavior steps and the "when this rule applies"
|
|
7
|
+
trigger live in the rule; this file is the lookup material for the
|
|
8
|
+
fallback path and the failure-mode list.
|
|
9
|
+
|
|
10
|
+
## Memory-lookup fallback
|
|
11
|
+
|
|
12
|
+
If neither `.github/ownership-map.yml` (or `agents/ownership-map.yml`)
|
|
13
|
+
nor `.github/historical-bug-patterns.yml` (or
|
|
14
|
+
`agents/historical-bug-patterns.yml`) exists, fall back to the
|
|
15
|
+
engineering-memory layer via
|
|
16
|
+
[`memory-access`](../../../../docs/guidelines/agent-infra/memory-access.md):
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
from scripts.memory_lookup import retrieve
|
|
20
|
+
extra = retrieve(
|
|
21
|
+
types=["ownership", "historical-patterns"],
|
|
22
|
+
keys=<changed file paths>,
|
|
23
|
+
limit=5,
|
|
24
|
+
)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Curated memory (`agents/memory/ownership.yml`,
|
|
28
|
+
`agents/memory/historical-patterns.yml`) carries the same schema as the
|
|
29
|
+
project-local YAMLs and is merged into the routing output alongside
|
|
30
|
+
them. If both memory and project YAMLs are absent, skip the rule and
|
|
31
|
+
rely on [`reviewer-awareness`](../../../rules/reviewer-awareness.md)
|
|
32
|
+
defaults. **Do not invent owners or patterns** from context.
|
|
33
|
+
|
|
34
|
+
## Surface findings — worked examples
|
|
35
|
+
|
|
36
|
+
When producing a review plan, include:
|
|
37
|
+
|
|
38
|
+
- **Owner-mapped roles** — explicitly preferred over generic roles. If
|
|
39
|
+
the ownership map says `app/Billing/**` is owned by `finance-engineering
|
|
40
|
+
+ security`, use those, not "backend + security".
|
|
41
|
+
- **Historical-pattern warnings** — list every matched pattern with a
|
|
42
|
+
short label and the required control, e.g. _"Pattern: N+1 on tenant
|
|
43
|
+
listings → add an eager-load regression test"_.
|
|
44
|
+
- **Confidence note** — if the ownership map is stale (last updated > 6
|
|
45
|
+
months ago per the `updated` field), say so. Ownership maps rot.
|
|
46
|
+
|
|
47
|
+
## Do NOT overreach
|
|
48
|
+
|
|
49
|
+
- **Never rename paths** or add ownership entries as a side effect of a
|
|
50
|
+
code change. Ownership map edits are a separate, explicit task.
|
|
51
|
+
- **Never mark a change safe** only because no pattern matched. Pattern
|
|
52
|
+
absence means "no known hit", not "no risk".
|
|
53
|
+
- **Never copy historical-pattern names into the diff** as code comments
|
|
54
|
+
or commit messages — they are routing metadata, not commentary.
|
|
55
|
+
|
|
56
|
+
## Anti-patterns — reject them
|
|
57
|
+
|
|
58
|
+
- Suggesting owners "because this looks like billing code" without
|
|
59
|
+
consulting the ownership map when one exists.
|
|
60
|
+
- Inventing historical patterns from general knowledge — patterns must
|
|
61
|
+
come from the project's own registry.
|
|
62
|
+
- Downgrading a matched high-severity pattern because "the author said
|
|
63
|
+
it's fine" — the pattern was registered because it bit before.
|
|
64
|
+
- Treating an out-of-date map as absent. Flag staleness; do not silently
|
|
65
|
+
skip.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Roadmap Progress Sync — mechanics
|
|
2
|
+
|
|
3
|
+
Mechanics, triggers, and failure-mode catalog for the
|
|
4
|
+
[`roadmap-progress-sync`](../../../rules/roadmap-progress-sync.md)
|
|
5
|
+
rule. The Iron Laws and status semantics live in the rule; this
|
|
6
|
+
file holds the lookup material the rule pulls when a trigger fires.
|
|
7
|
+
|
|
8
|
+
## How to regenerate
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
./agent-config roadmap:progress
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The `./agent-config` wrapper is written into the project root by the
|
|
15
|
+
package installer and delegates to the master CLI inside
|
|
16
|
+
`node_modules/@event4u/agent-config/` or `vendor/event4u/agent-config/`.
|
|
17
|
+
No global tooling required.
|
|
18
|
+
|
|
19
|
+
## Triggers
|
|
20
|
+
|
|
21
|
+
| Edit | Must run, same response |
|
|
22
|
+
|---|---|
|
|
23
|
+
| **Create a new roadmap file** | regenerate dashboard |
|
|
24
|
+
| **Rename or delete a roadmap file** | regenerate dashboard |
|
|
25
|
+
| Mark step `[x]`, `[~]`, `[-]`, or unmark back to `[ ]` | regenerate dashboard |
|
|
26
|
+
| Add, rename, or remove a phase | regenerate dashboard |
|
|
27
|
+
| **Last `[ ]` flips** — roadmap reaches `count_open == 0` | `git mv` → `archive/` (or `skipped/`) **then** regenerate dashboard |
|
|
28
|
+
| Move roadmap between `roadmaps/` ↔ `archive/` ↔ `skipped/` | regenerate dashboard |
|
|
29
|
+
|
|
30
|
+
**Batching rule:** if you edit multiple checkboxes in one response, a
|
|
31
|
+
**single** regeneration at the end of that response is enough — but
|
|
32
|
+
the response must not end without it. If one of those edits closes a
|
|
33
|
+
roadmap, archive it first, then run the single regen.
|
|
34
|
+
|
|
35
|
+
## Pre-send self-check — MANDATORY
|
|
36
|
+
|
|
37
|
+
Before sending any reply that touched `agents/roadmaps/`, run this
|
|
38
|
+
silent gate:
|
|
39
|
+
|
|
40
|
+
1. Did this turn create, rename, delete, or move a roadmap file? → regen MUST be in the reply.
|
|
41
|
+
2. Did this turn flip any checkbox in a roadmap file? → regen MUST be in the reply.
|
|
42
|
+
3. Did the regen output (`✅ Wrote agents/roadmaps-progress.md · …`) actually appear this turn? → if no, run it now before sending.
|
|
43
|
+
4. **Autonomous roadmap execution gate** — did this turn complete a roadmap step (code saved + verification passed) without flipping its checkbox? → flip `[x]` (or `[~]` if multi-turn) and regen before sending.
|
|
44
|
+
5. **Trackable-roadmap gate** — did this turn create or substantially edit a roadmap file? → does it now contain at least one `- [ ]` per non-intro phase, **or** carry `status: draft` in frontmatter? → if neither, add the checklist or the draft flag before sending.
|
|
45
|
+
|
|
46
|
+
Any "yes" + no regen run = rule violation. Rerun before sending.
|
|
47
|
+
|
|
48
|
+
## Failure modes
|
|
49
|
+
|
|
50
|
+
- **Created the roadmap, marked Phase 1 done across multiple turns,
|
|
51
|
+
never regenerated** — dashboard silently lies "this roadmap does
|
|
52
|
+
not exist" to the next reader. Canonical failure of this rule;
|
|
53
|
+
the rule was hardened in response to it.
|
|
54
|
+
- **Regenerated yesterday, edited today, "I'll regen at session
|
|
55
|
+
end"** — session ends from a crash, regen never lands.
|
|
56
|
+
- **Closed a roadmap (last `[ ]` → `[x]`) and regenerated before
|
|
57
|
+
`git mv`** — the closed roadmap reappears in "Open roadmaps".
|
|
58
|
+
- **Edited the dashboard by hand to "fix it quickly"** — next regen
|
|
59
|
+
overwrites the manual edit; no audit trail of why.
|
|
60
|
+
- **Autonomous run, four steps shipped across four turns, dashboard
|
|
61
|
+
flat the whole time, single regen at the end** — user lost
|
|
62
|
+
progress visibility for the entire run. Each completed step must
|
|
63
|
+
flip its checkbox in the reply that ships it.
|
|
64
|
+
- **Decision-only roadmap shipped without checkboxes** — file
|
|
65
|
+
contains decisions / ICE / block-sequencing but zero `- [ ]`,
|
|
66
|
+
dashboard shows `0/0` or omits it. Pair with a `## Phase N`
|
|
67
|
+
section or mark `status: draft` (CI catches this now).
|
|
68
|
+
- **Headings off-canon (`### P0 #N`, `## Block A`, `### Sequencing
|
|
69
|
+
— Phase 1`)** — `PHASE_RE` skips them, roadmap invisible to the
|
|
70
|
+
dashboard. Rename to `## Phase <id>` or mark `status: draft`.
|
|
71
|
+
|
|
72
|
+
## Do NOT
|
|
73
|
+
|
|
74
|
+
- Do NOT edit `agents/roadmaps-progress.md` by hand — always regenerate.
|
|
75
|
+
- Do NOT defer the regen to "next commit" or "before push" — same response.
|
|
76
|
+
- Do NOT rely on CI (`--check` mode) as the first line of defence — CI is last-line, not real-time.
|
|
77
|
+
- Do NOT skip the regen because "only one checkbox changed" — the dashboard aggregates counts and phase percentages that shift on single edits.
|
|
78
|
+
- Do NOT leave a 100%-complete roadmap in `agents/roadmaps/` "for review" — `git mv` to archive **before** regenerating, otherwise it reappears in "Open roadmaps".
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Skill quality — mechanics
|
|
2
|
+
|
|
3
|
+
Description-triggering recipe, merge-preservation invariants, and
|
|
4
|
+
compression-preservation invariants for the
|
|
5
|
+
[`skill-quality`](../../../rules/skill-quality.md) rule. The minimum
|
|
6
|
+
sharpness table, required sections, frontmatter contract, the
|
|
7
|
+
skill-independence Iron Law, and the refactor-safety NEVER list live
|
|
8
|
+
in the rule; this file is the lookup material when authoring or
|
|
9
|
+
refactoring a skill.
|
|
10
|
+
|
|
11
|
+
## Description Triggering
|
|
12
|
+
|
|
13
|
+
Claude routes skills by reading the frontmatter `description`. Polite, generic,
|
|
14
|
+
or hedged descriptions cause **undertriggering** — the skill never loads when it
|
|
15
|
+
should, and the user never learns it exists.
|
|
16
|
+
|
|
17
|
+
Make descriptions "pushy" — explicit about when to fire:
|
|
18
|
+
|
|
19
|
+
- Start with a concrete verb phrase: `Use when ...`, `Creates ...`, `Reviews ...`.
|
|
20
|
+
- Name 2+ concrete triggers — domains, symptoms, file types, user phrasing.
|
|
21
|
+
- End with: `... even if they don't explicitly ask for \`<skill-name>\`.`
|
|
22
|
+
- Avoid hedges: `may help with`, `can be useful for`, `covers various`.
|
|
23
|
+
- **Keep it ≤ 200 characters.** `scripts/skill_linter.py` warns at
|
|
24
|
+
`description_too_long` above this. If the pushy tail pushes you over, cut
|
|
25
|
+
adjectives, drop the second example phrasing, or collapse a list — do
|
|
26
|
+
**not** drop the trigger vocabulary or the `even if ...` tail.
|
|
27
|
+
|
|
28
|
+
Source: [`skills/skill-creator` in `anthropics/skills`](https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md).
|
|
29
|
+
|
|
30
|
+
**Litmus test:** Read the description cold, without the skill's body. If you
|
|
31
|
+
cannot name at least two phrasings a user would realistically type that should
|
|
32
|
+
route to this skill, the description is too polite. Rewrite it.
|
|
33
|
+
|
|
34
|
+
## Merge Preservation
|
|
35
|
+
|
|
36
|
+
When merging or refactoring skills, the merged result MUST preserve:
|
|
37
|
+
|
|
38
|
+
1. **Strongest validation** from each source skill
|
|
39
|
+
2. **Strongest example** (good/bad contrast) from each source
|
|
40
|
+
3. **Strongest anti-pattern** from each source
|
|
41
|
+
4. **All concrete decision criteria** that differ between sources
|
|
42
|
+
|
|
43
|
+
A merge is invalid if:
|
|
44
|
+
- Validation got weaker than the strongest source
|
|
45
|
+
- Examples were lost without replacement
|
|
46
|
+
- Anti-pattern coverage decreased
|
|
47
|
+
- The merged skill became a generic umbrella doc
|
|
48
|
+
|
|
49
|
+
## Compression Preservation
|
|
50
|
+
|
|
51
|
+
When compressing a skill, the compressed version MUST preserve:
|
|
52
|
+
|
|
53
|
+
- Trigger quality (description + When to use)
|
|
54
|
+
- All procedure steps that contain decisions
|
|
55
|
+
- All concrete validation checks
|
|
56
|
+
- All gotchas and anti-patterns
|
|
57
|
+
- Strongest example (at minimum one good/bad contrast)
|
|
58
|
+
|
|
59
|
+
Compression may remove:
|
|
60
|
+
- Verbose explanations
|
|
61
|
+
- Redundant examples (keep the strongest)
|
|
62
|
+
- Commentary that doesn't affect execution
|
package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Slash-command routing — cluster mechanics
|
|
2
|
+
|
|
3
|
+
Lookup table for the `slash-command-routing-policy` rule. Lists the
|
|
4
|
+
locked clusters and their sub-commands so the rule itself can stay at
|
|
5
|
+
its current LOC while still reflecting the full surface. Source of
|
|
6
|
+
truth for the cluster names is
|
|
7
|
+
[`docs/contracts/command-clusters.md`](../../../../docs/contracts/command-clusters.md);
|
|
8
|
+
this file mirrors that contract for runtime lookup. Linter:
|
|
9
|
+
`scripts/check_cluster_patterns.py` (verifies dispatcher shape).
|
|
10
|
+
|
|
11
|
+
## Locked clusters and sub-commands
|
|
12
|
+
|
|
13
|
+
| Cluster | Phase | Sub-commands | Replaces |
|
|
14
|
+
|---|:-:|---|---|
|
|
15
|
+
| `/fix` | 1 | `ci` · `pr` · `pr-bots` · `pr-developers` · `portability` · `refs` · `seeder` | `/fix-ci` · `/fix-pr-comments` · `/fix-pr-bot-comments` · `/fix-pr-developer-comments` · `/fix-portability` · `/fix-references` · `/fix-seeder` |
|
|
16
|
+
| `/optimize` | 1 | `agents` · `augmentignore` · `rtk` · `skills` | `/optimize-agents` · `/optimize-augmentignore` · `/optimize-rtk-filters` · `/optimize-skills` |
|
|
17
|
+
| `/feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` | `/feature-explore` · `/feature-plan` · `/feature-refactor` · `/feature-roadmap` |
|
|
18
|
+
| `/chat-history` | 2 | `show` · `resume` · `clear` · `checkpoint` | `/chat-history` (legacy status) · `/chat-history-resume` · `/chat-history-clear` · `/chat-history-checkpoint` |
|
|
19
|
+
| `/agents` | 2 | `audit` · `cleanup` · `prepare` | `/agents-audit` · `/agents-cleanup` · `/agents-prepare` |
|
|
20
|
+
| `/memory` | 2 | `add` · `load` · `promote` · `propose` | `/memory-add` · `/memory-full` · `/memory-promote` · `/propose-memory` |
|
|
21
|
+
| `/roadmap` | 2 | `create` · `execute` | `/roadmap-create` · `/roadmap-execute` |
|
|
22
|
+
| `/module` | 2 | `create` · `explore` | `/module-create` · `/module-explore` |
|
|
23
|
+
| `/tests` | 2 | `create` · `execute` | `/tests-create` · `/tests-execute` |
|
|
24
|
+
| `/context` | 2 | `create` · `refactor` | `/context-create` · `/context-refactor` |
|
|
25
|
+
| `/override` | 2 | `create` · `manage` | `/override-create` · `/override-manage` |
|
|
26
|
+
| `/copilot-agents` | 2 | `init` · `optimize` | `/copilot-agents-init` · `/copilot-agents-optimize` |
|
|
27
|
+
| `/judge` | 2 | `solo` · `on-diff` · `steps` | `/judge` (legacy standalone) · `/do-and-judge` · `/do-in-steps` |
|
|
28
|
+
| `/commit` | 2 | flag: `--in-chunks` | `/commit-in-chunks` |
|
|
29
|
+
| `/create-pr` | 2 | flag: `--description-only` | `/create-pr-description` |
|
|
30
|
+
|
|
31
|
+
## Routing semantics
|
|
32
|
+
|
|
33
|
+
1. The user types `/<cluster> [<sub>] [args]`.
|
|
34
|
+
2. Match the cluster against the table above. If the leading token is
|
|
35
|
+
a dispatcher cluster, route to the dispatcher's `commands/<cluster>.md`
|
|
36
|
+
and let the dispatcher's "Dispatch" section pick the sub-command.
|
|
37
|
+
3. If the leading token is a flag-cluster (`/commit`, `/create-pr`),
|
|
38
|
+
the cluster file is the entry point itself; flags absorb the
|
|
39
|
+
former helper command.
|
|
40
|
+
4. **Legacy atomic shims** (`/fix-ci`, `/agents-audit`, …) keep working
|
|
41
|
+
for one release cycle. They emit a deprecation warning and forward
|
|
42
|
+
to the cluster invocation. New invocations should always use the
|
|
43
|
+
cluster form.
|
|
44
|
+
5. If a sub-command is unknown, the dispatcher prints the menu — never
|
|
45
|
+
guess.
|
|
46
|
+
|
|
47
|
+
## Removal cycle
|
|
48
|
+
|
|
49
|
+
| Cycle | Active form | Shim form |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| `1.15.x` / `1.16.x` | Phase 1 cluster commands | Phase 1 atomic shims |
|
|
52
|
+
| `1.17.0` | Phase 1 + Phase 2 cluster commands | Phase 2 atomic shims (Phase 1 atomics removed) |
|
|
53
|
+
| next minor after `1.17.x` | Cluster commands only | — (Phase 2 atomics removed) |
|
|
54
|
+
|
|
55
|
+
Consumers see the canonical surface as the cluster form throughout.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# UI-audit gate — mechanics
|
|
2
|
+
|
|
3
|
+
Findings-shape spec, failure-mode catalog, and cloud-surface
|
|
4
|
+
adaptation for the
|
|
5
|
+
[`ui-audit-gate`](../../../rules/ui-audit-gate.md) rule. The Iron
|
|
6
|
+
Law, the activation triggers, the allow-list, and the action sequence
|
|
7
|
+
when the gate fires live in the rule; this file is the lookup
|
|
8
|
+
material when an agent has to verify what counts as findings or
|
|
9
|
+
recognise a failure mode.
|
|
10
|
+
|
|
11
|
+
## What "audit findings" means
|
|
12
|
+
|
|
13
|
+
`state.ui_audit` is a non-empty dict carrying at least one of:
|
|
14
|
+
|
|
15
|
+
- `components_found` — `{path, name, kind, similarity?}` inventory
|
|
16
|
+
entries from [`existing-ui-audit`](../../../skills/existing-ui-audit/SKILL.md).
|
|
17
|
+
- `greenfield: true` plus `greenfield_decision` ∈
|
|
18
|
+
`{scaffold, bare, external_reference}`.
|
|
19
|
+
- Legacy `components` alias — back-compat for the same shape.
|
|
20
|
+
|
|
21
|
+
`null`, `{}`, or a dict without those keys is **not** findings;
|
|
22
|
+
emit `@agent-directive: existing-ui-audit` instead of writing code.
|
|
23
|
+
|
|
24
|
+
## Failure modes
|
|
25
|
+
|
|
26
|
+
- Writing the component first and "thinking about reuse later".
|
|
27
|
+
- Citing a similar-looking component from memory without verifying
|
|
28
|
+
it via the audit.
|
|
29
|
+
- Treating `state.ui_audit = {}` as "audit ran, found nothing" —
|
|
30
|
+
empty dict is rejected on purpose; an audit that finds nothing
|
|
31
|
+
must record either ≥1 `components_found` or the greenfield branch.
|
|
32
|
+
- Bypassing the gate for "just one tile".
|
|
33
|
+
|
|
34
|
+
## Interactions
|
|
35
|
+
|
|
36
|
+
- [`improve-before-implement`](../../../rules/improve-before-implement.md) — runs
|
|
37
|
+
first when the request is ambiguous; this rule is the next gate.
|
|
38
|
+
- [`ask-when-uncertain`](../../../rules/ask-when-uncertain.md) — "just build it"
|
|
39
|
+
does **not** drop the audit; acknowledge, run audit, continue.
|
|
40
|
+
- [`directives/ui/audit.py`](../../../templates/scripts/work_engine/directives/ui/audit.py)
|
|
41
|
+
— code-layer twin; this rule covers the cases where the engine
|
|
42
|
+
is not in the loop.
|
|
43
|
+
- [`existing-ui-audit`](../../../skills/existing-ui-audit/SKILL.md) — the
|
|
44
|
+
skill that produces the findings.
|
|
45
|
+
|
|
46
|
+
## Cloud Behavior
|
|
47
|
+
|
|
48
|
+
On cloud surfaces the engine is not shipped, so `state.ui_audit`
|
|
49
|
+
does not exist. The Iron Law still applies: take the visible
|
|
50
|
+
inventory of files in conversation context as the audit, and
|
|
51
|
+
surface a one-line audit summary in the reply before writing the
|
|
52
|
+
component. The gate is satisfied by an explicit summary, not by
|
|
53
|
+
silently skipping.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# User Interaction — mechanics
|
|
2
|
+
|
|
3
|
+
Format examples, common failure modes, progress indicators, and
|
|
4
|
+
summary patterns for the [`user-interaction`](../../../rules/user-interaction.md)
|
|
5
|
+
rule. Iron Law 1 (single-source recommendation) and Iron Law 2
|
|
6
|
+
(pre-send self-check) live in the rule; this file is the lookup
|
|
7
|
+
material for the format details.
|
|
8
|
+
|
|
9
|
+
## Common failure modes — known, named, no excuses
|
|
10
|
+
|
|
11
|
+
- **End-of-turn menu skipped.** Reply answers the question fine, then ends with `> 1. Foo > 2. Bar > 3. Stop` and no `Empfehlung:`. Iron Law 1 was violated — these are numbered options, position is irrelevant.
|
|
12
|
+
- **"Genuinely no preference" hedge.** Pick anyway. The agent has more context than the user on the trade-off; refusing to pick dumps the work back. Pick the safest option, name the flip-condition.
|
|
13
|
+
- **"User knows the project better" hedge.** Same failure mode, different costume. The user asked for an opinion by virtue of accepting the options block; deliver it.
|
|
14
|
+
- **Multi-block reply with one recommendation.** Two options blocks but only one `Empfehlung:` line — the second block is unguarded. Rule 5 of Iron Law 2 closes this.
|
|
15
|
+
|
|
16
|
+
## Examples
|
|
17
|
+
|
|
18
|
+
**Binary choice:**
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
> 1. Interactive — ask before each comment
|
|
22
|
+
> 2. Automatic — handle all independently
|
|
23
|
+
|
|
24
|
+
**Recommendation: 1 — Interactive** — the comments touch security-sensitive code,
|
|
25
|
+
so a wrong auto-fix is more expensive than approving each one. Caveat: flip to 2
|
|
26
|
+
if the comments turn out to be pure formatting.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Multiple choice with skip:**
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
> 1. Fix the code
|
|
33
|
+
> 2. Fix the test
|
|
34
|
+
> 3. Skip
|
|
35
|
+
|
|
36
|
+
**Recommendation: 1 — Fix the code** — the test asserts the documented behaviour;
|
|
37
|
+
the production code drifted from the contract. Caveat: pick 2 only if the contract
|
|
38
|
+
itself is wrong.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Confirmation with context:**
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
> Found PR #1399 on branch `chore/refactor-agent-setup-2`.
|
|
45
|
+
>
|
|
46
|
+
> 1. Yes, that's the right PR
|
|
47
|
+
> 2. No, different PR — I'll provide the URL
|
|
48
|
+
|
|
49
|
+
**Recommendation: 1 — Yes** — the branch name matches the PR title exactly.
|
|
50
|
+
Caveat: flip to 2 if the PR was reopened from a different branch.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## When NOT to use numbered options
|
|
54
|
+
|
|
55
|
+
- **Open-ended questions** where the answer is free text (e.g., "What should the class be named?").
|
|
56
|
+
- **Simple yes/no** can use numbered options OR accept "ja"/"nein" directly.
|
|
57
|
+
Even for yes/no, prefer numbered options if there's additional context to show.
|
|
58
|
+
|
|
59
|
+
## Progress Indicators
|
|
60
|
+
|
|
61
|
+
When processing multiple items (e.g., review comments, test failures), show progress:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
**Comment 3/7** — `filename.php:42`
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Summaries
|
|
68
|
+
|
|
69
|
+
After completing a batch of actions, provide a summary table:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
| # | File | Action |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| 1 | `file.php` | Fixed null check |
|
|
75
|
+
| 2 | `test.php` | Updated assertion |
|
|
76
|
+
| 3 | `config.php` | Skipped (intentional) |
|
|
77
|
+
```
|
|
@@ -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).
|
|
@@ -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.
|