@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,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
audience: maintainers
|
|
3
|
+
status: stable
|
|
4
|
+
stability: stable
|
|
5
|
+
purpose: >
|
|
6
|
+
Locked decision rationale for Phase 3a of the
|
|
7
|
+
road-to-structural-optimization roadmap. The four `judge-*` skills
|
|
8
|
+
are intentionally **not** consolidated under a shared procedure
|
|
9
|
+
context. Future maintainers reading this file should not retry the
|
|
10
|
+
pattern without invalidating the data here.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Why `judge-*` skills are NOT consolidated
|
|
14
|
+
|
|
15
|
+
A Phase 3a spike evaluated extracting a shared procedure file
|
|
16
|
+
(`contexts/judges/judge-shared-procedure.md`) loaded by all four
|
|
17
|
+
`judge-*` skills. The locked Q1=A shape (separate skills + shared
|
|
18
|
+
procedure context) was implemented and benchmarked. **Outcome: net
|
|
19
|
+
LOC negative.** The pattern is rejected for this family.
|
|
20
|
+
|
|
21
|
+
## The numbers
|
|
22
|
+
|
|
23
|
+
Spike measurements on `judge-test-coverage` (the smallest persona,
|
|
24
|
+
chosen per roadmap 3a.0):
|
|
25
|
+
|
|
26
|
+
| State | Skill LOC | Shared LOC | Total per family of 4 |
|
|
27
|
+
|---|---|---|---|
|
|
28
|
+
| Baseline (4 separate) | 153 + 157 + 157 + 166 = **633** | 0 | 633 |
|
|
29
|
+
| Slim attempt #1 | 138 | 134 | 4 × 138 + 134 = 686 ❌ |
|
|
30
|
+
| Slim attempt #2 (aggressive) | 133 | 117 | 4 × 133 + 117 = 649 ❌ |
|
|
31
|
+
|
|
32
|
+
The success-criteria threshold from the roadmap (≥ 30 % per-skill
|
|
33
|
+
LOC reduction) maps to 153 → ≤ 107 for `judge-test-coverage`. The
|
|
34
|
+
aggressive attempt landed at 133 — a 13 % reduction. To go further,
|
|
35
|
+
each skill would have to surrender persona-specific content (analysis
|
|
36
|
+
rubric, anti-pattern list, severity definitions, scope-boundary Do
|
|
37
|
+
NOTs) — exactly the content that makes each persona reviewable.
|
|
38
|
+
|
|
39
|
+
## Why the math doesn't work
|
|
40
|
+
|
|
41
|
+
A judge skill is **not** procedurally complex. Its value is the
|
|
42
|
+
persona surface:
|
|
43
|
+
|
|
44
|
+
- a 6–11 row analysis table tailored to the lens (correctness, security,
|
|
45
|
+
test gaps, code quality)
|
|
46
|
+
- a list of persona-specific anti-patterns and gotchas
|
|
47
|
+
- a severity legend with thresholds calibrated to the lens
|
|
48
|
+
- scope-boundary Do NOTs that route to sibling judges
|
|
49
|
+
|
|
50
|
+
Procedural overhead (verdict semantics, validation scaffold,
|
|
51
|
+
output-format frame, runtime boundary, model fallback) is small in
|
|
52
|
+
absolute terms — extracting it adds a context file but only saves
|
|
53
|
+
~15–25 LOC per skill. With four skills, the per-skill saving is
|
|
54
|
+
amortized against the shared file once; below five or six skills,
|
|
55
|
+
the structural tax dominates.
|
|
56
|
+
|
|
57
|
+
The same argument applies to procedural duplication in any small
|
|
58
|
+
skill family where the procedural skeleton is short and the persona
|
|
59
|
+
table is the bulk of the file.
|
|
60
|
+
|
|
61
|
+
## Decision
|
|
62
|
+
|
|
63
|
+
Phase 3a is closed with status **DO NOT CONSOLIDATE**. The four
|
|
64
|
+
`judge-*` skills remain separate, self-contained, and free of
|
|
65
|
+
`load_context:` indirection. Each skill's "Procedure" section carries
|
|
66
|
+
its full procedural body inline. This trades minor maintenance
|
|
67
|
+
duplication for full persona isolation and zero structural tax.
|
|
68
|
+
|
|
69
|
+
Phase 3b (`project-analysis-*`, 8 skills, 959 LOC) and Phase 3c
|
|
70
|
+
(`skill-*`, 4 skills, 782 LOC) **continue independently** per the
|
|
71
|
+
roadmap's "3b/3c continue independently" abort note. The math there
|
|
72
|
+
is more favorable: 8 stack-specific analysis skills share a much
|
|
73
|
+
larger procedural skeleton (project discovery, version resolution,
|
|
74
|
+
docs loading, architecture mapping) than 4 judge skills do.
|
|
75
|
+
|
|
76
|
+
## Reopening conditions
|
|
77
|
+
|
|
78
|
+
Reopen this decision **only** if at least one of these holds:
|
|
79
|
+
|
|
80
|
+
1. The `judge-*` family grows to ≥ 6 skills (procedural amortization
|
|
81
|
+
crosses break-even).
|
|
82
|
+
2. A new persona-orthogonal procedural step is introduced that all
|
|
83
|
+
judges must execute identically (e.g. a CI-integrated verdict
|
|
84
|
+
reporter), and that step is non-trivial (≥ 30 LOC).
|
|
85
|
+
3. The success-criteria threshold in
|
|
86
|
+
`road-to-structural-optimization.md` § 3a is renegotiated to a
|
|
87
|
+
lower per-skill LOC bar (with explicit justification — the 30 %
|
|
88
|
+
bar exists because anything less is structural noise).
|
|
89
|
+
|
|
90
|
+
Until one of those holds, treat any "let's extract shared procedure
|
|
91
|
+
across the judges" proposal as a regression and cite this file.
|
|
92
|
+
|
|
93
|
+
## See also
|
|
94
|
+
|
|
95
|
+
- [`persona-voice-rubric`](persona-voice-rubric.md) — the voice
|
|
96
|
+
preservation rubric used during the spike (still applies if a future
|
|
97
|
+
consolidation attempt needs the same check).
|
|
98
|
+
- Sibling judges, all kept inline:
|
|
99
|
+
[`judge-bug-hunter`](../../skills/judge-bug-hunter/SKILL.md),
|
|
100
|
+
[`judge-code-quality`](../../skills/judge-code-quality/SKILL.md),
|
|
101
|
+
[`judge-security-auditor`](../../skills/judge-security-auditor/SKILL.md),
|
|
102
|
+
[`judge-test-coverage`](../../skills/judge-test-coverage/SKILL.md).
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Persona-Voice Rubric for `judge-*` Skills
|
|
6
|
+
|
|
7
|
+
> **Audience:** authors and reviewers of any future `judge-*`
|
|
8
|
+
> consolidation spike. Also loaded via `load_context:` by future
|
|
9
|
+
> `judge-*` slim shapes when an A-shape ships.
|
|
10
|
+
|
|
11
|
+
This rubric defines **what "persona voice" means** for the four
|
|
12
|
+
`judge-*` skills (`judge-bug-hunter`, `judge-code-quality`,
|
|
13
|
+
`judge-security-auditor`, `judge-test-coverage`) and **how to score
|
|
14
|
+
voice preservation** when comparing a slimmed (Option-A: separate skill
|
|
15
|
+
+ shared procedure context) output against the current single-file
|
|
16
|
+
baseline. The rubric is the measurement instrument behind the 3a.0.1
|
|
17
|
+
voice gate (≥ 4.0/5) and the 0.5 author + 2-reviewer protocol (avg ≥
|
|
18
|
+
3.5/5).
|
|
19
|
+
|
|
20
|
+
## The five dimensions
|
|
21
|
+
|
|
22
|
+
Each dimension scored independently on a 1–5 integer scale. Scorers
|
|
23
|
+
record one numeric score plus one short rationale per dimension.
|
|
24
|
+
|
|
25
|
+
### 1. Tone
|
|
26
|
+
|
|
27
|
+
The judge's posture toward the diff. Distinctive markers per persona:
|
|
28
|
+
|
|
29
|
+
| Skill | Tone marker |
|
|
30
|
+
|---|---|
|
|
31
|
+
| `judge-bug-hunter` | Skeptical, edge-case-first ("what input breaks this?") |
|
|
32
|
+
| `judge-code-quality` | Reformist, convention-bound ("this clashes with the codebase pattern at X") |
|
|
33
|
+
| `judge-security-auditor` | Adversarial, threat-modeling ("what would an attacker do here?") |
|
|
34
|
+
| `judge-test-coverage` | Falsification-first ("does this test fail without the fix?") |
|
|
35
|
+
|
|
36
|
+
Score 5 = posture indistinguishable from baseline. Score 1 = generic
|
|
37
|
+
"reviewer voice" with no persona signal.
|
|
38
|
+
|
|
39
|
+
### 2. Vocabulary
|
|
40
|
+
|
|
41
|
+
Domain-specific terms the persona reaches for unprompted. Captured by
|
|
42
|
+
keyword profile from the baseline SKILL.md (e.g., `judge-security-auditor`
|
|
43
|
+
uses *trust boundary*, *sink*, *SSRF*, *mass assignment*;
|
|
44
|
+
`judge-test-coverage` uses *uncovered branch*, *over-mocking*,
|
|
45
|
+
*regression test*, *tautological assertion*).
|
|
46
|
+
|
|
47
|
+
Score 5 = ≥ 80% of baseline keyword profile present in slimmed output
|
|
48
|
+
on a representative diff. Score 1 = < 20% present, or vocabulary leaks
|
|
49
|
+
in from a sibling persona (collision marker — see § 5 below).
|
|
50
|
+
|
|
51
|
+
### 3. Prompt-shape preservation
|
|
52
|
+
|
|
53
|
+
The structural skeleton of the output (Verdict, Issues, Severity,
|
|
54
|
+
Required fields). Must match the baseline `Output format` block
|
|
55
|
+
verbatim in field order, label spelling, and severity icon set.
|
|
56
|
+
|
|
57
|
+
Score 5 = byte-identical field structure (only finding content
|
|
58
|
+
differs). Score 3 = minor reorder, no missing fields. Score 1 = a
|
|
59
|
+
required field dropped, renamed, or merged.
|
|
60
|
+
|
|
61
|
+
### 4. Refusal patterns
|
|
62
|
+
|
|
63
|
+
How the judge handles out-of-scope concerns. Each `judge-*` baseline
|
|
64
|
+
explicitly **refuses** to comment on dimensions another judge owns
|
|
65
|
+
(e.g., `judge-test-coverage` refuses to flag correctness or style;
|
|
66
|
+
`judge-security-auditor` refuses to flag pure logic bugs).
|
|
67
|
+
|
|
68
|
+
Score 5 = refusal triggers fire on the same out-of-scope inputs as
|
|
69
|
+
baseline, with the same handoff phrasing ("route to `judge-X`"). Score
|
|
70
|
+
1 = persona accepts an out-of-scope finding silently (mode-collision
|
|
71
|
+
risk realized).
|
|
72
|
+
|
|
73
|
+
### 5. Evidence-citation style
|
|
74
|
+
|
|
75
|
+
How findings are anchored to the diff. Baselines all cite `path:LINE`
|
|
76
|
+
with a one-line reason and (where applicable) a "what the test should
|
|
77
|
+
assert" / "what the attacker would do" clause.
|
|
78
|
+
|
|
79
|
+
Score 5 = every finding has the same citation shape as baseline —
|
|
80
|
+
`path:LINE` plus the persona-specific clause (uncovered branch /
|
|
81
|
+
threat class / pattern violated / failing input). Score 1 = findings
|
|
82
|
+
are vague ("there's a problem in the validator") or use a sibling
|
|
83
|
+
persona's citation shape.
|
|
84
|
+
|
|
85
|
+
## Scoring template
|
|
86
|
+
|
|
87
|
+
For each scored output, fill out the matrix below — once per scorer
|
|
88
|
+
(author + 2 reviewers, see scoring protocol):
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Skill under test: judge-<persona>
|
|
92
|
+
Diff sample id: <pr-number-or-fixture-id>
|
|
93
|
+
Baseline output: <attached or hash>
|
|
94
|
+
Slimmed output: <attached or hash>
|
|
95
|
+
|
|
96
|
+
| Dimension | Score (1–5) | Rationale (≤ 30 words) |
|
|
97
|
+
|----------------------------|-------------|--------------------------------|
|
|
98
|
+
| 1. Tone | | |
|
|
99
|
+
| 2. Vocabulary | | |
|
|
100
|
+
| 3. Prompt-shape preservation | | |
|
|
101
|
+
| 4. Refusal patterns | | |
|
|
102
|
+
| 5. Evidence-citation style | | |
|
|
103
|
+
| **Per-scorer mean** | | (sum / 5, one decimal) |
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Acceptance arithmetic
|
|
107
|
+
|
|
108
|
+
Three independent scorers produce three per-scorer means. The 3a.0.1
|
|
109
|
+
gate fires on **two** thresholds simultaneously:
|
|
110
|
+
|
|
111
|
+
- **Aggregate mean** (all dimensions, all scorers) **≥ 3.5/5** —
|
|
112
|
+
matches the 0.5.1 protocol.
|
|
113
|
+
- **Tone dimension specifically** mean **≥ 4.0/5** — matches the
|
|
114
|
+
3a.0.1 voice-preservation kill-criterion. Tone is the load-bearing
|
|
115
|
+
dimension; vocabulary, prompt-shape, and citation style mostly track
|
|
116
|
+
it.
|
|
117
|
+
|
|
118
|
+
Either threshold missed → escalate to council per 0.5.1 (any
|
|
119
|
+
individual scorer < 3.0 also escalates). Council either revises the
|
|
120
|
+
slim shape (one rework only) or invokes the 3a.0.2 abort branch and
|
|
121
|
+
files `contexts/judges/no-consolidate-rationale.md`.
|
|
122
|
+
|
|
123
|
+
## What this rubric does NOT measure
|
|
124
|
+
|
|
125
|
+
- **Verdict parity** — covered separately by 3a.3 (cosine-token
|
|
126
|
+
similarity ≤ 10% drift, 100% verdict parity).
|
|
127
|
+
- **Latency budget** — covered by 3a.0.1 (≤ +50ms vs. baseline).
|
|
128
|
+
- **Mode-collision proxy** — explicit security-only-diff probe under
|
|
129
|
+
3a.0.1. Failure here aborts 3a regardless of voice score.
|
|
130
|
+
- **Implementation correctness** — judges read diffs, this rubric
|
|
131
|
+
reads judges. The diff under test is a fixture, not the artefact
|
|
132
|
+
graded.
|
|
133
|
+
|
|
134
|
+
## References
|
|
135
|
+
|
|
136
|
+
- [`docs/contracts/context-paths.md`](../../../docs/contracts/context-paths.md)
|
|
137
|
+
— locked path tree (this file lives at `contexts/judges/`).
|
|
138
|
+
- [`docs/contracts/load-context-schema.md`](../../../docs/contracts/load-context-schema.md)
|
|
139
|
+
— frontmatter contract for citing this rubric from a slimmed `judge-*`
|
|
140
|
+
skill in Phase 3a.2.
|
|
@@ -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,8 +1,10 @@
|
|
|
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
|
+
load_context:
|
|
7
|
+
- .agent-src.uncompressed/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
<!-- cloud_safe: noop -->
|
|
@@ -15,11 +17,10 @@ Default-off; opt-in via `.agent-settings.yml`. Zero overhead when disabled.
|
|
|
15
17
|
|
|
16
18
|
The schema, CLI, and storage layer are owned by
|
|
17
19
|
[`scripts/telemetry/`](../../../scripts/telemetry/) and the
|
|
18
|
-
`./agent-config telemetry:record` / `telemetry:status` commands
|
|
19
|
-
|
|
20
|
-
[`
|
|
21
|
-
|
|
22
|
-
structured.
|
|
20
|
+
`./agent-config telemetry:record` / `telemetry:status` commands. The
|
|
21
|
+
recording contract lives in
|
|
22
|
+
[`docs/contracts/artifact-engagement-flow.md`](../../docs/contracts/artifact-engagement-flow.md).
|
|
23
|
+
This rule says **when** to call the CLI, not how the file is structured.
|
|
23
24
|
|
|
24
25
|
## Activation gate — read settings ONCE per task, then cache
|
|
25
26
|
|
|
@@ -60,73 +61,16 @@ consulted three times in the same boundary records once.
|
|
|
60
61
|
When in doubt → record as `consulted` only. Over-recording `applied`
|
|
61
62
|
inflates the engagement signal and defeats the purpose.
|
|
62
63
|
|
|
63
|
-
##
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
--consulted skills:eloquent \
|
|
71
|
-
--consulted rules:scope-control \
|
|
72
|
-
--applied skills:php-coder \
|
|
73
|
-
--applied rules:scope-control
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
- `--task-id` — the ticket key (`PROJ-123`) for `/implement-ticket`, or a
|
|
77
|
-
short opaque slug derived from the prompt for `/work`. **Never** a
|
|
78
|
-
branch name, a file path, or a free-text title.
|
|
79
|
-
- `--boundary` — `task` or `phase-step`, matching the cadence above.
|
|
80
|
-
- `--consulted <kind>:<id>` — repeat per artefact. `<kind>` is one of
|
|
81
|
-
`skills`, `rules`, `commands`, `guidelines`, `personas`.
|
|
82
|
-
- `--applied <kind>:<id>` — repeat per artefact actually applied.
|
|
83
|
-
- Exit `0` always when disabled (silent). Exit `1` on schema validation
|
|
84
|
-
failure (rule must NOT swallow this — surface to the user). Exit `2`
|
|
85
|
-
on IO failure.
|
|
86
|
-
|
|
87
|
-
## Privacy contract — what NEVER goes into a record
|
|
88
|
-
|
|
89
|
-
The CLI rejects most violations on the input boundary, but the agent must
|
|
90
|
-
not even attempt these:
|
|
91
|
-
|
|
92
|
-
- ❌ File paths (`src/Foo.php`, `tests/...`) — id fields are
|
|
93
|
-
artefact identifiers only.
|
|
94
|
-
- ❌ Source code, prompt text, ticket body, AC text.
|
|
95
|
-
- ❌ Branch names, commit shas, PR numbers, URLs.
|
|
96
|
-
- ❌ Secrets, env vars, credentials, customer data.
|
|
97
|
-
- ❌ Free-text strings longer than 200 chars (CLI enforces; agent must
|
|
98
|
-
not generate).
|
|
99
|
-
|
|
100
|
-
When in doubt → **don't record**. A missing event is cheap; a leaked
|
|
101
|
-
prompt is not.
|
|
102
|
-
|
|
103
|
-
## Failure modes — DO NOT block the user's task
|
|
104
|
-
|
|
105
|
-
- Schema rejection (CLI exit `1`) → log the message internally, continue
|
|
106
|
-
the user's task. Do **not** halt the dispatch loop.
|
|
107
|
-
- IO failure (CLI exit `2`) → same. The telemetry is **observation**, not
|
|
108
|
-
a delivery requirement.
|
|
109
|
-
- Settings malformed → already handled by the CLI: it falls back to
|
|
110
|
-
disabled and exits `0`. Agent treats it as "disabled this task".
|
|
111
|
-
|
|
112
|
-
The only error the agent surfaces is when the user explicitly asked for
|
|
113
|
-
recording (`telemetry:status` confirms enabled) but no event reached the
|
|
114
|
-
log — that is a real bug, not a swallowed error.
|
|
115
|
-
|
|
116
|
-
## What this rule does NOT do
|
|
117
|
-
|
|
118
|
-
- Run when `enabled: false` (cost floor is zero — see
|
|
119
|
-
[`tests/telemetry/test_cost_floor.py`](../../../tests/telemetry/test_cost_floor.py)).
|
|
120
|
-
- Track the agent's tool calls, file reads, or token spend — that is
|
|
121
|
-
out of scope, see the roadmap's "out-of-scope" section.
|
|
122
|
-
- Decide retirement. Phase 4's aggregator + report renderer are the only
|
|
123
|
-
consumers that may interpret the JSONL.
|
|
124
|
-
- Run on cloud surfaces (Claude.ai Web, Skills API). The
|
|
125
|
-
`cloud_safe: noop` marker keeps it inert there.
|
|
64
|
+
## Mechanics — CLI invocation, privacy contract, failure handling
|
|
65
|
+
|
|
66
|
+
The exact `telemetry:record` call shape with all flags, the privacy
|
|
67
|
+
contract (what NEVER goes into a record), the failure-mode handling
|
|
68
|
+
(do NOT block the user's task), and the "what this rule does NOT do"
|
|
69
|
+
catalog live in
|
|
70
|
+
[`contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md`](../contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md).
|
|
126
71
|
|
|
127
72
|
## See also
|
|
128
73
|
|
|
129
|
-
- [`road-to-artifact-engagement-telemetry`](../../../agents/roadmaps/road-to-artifact-engagement-telemetry.md) — phase contract
|
|
130
74
|
- [`docs/contracts/artifact-engagement-flow.md`](../../docs/contracts/artifact-engagement-flow.md) — recording contract details
|
|
131
75
|
- [`/implement-ticket`](../commands/implement-ticket.md) and [`/work`](../commands/work.md) — boundary points where this rule fires
|
|
132
76
|
- [`scripts/telemetry/`](../../../scripts/telemetry/) — engine source
|
|
@@ -17,16 +17,13 @@ ONE QUESTION PER TURN. NO EXCEPTIONS.
|
|
|
17
17
|
ASK. WAIT FOR THE ANSWER. THEN ASK THE NEXT.
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Even if they would fit on one screen. Even if batching "feels more
|
|
24
|
-
efficient". Full self-check, ordering, and handoff rules under
|
|
25
|
-
[How to ask](#how-to-ask).
|
|
20
|
+
Absolute. Not a default, not "usually". Every turn with a question
|
|
21
|
+
has **exactly one**. Even if trivial, independent, or batchable.
|
|
22
|
+
Self-check, ordering, handoff under [How to ask](#how-to-ask).
|
|
26
23
|
|
|
27
24
|
## When to ask
|
|
28
25
|
|
|
29
|
-
- Requirement
|
|
26
|
+
- Requirement ambiguous or multi-interpretable
|
|
30
27
|
- Not 100% sure which approach is correct
|
|
31
28
|
- About to touch code you haven't fully understood
|
|
32
29
|
- Choosing between multiple valid approaches
|
|
@@ -34,47 +31,35 @@ efficient". Full self-check, ordering, and handoff rules under
|
|
|
34
31
|
|
|
35
32
|
## Vague-request triggers — MUST ask
|
|
36
33
|
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
These patterns are too vague to execute safely. Match without further
|
|
35
|
+
context → ask **before** touching code:
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
| "handle errors properly" | Which errors? How? Log, retry, propagate? | "For which failure modes, and what should happen on error?" |
|
|
50
|
-
| "add a UI / component / tile / page" when the repo mixes frameworks | Which stack? Tailwind? Flux? Livewire? Custom? | "This repo uses {A} and {B} for UI — which one for this?" |
|
|
37
|
+
- "improve / optimize this" — metric? speed, readability, memory?
|
|
38
|
+
- "add caching" — store? scope? invalidation?
|
|
39
|
+
- "make it better / cleaner" — by what standard?
|
|
40
|
+
- "clean up this file" — dead code? format? refactor?
|
|
41
|
+
- "fix this" (no symptom) — what output is wrong?
|
|
42
|
+
- "refactor X" — target pattern? boundaries?
|
|
43
|
+
- "use best practices" — whose? for what?
|
|
44
|
+
- "handle errors properly" — which errors? log/retry/propagate?
|
|
45
|
+
- "add a UI/component/tile/page" in mixed-framework repo — which stack?
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
Example questions per pattern:
|
|
48
|
+
[`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#vague-request-triggers--example-questions).
|
|
54
49
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
Be specific. Present numbered options (per `user-interaction`). Keep it short.
|
|
50
|
+
**Escape hatch:** if context (ticket, open file, prior turn) makes
|
|
51
|
+
the answer unambiguous, proceed — but state the assumption.
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
This section adds the rationale, self-check, and ordering.
|
|
61
|
-
|
|
62
|
-
The user must never have to track sub-numbers, scroll through stacked
|
|
63
|
-
option blocks, or split their reply across multiple questions. One
|
|
64
|
-
question, numbered options (per `user-interaction`), one short
|
|
65
|
-
answer, next turn.
|
|
53
|
+
## How to ask
|
|
66
54
|
|
|
67
|
-
|
|
55
|
+
Numbered options (per `user-interaction`). Short. The Iron Law is at
|
|
56
|
+
the top; this section adds self-check and ordering.
|
|
68
57
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
| Tool / library selection | Downstream choices branch from it |
|
|
75
|
-
| "Which approach: A vs B vs C" | Each answer opens a different follow-up |
|
|
76
|
-
| Even "independent" yes/no pairs | User still has to parse two contexts |
|
|
77
|
-
| Any question the user has to **think** about, not just pick | Thinking load compounds when stacked |
|
|
58
|
+
The user must never track sub-numbers, scroll stacked option blocks,
|
|
59
|
+
or split a reply across multiple questions. Rationale shorthand: if
|
|
60
|
+
the user has to *think* about an answer, that answer almost always
|
|
61
|
+
reframes the next question. Full rationale:
|
|
62
|
+
[`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#one-question-per-turn--why-serial-always-wins).
|
|
78
63
|
|
|
79
64
|
### Self-check before asking
|
|
80
65
|
|
|
@@ -94,7 +79,7 @@ are related".
|
|
|
94
79
|
- **Session handoff** (`/agent-handoff`, fresh-chat proposal): ask LAST,
|
|
95
80
|
after all domain / clarifying questions — so the user's answers can be
|
|
96
81
|
folded into the handoff prompt. Full rationale in
|
|
97
|
-
[`agent-interaction-and-decision-quality`](
|
|
82
|
+
[`agent-interaction-and-decision-quality`](../../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md#handoff--model-switch-questions).
|
|
98
83
|
- **Model switch**: different phase — [`model-recommendation`](model-recommendation.md)
|
|
99
84
|
triggers at task start with its own STOP-AND-WAIT gate, standalone, not
|
|
100
85
|
appended to a Q&A block. Do not conflate the two.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
type: "auto"
|
|
3
3
|
description: "Editing or creating files inside .augment/ directory — skills, rules, commands, templates, contexts must be project-agnostic"
|
|
4
4
|
source: package
|
|
5
|
+
load_context:
|
|
6
|
+
- .agent-src.uncompressed/contexts/communication/rules-auto/augment-portability-mechanics.md
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
# Package Portability
|
|
@@ -36,76 +38,28 @@ content into any of them pollutes downstream projects or misleads agents.
|
|
|
36
38
|
|
|
37
39
|
## Runtime invocations — no `task` commands
|
|
38
40
|
|
|
39
|
-
Skills, rules, commands, guidelines, personas, and context docs
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
all. A skill that instructs an agent to run `task <something>`
|
|
44
|
-
silently breaks in every project without a `Taskfile.yml`.
|
|
45
|
-
|
|
46
|
-
**Rule:** Never reference a `task <something>` invocation inside any
|
|
47
|
-
artefact file under `.agent-src.uncompressed/{skills,rules,commands,guidelines,personas,contexts}/`
|
|
41
|
+
Skills, rules, commands, guidelines, personas, and context docs run in
|
|
42
|
+
**consumer projects**, which may not have Task installed. **Never**
|
|
43
|
+
reference a `task <something>` invocation inside any artefact file
|
|
44
|
+
under `.agent-src.uncompressed/{skills,rules,commands,guidelines,personas,contexts}/`
|
|
48
45
|
(and therefore also not in the compressed mirror under `.agent-src/`).
|
|
49
|
-
Use
|
|
50
|
-
|
|
51
|
-
| ❌ Forbidden | ✅ Portable |
|
|
52
|
-
|---|---|
|
|
53
|
-
| `task sync` | `bash scripts/compress.sh --sync` |
|
|
54
|
-
| `task sync-check` | `bash scripts/compress.sh --check` |
|
|
55
|
-
| `task sync-check-hashes` | `bash scripts/compress.sh --check-hashes` |
|
|
56
|
-
| `task sync-changed` | `bash scripts/compress.sh --changed` |
|
|
57
|
-
| `task sync-mark-done -- X` | `bash scripts/compress.sh --mark-done X` |
|
|
58
|
-
| `task generate-tools` | `python3 scripts/compress.py --generate-tools` |
|
|
59
|
-
| `task lint-skills` | `python3 scripts/skill_linter.py --all` |
|
|
60
|
-
| `task check-refs` | `python3 scripts/check_references.py` |
|
|
61
|
-
| `task check-portability` | `python3 scripts/check_portability.py` |
|
|
62
|
-
| `task check-compression` | `python3 scripts/check_compression.py` |
|
|
63
|
-
| `task validate-schema` | `python3 scripts/validate_frontmatter.py` |
|
|
64
|
-
| `task counts-check` | `python3 scripts/update_counts.py --check` |
|
|
65
|
-
| `task roadmap-progress` | `./agent-config roadmap:progress` |
|
|
66
|
-
| `task ci` | run each underlying script directly (no single portable equivalent) |
|
|
67
|
-
|
|
68
|
-
Task remains a convenience shortcut for maintainers working on the
|
|
69
|
-
package repo itself — `task ci` is the recommended local gate before
|
|
70
|
-
a PR and lives in `Taskfile.yml`, `AGENTS.md`, and the package README.
|
|
71
|
-
Those maintainer-facing surfaces are outside the scope of this rule.
|
|
72
|
-
Artefact files must assume Task is absent.
|
|
73
|
-
|
|
74
|
-
The detection pattern *"if the consumer has a `Makefile` / build
|
|
75
|
-
script, prefer its targets over raw commands"* is still allowed when
|
|
76
|
-
the skill adapts to the **consumer's own** tooling (e.g.
|
|
77
|
-
`tests-execute` detecting `php artisan test` vs `vendor/bin/pest`).
|
|
78
|
-
It is not allowed to reference `task <name>` as the detected target —
|
|
79
|
-
every direct invocation must resolve to a real script path.
|
|
46
|
+
Use direct script invocations instead.
|
|
80
47
|
|
|
81
48
|
## Consumer CLI — `./agent-config`
|
|
82
49
|
|
|
83
50
|
A subset of package scripts is exposed through a project-local CLI
|
|
84
51
|
wrapper `./agent-config` (written into the project root by the
|
|
85
52
|
installer, gitignored). Artefacts MUST prefer the CLI over raw
|
|
86
|
-
`python3 scripts/…` paths for every command the CLI already covers
|
|
87
|
-
because the raw paths only resolve inside the package repo — in a
|
|
88
|
-
consumer project the scripts live under `node_modules/` or `vendor/`.
|
|
53
|
+
`python3 scripts/…` paths for every command the CLI already covers.
|
|
89
54
|
|
|
90
|
-
|
|
91
|
-
|---|---|
|
|
92
|
-
| `python3 scripts/mcp_render.py` | `./agent-config mcp:render` |
|
|
93
|
-
| `python3 scripts/mcp_render.py --check` | `./agent-config mcp:check` |
|
|
94
|
-
| `python3 .augment/scripts/update_roadmap_progress.py` | `./agent-config roadmap:progress` |
|
|
95
|
-
| `python3 .augment/scripts/update_roadmap_progress.py --check` | `./agent-config roadmap:progress-check` |
|
|
96
|
-
| `bash scripts/first-run.sh` | `./agent-config first-run` |
|
|
97
|
-
| `PYTHONPATH=… python3 -m implement_ticket` | `./agent-config implement-ticket` |
|
|
98
|
-
| `python3 scripts/memory_lookup.py` | `./agent-config memory:lookup` |
|
|
99
|
-
| `python3 scripts/memory_signal.py` | `./agent-config memory:signal` |
|
|
100
|
-
| `python3 scripts/memory_hash.py` | `./agent-config memory:hash` |
|
|
101
|
-
| `python3 scripts/check_memory.py` | `./agent-config memory:check` |
|
|
102
|
-
| `python3 scripts/check_memory_proposal.py` | `./agent-config memory:check-proposal` |
|
|
103
|
-
| `python3 scripts/check_proposal.py` | `./agent-config proposal:check` |
|
|
104
|
-
| `python3 scripts/refine_ticket_detect.py` | `./agent-config refine-ticket:detect` |
|
|
55
|
+
## Translation tables — see mechanics
|
|
105
56
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
57
|
+
The full `task`-to-script translation table, the `./agent-config`
|
|
58
|
+
CLI mapping, and the rationale (Task absence on consumers,
|
|
59
|
+
maintainer-vs-artefact split) all live in
|
|
60
|
+
[`contexts/communication/rules-auto/augment-portability-mechanics.md`](../contexts/communication/rules-auto/augment-portability-mechanics.md).
|
|
61
|
+
Pull it whenever an artefact is about to mention a runtime
|
|
62
|
+
invocation.
|
|
109
63
|
|
|
110
64
|
## Enforcement
|
|
111
65
|
|