@event4u/agent-config 1.9.1
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/README.md +64 -0
- package/.agent-src/commands/agent-handoff.md +64 -0
- package/.agent-src/commands/agent-status.md +83 -0
- package/.agent-src/commands/agents-audit.md +243 -0
- package/.agent-src/commands/agents-cleanup.md +169 -0
- package/.agent-src/commands/agents-prepare.md +137 -0
- package/.agent-src/commands/analyze-reference-repo.md +191 -0
- package/.agent-src/commands/bug-fix.md +181 -0
- package/.agent-src/commands/bug-investigate.md +175 -0
- package/.agent-src/commands/commit.md +121 -0
- package/.agent-src/commands/compress.md +177 -0
- package/.agent-src/commands/config-agent-settings.md +126 -0
- package/.agent-src/commands/context-create.md +167 -0
- package/.agent-src/commands/context-refactor.md +170 -0
- package/.agent-src/commands/copilot-agents-init.md +150 -0
- package/.agent-src/commands/copilot-agents-optimize.md +251 -0
- package/.agent-src/commands/create-pr-description.md +112 -0
- package/.agent-src/commands/create-pr.md +76 -0
- package/.agent-src/commands/do-and-judge.md +114 -0
- package/.agent-src/commands/do-in-steps.md +84 -0
- package/.agent-src/commands/e2e-heal.md +98 -0
- package/.agent-src/commands/e2e-plan.md +85 -0
- package/.agent-src/commands/estimate-ticket.md +80 -0
- package/.agent-src/commands/feature-dev.md +111 -0
- package/.agent-src/commands/feature-explore.md +180 -0
- package/.agent-src/commands/feature-plan.md +288 -0
- package/.agent-src/commands/feature-refactor.md +181 -0
- package/.agent-src/commands/feature-roadmap.md +184 -0
- package/.agent-src/commands/fix-ci.md +48 -0
- package/.agent-src/commands/fix-portability.md +97 -0
- package/.agent-src/commands/fix-pr-bot-comments.md +146 -0
- package/.agent-src/commands/fix-pr-comments.md +58 -0
- package/.agent-src/commands/fix-pr-developer-comments.md +152 -0
- package/.agent-src/commands/fix-references.md +94 -0
- package/.agent-src/commands/fix-seeder.md +146 -0
- package/.agent-src/commands/implement-ticket.md +133 -0
- package/.agent-src/commands/jira-ticket.md +71 -0
- package/.agent-src/commands/judge.md +86 -0
- package/.agent-src/commands/memory-add.md +130 -0
- package/.agent-src/commands/memory-full.md +97 -0
- package/.agent-src/commands/memory-promote.md +144 -0
- package/.agent-src/commands/mode.md +121 -0
- package/.agent-src/commands/module-create.md +132 -0
- package/.agent-src/commands/module-explore.md +157 -0
- package/.agent-src/commands/optimize-agents.md +139 -0
- package/.agent-src/commands/optimize-augmentignore.md +262 -0
- package/.agent-src/commands/optimize-rtk-filters.md +120 -0
- package/.agent-src/commands/optimize-skills.md +121 -0
- package/.agent-src/commands/override-create.md +97 -0
- package/.agent-src/commands/override-manage.md +96 -0
- package/.agent-src/commands/package-reset.md +154 -0
- package/.agent-src/commands/package-test.md +154 -0
- package/.agent-src/commands/prepare-for-review.md +91 -0
- package/.agent-src/commands/project-analyze.md +300 -0
- package/.agent-src/commands/project-health.md +95 -0
- package/.agent-src/commands/propose-memory.md +108 -0
- package/.agent-src/commands/quality-fix.md +106 -0
- package/.agent-src/commands/refine-ticket.md +81 -0
- package/.agent-src/commands/review-changes.md +130 -0
- package/.agent-src/commands/review-routing.md +111 -0
- package/.agent-src/commands/roadmap-create.md +110 -0
- package/.agent-src/commands/roadmap-execute.md +68 -0
- package/.agent-src/commands/rule-compliance-audit.md +139 -0
- package/.agent-src/commands/tests-create.md +73 -0
- package/.agent-src/commands/tests-execute.md +58 -0
- package/.agent-src/commands/threat-model.md +115 -0
- package/.agent-src/commands/update-form-request-messages.md +189 -0
- package/.agent-src/commands/upstream-contribute.md +171 -0
- package/.agent-src/contexts/augment-infrastructure.md +181 -0
- package/.agent-src/contexts/documentation-hierarchy.md +142 -0
- package/.agent-src/contexts/model-recommendations.md +142 -0
- package/.agent-src/contexts/override-system.md +187 -0
- package/.agent-src/contexts/skills-and-commands.md +154 -0
- package/.agent-src/contexts/subagent-configuration.md +62 -0
- package/.agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +110 -0
- package/.agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
- package/.agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
- package/.agent-src/guidelines/agent-infra/engineering-memory-data-format.md +117 -0
- package/.agent-src/guidelines/agent-infra/layered-settings.md +158 -0
- package/.agent-src/guidelines/agent-infra/memory-access.md +121 -0
- package/.agent-src/guidelines/agent-infra/naming.md +69 -0
- package/.agent-src/guidelines/agent-infra/output-patterns.md +117 -0
- package/.agent-src/guidelines/agent-infra/review-routing-data-format.md +144 -0
- package/.agent-src/guidelines/agent-infra/role-contracts.md +211 -0
- package/.agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
- package/.agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
- package/.agent-src/guidelines/agent-infra/self-improvement-pipeline.md +135 -0
- package/.agent-src/guidelines/agent-infra/size-and-scope.md +189 -0
- package/.agent-src/guidelines/agent-infra/tool-integration.md +73 -0
- package/.agent-src/guidelines/docs/readme-size-and-splitting.md +153 -0
- package/.agent-src/guidelines/e2e/playwright.md +363 -0
- package/.agent-src/guidelines/php/api-design.md +115 -0
- package/.agent-src/guidelines/php/artisan-commands.md +81 -0
- package/.agent-src/guidelines/php/blade-ui.md +78 -0
- package/.agent-src/guidelines/php/controllers.md +90 -0
- package/.agent-src/guidelines/php/database.md +111 -0
- package/.agent-src/guidelines/php/eloquent.md +208 -0
- package/.agent-src/guidelines/php/flux.md +80 -0
- package/.agent-src/guidelines/php/general.md +191 -0
- package/.agent-src/guidelines/php/git.md +96 -0
- package/.agent-src/guidelines/php/jobs.md +111 -0
- package/.agent-src/guidelines/php/livewire.md +71 -0
- package/.agent-src/guidelines/php/logging.md +79 -0
- package/.agent-src/guidelines/php/naming.md +89 -0
- package/.agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
- package/.agent-src/guidelines/php/patterns/dtos.md +199 -0
- package/.agent-src/guidelines/php/patterns/events.md +67 -0
- package/.agent-src/guidelines/php/patterns/factory.md +53 -0
- package/.agent-src/guidelines/php/patterns/pipelines.md +66 -0
- package/.agent-src/guidelines/php/patterns/policies.md +66 -0
- package/.agent-src/guidelines/php/patterns/repositories.md +122 -0
- package/.agent-src/guidelines/php/patterns/service-layer.md +64 -0
- package/.agent-src/guidelines/php/patterns/strategy.md +69 -0
- package/.agent-src/guidelines/php/patterns.md +28 -0
- package/.agent-src/guidelines/php/performance.md +92 -0
- package/.agent-src/guidelines/php/resources.md +100 -0
- package/.agent-src/guidelines/php/security.md +110 -0
- package/.agent-src/guidelines/php/sql.md +97 -0
- package/.agent-src/guidelines/php/validations.md +119 -0
- package/.agent-src/guidelines/php/websocket.md +100 -0
- package/.agent-src/personas/README.md +104 -0
- package/.agent-src/personas/ai-agent.md +77 -0
- package/.agent-src/personas/critical-challenger.md +73 -0
- package/.agent-src/personas/developer.md +73 -0
- package/.agent-src/personas/product-owner.md +78 -0
- package/.agent-src/personas/qa.md +67 -0
- package/.agent-src/personas/senior-engineer.md +77 -0
- package/.agent-src/personas/stakeholder.md +78 -0
- package/.agent-src/rules/agent-docs.md +61 -0
- package/.agent-src/rules/analysis-skill-routing.md +48 -0
- package/.agent-src/rules/architecture.md +62 -0
- package/.agent-src/rules/artifact-drafting-protocol.md +73 -0
- package/.agent-src/rules/ask-when-uncertain.md +52 -0
- package/.agent-src/rules/augment-portability.md +38 -0
- package/.agent-src/rules/augment-source-of-truth.md +128 -0
- package/.agent-src/rules/capture-learnings.md +89 -0
- package/.agent-src/rules/cli-output-handling.md +94 -0
- package/.agent-src/rules/commit-conventions.md +64 -0
- package/.agent-src/rules/context-hygiene.md +90 -0
- package/.agent-src/rules/docker-commands.md +55 -0
- package/.agent-src/rules/docs-sync.md +79 -0
- package/.agent-src/rules/downstream-changes.md +70 -0
- package/.agent-src/rules/e2e-testing.md +53 -0
- package/.agent-src/rules/guidelines.md +90 -0
- package/.agent-src/rules/improve-before-implement.md +94 -0
- package/.agent-src/rules/language-and-tone.md +104 -0
- package/.agent-src/rules/laravel-translations.md +48 -0
- package/.agent-src/rules/markdown-safe-codeblocks.md +18 -0
- package/.agent-src/rules/minimal-safe-diff.md +87 -0
- package/.agent-src/rules/missing-tool-handling.md +62 -0
- package/.agent-src/rules/model-recommendation.md +70 -0
- package/.agent-src/rules/package-ci-checks.md +80 -0
- package/.agent-src/rules/php-coding.md +63 -0
- package/.agent-src/rules/preservation-guard.md +29 -0
- package/.agent-src/rules/review-routing-awareness.md +125 -0
- package/.agent-src/rules/reviewer-awareness.md +92 -0
- package/.agent-src/rules/roadmap-progress-sync.md +56 -0
- package/.agent-src/rules/role-mode-adherence.md +54 -0
- package/.agent-src/rules/rule-type-governance.md +46 -0
- package/.agent-src/rules/runtime-safety.md +42 -0
- package/.agent-src/rules/scope-control.md +40 -0
- package/.agent-src/rules/security-sensitive-stop.md +77 -0
- package/.agent-src/rules/size-enforcement.md +29 -0
- package/.agent-src/rules/skill-improvement-trigger.md +58 -0
- package/.agent-src/rules/skill-quality.md +110 -0
- package/.agent-src/rules/slash-commands.md +30 -0
- package/.agent-src/rules/think-before-action.md +91 -0
- package/.agent-src/rules/token-efficiency.md +99 -0
- package/.agent-src/rules/tool-safety.md +36 -0
- package/.agent-src/rules/upstream-proposal.md +76 -0
- package/.agent-src/rules/user-interaction.md +79 -0
- package/.agent-src/rules/verify-before-complete.md +120 -0
- package/.agent-src/scripts/scan-seeder-violations.php +145 -0
- package/.agent-src/scripts/update_roadmap_progress.py +244 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +149 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +234 -0
- package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +197 -0
- package/.agent-src/skills/analysis-skill-router/SKILL.md +134 -0
- package/.agent-src/skills/api-design/SKILL.md +104 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +185 -0
- package/.agent-src/skills/api-testing/SKILL.md +206 -0
- package/.agent-src/skills/artisan-commands/SKILL.md +78 -0
- package/.agent-src/skills/authz-review/SKILL.md +171 -0
- package/.agent-src/skills/aws-infrastructure/SKILL.md +152 -0
- package/.agent-src/skills/blade-ui/SKILL.md +75 -0
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +185 -0
- package/.agent-src/skills/bug-analyzer/SKILL.md +256 -0
- package/.agent-src/skills/check-refs/SKILL.md +72 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +200 -0
- package/.agent-src/skills/code-review/SKILL.md +214 -0
- package/.agent-src/skills/command-routing/SKILL.md +96 -0
- package/.agent-src/skills/command-writing/SKILL.md +143 -0
- package/.agent-src/skills/composer-packages/SKILL.md +172 -0
- package/.agent-src/skills/context-authoring/SKILL.md +157 -0
- package/.agent-src/skills/context-document/SKILL.md +153 -0
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +70 -0
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +220 -0
- package/.agent-src/skills/copilot-config/SKILL.md +203 -0
- package/.agent-src/skills/dashboard-design/SKILL.md +116 -0
- package/.agent-src/skills/data-flow-mapper/SKILL.md +160 -0
- package/.agent-src/skills/database/SKILL.md +91 -0
- package/.agent-src/skills/dependency-upgrade/SKILL.md +204 -0
- package/.agent-src/skills/description-assist/SKILL.md +169 -0
- package/.agent-src/skills/design-review/SKILL.md +228 -0
- package/.agent-src/skills/devcontainer/SKILL.md +121 -0
- package/.agent-src/skills/developer-like-execution/SKILL.md +276 -0
- package/.agent-src/skills/docker/SKILL.md +245 -0
- package/.agent-src/skills/dto-creator/SKILL.md +117 -0
- package/.agent-src/skills/eloquent/SKILL.md +92 -0
- package/.agent-src/skills/eloquent/evals/last-run.json +99 -0
- package/.agent-src/skills/eloquent/evals/triggers.json +16 -0
- package/.agent-src/skills/estimate-ticket/SKILL.md +186 -0
- package/.agent-src/skills/estimate-ticket/evals/output-schema.yml +20 -0
- package/.agent-src/skills/estimate-ticket/evals/triggers.json +18 -0
- package/.agent-src/skills/fe-design/SKILL.md +223 -0
- package/.agent-src/skills/feature-planning/SKILL.md +226 -0
- package/.agent-src/skills/file-editor/SKILL.md +129 -0
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/.agent-src/skills/flux/SKILL.md +64 -0
- package/.agent-src/skills/git-workflow/SKILL.md +102 -0
- package/.agent-src/skills/github-ci/SKILL.md +122 -0
- package/.agent-src/skills/grafana/SKILL.md +168 -0
- package/.agent-src/skills/guideline-writing/SKILL.md +147 -0
- package/.agent-src/skills/jira-integration/SKILL.md +182 -0
- package/.agent-src/skills/jobs-events/SKILL.md +87 -0
- package/.agent-src/skills/judge-bug-hunter/SKILL.md +157 -0
- package/.agent-src/skills/judge-code-quality/SKILL.md +158 -0
- package/.agent-src/skills/judge-security-auditor/SKILL.md +167 -0
- package/.agent-src/skills/judge-test-coverage/SKILL.md +154 -0
- package/.agent-src/skills/laravel/SKILL.md +195 -0
- package/.agent-src/skills/laravel-horizon/SKILL.md +169 -0
- package/.agent-src/skills/laravel-mail/SKILL.md +193 -0
- package/.agent-src/skills/laravel-middleware/SKILL.md +185 -0
- package/.agent-src/skills/laravel-notifications/SKILL.md +168 -0
- package/.agent-src/skills/laravel-pennant/SKILL.md +188 -0
- package/.agent-src/skills/laravel-pulse/SKILL.md +160 -0
- package/.agent-src/skills/laravel-reverb/SKILL.md +205 -0
- package/.agent-src/skills/laravel-scheduling/SKILL.md +167 -0
- package/.agent-src/skills/laravel-validation/SKILL.md +71 -0
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +249 -0
- package/.agent-src/skills/lint-skills/SKILL.md +72 -0
- package/.agent-src/skills/livewire/SKILL.md +79 -0
- package/.agent-src/skills/logging-monitoring/SKILL.md +100 -0
- package/.agent-src/skills/mcp/SKILL.md +193 -0
- package/.agent-src/skills/merge-conflicts/SKILL.md +158 -0
- package/.agent-src/skills/migration-creator/SKILL.md +160 -0
- package/.agent-src/skills/module-management/SKILL.md +154 -0
- package/.agent-src/skills/multi-tenancy/SKILL.md +129 -0
- package/.agent-src/skills/openapi/SKILL.md +154 -0
- package/.agent-src/skills/override-management/SKILL.md +186 -0
- package/.agent-src/skills/performance/SKILL.md +69 -0
- package/.agent-src/skills/performance-analysis/SKILL.md +118 -0
- package/.agent-src/skills/pest-testing/SKILL.md +321 -0
- package/.agent-src/skills/php-coder/SKILL.md +78 -0
- package/.agent-src/skills/php-coder/evals/triggers.json +16 -0
- package/.agent-src/skills/php-debugging/SKILL.md +184 -0
- package/.agent-src/skills/php-service/SKILL.md +96 -0
- package/.agent-src/skills/playwright-testing/SKILL.md +244 -0
- package/.agent-src/skills/project-analysis-core/SKILL.md +138 -0
- package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +130 -0
- package/.agent-src/skills/project-analysis-laravel/SKILL.md +119 -0
- package/.agent-src/skills/project-analysis-nextjs/SKILL.md +123 -0
- package/.agent-src/skills/project-analysis-node-express/SKILL.md +111 -0
- package/.agent-src/skills/project-analysis-react/SKILL.md +119 -0
- package/.agent-src/skills/project-analysis-symfony/SKILL.md +111 -0
- package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +108 -0
- package/.agent-src/skills/project-analyzer/SKILL.md +341 -0
- package/.agent-src/skills/project-docs/SKILL.md +137 -0
- package/.agent-src/skills/quality-tools/SKILL.md +411 -0
- package/.agent-src/skills/readme-reviewer/SKILL.md +187 -0
- package/.agent-src/skills/readme-writing/SKILL.md +142 -0
- package/.agent-src/skills/readme-writing-package/SKILL.md +185 -0
- package/.agent-src/skills/receiving-code-review/SKILL.md +190 -0
- package/.agent-src/skills/refine-ticket/SKILL.md +310 -0
- package/.agent-src/skills/refine-ticket/detection-map.yml +124 -0
- package/.agent-src/skills/refine-ticket/evals/output-schema.yml +16 -0
- package/.agent-src/skills/refine-ticket/evals/triggers.json +16 -0
- package/.agent-src/skills/requesting-code-review/SKILL.md +199 -0
- package/.agent-src/skills/review-routing/SKILL.md +195 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +303 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +184 -0
- package/.agent-src/skills/rule-writing/SKILL.md +148 -0
- package/.agent-src/skills/security/SKILL.md +79 -0
- package/.agent-src/skills/security-audit/SKILL.md +123 -0
- package/.agent-src/skills/sentry-integration/SKILL.md +170 -0
- package/.agent-src/skills/sequential-thinking/SKILL.md +158 -0
- package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +155 -0
- package/.agent-src/skills/skill-management/SKILL.md +121 -0
- package/.agent-src/skills/skill-reviewer/SKILL.md +218 -0
- package/.agent-src/skills/skill-writing/SKILL.md +291 -0
- package/.agent-src/skills/skill-writing/evals/triggers.json +16 -0
- package/.agent-src/skills/sql-writing/SKILL.md +74 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +190 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +244 -0
- package/.agent-src/skills/technical-specification/SKILL.md +185 -0
- package/.agent-src/skills/terraform/SKILL.md +137 -0
- package/.agent-src/skills/terragrunt/SKILL.md +217 -0
- package/.agent-src/skills/test-driven-development/SKILL.md +252 -0
- package/.agent-src/skills/test-performance/SKILL.md +172 -0
- package/.agent-src/skills/threat-modeling/SKILL.md +189 -0
- package/.agent-src/skills/traefik/SKILL.md +319 -0
- package/.agent-src/skills/universal-project-analysis/SKILL.md +179 -0
- package/.agent-src/skills/upstream-contribute/SKILL.md +255 -0
- package/.agent-src/skills/using-git-worktrees/SKILL.md +148 -0
- package/.agent-src/skills/validate-feature-fit/SKILL.md +113 -0
- package/.agent-src/skills/verify-before-complete/SKILL.md +188 -0
- package/.agent-src/skills/websocket/SKILL.md +75 -0
- package/.agent-src/templates/AGENTS.md +146 -0
- package/.agent-src/templates/agent-settings.md +256 -0
- package/.agent-src/templates/agents/.gitattributes.fragment +16 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +138 -0
- package/.agent-src/templates/agents/memory/architecture-decisions.example.yml +95 -0
- package/.agent-src/templates/agents/memory/domain-invariants.example.yml +80 -0
- package/.agent-src/templates/agents/memory/historical-patterns.example.yml +82 -0
- package/.agent-src/templates/agents/memory/incident-learnings.example.yml +113 -0
- package/.agent-src/templates/agents/memory/ownership.example.yml +75 -0
- package/.agent-src/templates/agents/memory/product-rules.example.yml +87 -0
- package/.agent-src/templates/agents/proposal.example.md +143 -0
- package/.agent-src/templates/command.md +84 -0
- package/.agent-src/templates/contexts/auth-model.md +59 -0
- package/.agent-src/templates/contexts/data-sensitivity.md +60 -0
- package/.agent-src/templates/contexts/deployment-order.md +72 -0
- package/.agent-src/templates/contexts/observability.md +64 -0
- package/.agent-src/templates/contexts/tenant-boundaries.md +68 -0
- package/.agent-src/templates/contexts.md +116 -0
- package/.agent-src/templates/copilot-instructions.md +115 -0
- package/.agent-src/templates/features.md +125 -0
- package/.agent-src/templates/github-workflows/memory-hygiene.yml +133 -0
- package/.agent-src/templates/github-workflows/pr-risk-review.yml +123 -0
- package/.agent-src/templates/github-workflows/proposal-drift.yml +118 -0
- package/.agent-src/templates/overrides/command.md +24 -0
- package/.agent-src/templates/overrides/guideline.md +21 -0
- package/.agent-src/templates/overrides/rule.md +19 -0
- package/.agent-src/templates/overrides/skill.md +24 -0
- package/.agent-src/templates/overrides/template.md +21 -0
- package/.agent-src/templates/persona.md +99 -0
- package/.agent-src/templates/roadmaps.md +109 -0
- package/.agent-src/templates/scripts/README.md +195 -0
- package/.agent-src/templates/scripts/check_memory.py +283 -0
- package/.agent-src/templates/scripts/check_memory_proposal.py +180 -0
- package/.agent-src/templates/scripts/historical-bug-patterns.example.yml +84 -0
- package/.agent-src/templates/scripts/implement_ticket/__init__.py +57 -0
- package/.agent-src/templates/scripts/implement_ticket/__main__.py +9 -0
- package/.agent-src/templates/scripts/implement_ticket/cli.py +171 -0
- package/.agent-src/templates/scripts/implement_ticket/delivery_state.py +130 -0
- package/.agent-src/templates/scripts/implement_ticket/dispatcher.py +134 -0
- package/.agent-src/templates/scripts/implement_ticket/persona_policy.py +85 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/__init__.py +49 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/analyze.py +98 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/implement.py +145 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/memory.py +136 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/plan.py +175 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/refine.py +140 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/report.py +195 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/test.py +180 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/verify.py +170 -0
- package/.agent-src/templates/scripts/memory_hash.py +75 -0
- package/.agent-src/templates/scripts/memory_lookup.py +216 -0
- package/.agent-src/templates/scripts/memory_report.py +184 -0
- package/.agent-src/templates/scripts/memory_signal.py +167 -0
- package/.agent-src/templates/scripts/memory_status.py +156 -0
- package/.agent-src/templates/scripts/ownership-map.example.yml +87 -0
- package/.agent-src/templates/scripts/pr-risk-config.example.yml +76 -0
- package/.agent-src/templates/scripts/pr_review_routing.py +340 -0
- package/.agent-src/templates/scripts/pr_risk_review.py +211 -0
- package/.agent-src/templates/skill.md +136 -0
- package/.augment-plugin/marketplace.json +32 -0
- package/.augment-plugin/plugin.json +21 -0
- package/.claude-plugin/marketplace.json +119 -0
- package/AGENTS.md +121 -0
- package/CHANGELOG.md +279 -0
- package/CONTRIBUTING.md +176 -0
- package/LICENSE +21 -0
- package/README.md +357 -0
- package/bin/install.php +38 -0
- package/composer.json +29 -0
- package/config/agent-settings.template.yml +96 -0
- package/config/profiles/balanced.ini +10 -0
- package/config/profiles/full.ini +10 -0
- package/config/profiles/minimal.ini +10 -0
- package/docs/architecture.md +144 -0
- package/docs/customization.md +88 -0
- package/docs/development.md +171 -0
- package/docs/getting-started.md +130 -0
- package/docs/github-topics.md +84 -0
- package/docs/installation.md +376 -0
- package/docs/mcp.md +133 -0
- package/docs/quality.md +98 -0
- package/docs/skills-catalog.md +136 -0
- package/docs/troubleshooting.md +167 -0
- package/llms.txt +130 -0
- package/package.json +31 -0
- package/scripts/audit_skill_descriptions.py +168 -0
- package/scripts/check_compression.py +221 -0
- package/scripts/check_memory.py +341 -0
- package/scripts/check_memory_proposal.py +180 -0
- package/scripts/check_portability.py +320 -0
- package/scripts/check_proposal.py +269 -0
- package/scripts/check_references.py +400 -0
- package/scripts/ci_summary.py +131 -0
- package/scripts/compress.py +671 -0
- package/scripts/compress.sh +18 -0
- package/scripts/first-run.sh +109 -0
- package/scripts/generate_catalog.py +116 -0
- package/scripts/install +151 -0
- package/scripts/install-hooks.sh +29 -0
- package/scripts/install.py +487 -0
- package/scripts/install.sh +637 -0
- package/scripts/install_anthropic_key.sh +101 -0
- package/scripts/inventory_frontmatter.py +164 -0
- package/scripts/lint_marketplace.py +142 -0
- package/scripts/lint_regression.py +232 -0
- package/scripts/mcp_render.py +159 -0
- package/scripts/measure_patterns.py +376 -0
- package/scripts/memory_hash.py +75 -0
- package/scripts/memory_lookup.py +441 -0
- package/scripts/memory_report.py +336 -0
- package/scripts/memory_signal.py +210 -0
- package/scripts/memory_status.py +195 -0
- package/scripts/postinstall.sh +60 -0
- package/scripts/readme_linter.py +580 -0
- package/scripts/refine_ticket_detect.py +623 -0
- package/scripts/requirements-evals.txt +7 -0
- package/scripts/runtime_dispatcher.py +265 -0
- package/scripts/runtime_handler.py +148 -0
- package/scripts/runtime_registry.py +166 -0
- package/scripts/schemas/command.schema.json +32 -0
- package/scripts/schemas/persona.schema.json +42 -0
- package/scripts/schemas/rule.schema.json +28 -0
- package/scripts/schemas/skill.schema.json +73 -0
- package/scripts/setup.sh +230 -0
- package/scripts/setup_eval_venv.sh +58 -0
- package/scripts/skill_linter.py +2175 -0
- package/scripts/skill_trigger_eval.py +651 -0
- package/scripts/tool_registry.py +146 -0
- package/scripts/tools/__init__.py +1 -0
- package/scripts/tools/adapter_errors.py +63 -0
- package/scripts/tools/base_adapter.py +91 -0
- package/scripts/tools/github_adapter.py +128 -0
- package/scripts/tools/jira_adapter.py +115 -0
- package/scripts/update_counts.py +147 -0
- package/scripts/validate_frontmatter.py +424 -0
- package/templates/consumer-settings/README.md +46 -0
- package/templates/consumer-settings/augment-settings.json +12 -0
- package/templates/consumer-settings/claude-settings.json +9 -0
- package/templates/consumer-settings/copilot-settings.json +14 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# agent-interaction-and-decision-quality
|
|
2
|
+
|
|
3
|
+
Improves how the agent asks questions, handles uncertainty, learns from feedback,
|
|
4
|
+
and integrates quality rules into CI.
|
|
5
|
+
|
|
6
|
+
## Core principles
|
|
7
|
+
|
|
8
|
+
- Do not guess when clarification is cheap
|
|
9
|
+
- Do not overwhelm the user with too many complex questions at once
|
|
10
|
+
- Prefer structured decision-making over assumptions
|
|
11
|
+
- Learn from negative feedback and turn it into system improvements
|
|
12
|
+
- Integrate recurring improvements into rules, skills, or CI
|
|
13
|
+
|
|
14
|
+
## 1. Question strategy
|
|
15
|
+
|
|
16
|
+
### Simple decisions
|
|
17
|
+
|
|
18
|
+
If questions are simple binary or small choices — ask multiple at once, numbered clearly:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
1. Use Tailwind or existing styles?
|
|
22
|
+
2. Add tests? (yes/no)
|
|
23
|
+
3. Extend existing component or create new one?
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Complex questions
|
|
27
|
+
|
|
28
|
+
If questions require thinking, context-create, or explanation:
|
|
29
|
+
|
|
30
|
+
- Ask ONE question at a time
|
|
31
|
+
- Wait for answer before continuing
|
|
32
|
+
- Do not bundle multiple complex topics together
|
|
33
|
+
|
|
34
|
+
### Handoff / model-switch questions
|
|
35
|
+
|
|
36
|
+
If a handoff (e.g. model change, deeper analysis) is required:
|
|
37
|
+
|
|
38
|
+
1. First ask all necessary domain questions (step-by-step if complex)
|
|
39
|
+
2. Then ask the handoff question LAST
|
|
40
|
+
|
|
41
|
+
Reason: answers must be available before switching context — avoids incomplete downstream instructions.
|
|
42
|
+
|
|
43
|
+
## 2. No blind implementation
|
|
44
|
+
|
|
45
|
+
Before implementing, analyze what already exists:
|
|
46
|
+
|
|
47
|
+
- Identify used frameworks, libraries, patterns
|
|
48
|
+
- If multiple UI systems exist (e.g. Tailwind, shadcn, custom): ask which one to use
|
|
49
|
+
- Do NOT pick one arbitrarily or start implementation without alignment
|
|
50
|
+
|
|
51
|
+
## 3. Handling unclear requirements
|
|
52
|
+
|
|
53
|
+
If instructions are incomplete:
|
|
54
|
+
|
|
55
|
+
- Do NOT assume missing behavior
|
|
56
|
+
- Do NOT silently decide critical aspects
|
|
57
|
+
- Ask precise clarification questions or output a structured clarification request
|
|
58
|
+
|
|
59
|
+
## 4. Learning from negative feedback
|
|
60
|
+
|
|
61
|
+
If the user complains, says something is wrong, or shows frustration:
|
|
62
|
+
|
|
63
|
+
1. Do NOT ignore or defend blindly
|
|
64
|
+
2. Extract the underlying failure pattern
|
|
65
|
+
3. Convert it into one of:
|
|
66
|
+
- Rule (constraint to prevent recurrence)
|
|
67
|
+
- Skill improvement (better workflow step)
|
|
68
|
+
- Guideline addition (reference convention)
|
|
69
|
+
- Linter check (if recurring and automatable)
|
|
70
|
+
|
|
71
|
+
> Every mistake should improve the system.
|
|
72
|
+
|
|
73
|
+
## 5. CI integration mindset
|
|
74
|
+
|
|
75
|
+
When introducing new quality patterns, consider whether they should be enforced automatically.
|
|
76
|
+
|
|
77
|
+
If unsure, ask:
|
|
78
|
+
- "Should this be enforced via CI?"
|
|
79
|
+
- "Should this be part of the linter?"
|
|
80
|
+
|
|
81
|
+
Prefer consistent enforcement over manual discipline.
|
|
82
|
+
|
|
83
|
+
## 6. Decision transparency
|
|
84
|
+
|
|
85
|
+
When making decisions:
|
|
86
|
+
|
|
87
|
+
- State what you assumed
|
|
88
|
+
- State what alternatives exist
|
|
89
|
+
- State why a decision was made
|
|
90
|
+
- If the decision is important: confirm with the user before proceeding
|
|
91
|
+
|
|
92
|
+
## 7. Efficiency in interaction
|
|
93
|
+
|
|
94
|
+
- Avoid long back-and-forth caused by poor initial questions
|
|
95
|
+
- Avoid rework caused by wrong assumptions
|
|
96
|
+
- Prefer: short clarification early → correct implementation once
|
|
97
|
+
|
|
98
|
+
## Anti-patterns
|
|
99
|
+
|
|
100
|
+
- Asking 5 complex questions at once
|
|
101
|
+
- Mixing clarification and implementation in the same step
|
|
102
|
+
- Doing handoff before collecting required context
|
|
103
|
+
- Blindly choosing frameworks/tools without checking existing usage
|
|
104
|
+
- Ignoring user frustration instead of learning from it
|
|
105
|
+
- Introducing new quality rules without considering CI enforcement
|
|
106
|
+
- Making important decisions silently without stating reasoning
|
|
107
|
+
|
|
108
|
+
## Final principle
|
|
109
|
+
|
|
110
|
+
> Ask better → decide better → build once → improve system continuously
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Break-Glass Usage
|
|
2
|
+
|
|
3
|
+
Guideline for operating the agent under a controlled emergency state —
|
|
4
|
+
when a production incident requires faster stabilization than normal
|
|
5
|
+
verification allows.
|
|
6
|
+
|
|
7
|
+
Break-glass is **a narrowing, not a bypass**. The rules still apply; the
|
|
8
|
+
gate is just smaller. Never decide to "break glass" unilaterally.
|
|
9
|
+
|
|
10
|
+
## When break-glass is justified
|
|
11
|
+
|
|
12
|
+
All of the following must hold:
|
|
13
|
+
|
|
14
|
+
- **Active customer-impacting incident** — data loss, outage, security
|
|
15
|
+
exposure, billing regression. Not "we have a deadline".
|
|
16
|
+
- **Explicit user invocation** — the user says "break-glass" or
|
|
17
|
+
"hotfix, skip the full suite". Ambiguous wording is not enough; ask.
|
|
18
|
+
- **No viable rollback path** that would be faster than the forward fix.
|
|
19
|
+
|
|
20
|
+
Not a break-glass situation:
|
|
21
|
+
|
|
22
|
+
- Friday afternoon and you want to ship a feature.
|
|
23
|
+
- CI is slow and you want to skip tests.
|
|
24
|
+
- You can't reproduce a flaky test locally.
|
|
25
|
+
- A reviewer is asleep and you want to self-approve.
|
|
26
|
+
|
|
27
|
+
## How to invoke
|
|
28
|
+
|
|
29
|
+
The user sets one of:
|
|
30
|
+
|
|
31
|
+
1. **Conversation flag** — says "break-glass: true" or "this is a hotfix".
|
|
32
|
+
2. **PR label** — `break-glass` on the PR (optional; the agent still
|
|
33
|
+
requires explicit invocation in the current turn).
|
|
34
|
+
3. **Commit trailer** — `Break-Glass: <incident-id>` in the commit
|
|
35
|
+
message of the hotfix.
|
|
36
|
+
|
|
37
|
+
The agent confirms: "Entering break-glass — narrowing verification to
|
|
38
|
+
targeted test + smoke check. Follow-up PR required within 24h. Confirm?"
|
|
39
|
+
If the user agrees, proceed. If not, stay in the normal gate.
|
|
40
|
+
|
|
41
|
+
## What narrows
|
|
42
|
+
|
|
43
|
+
| Layer | Normal gate | Break-glass |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| Tests | Targeted + full suite | Targeted only — covering the regression |
|
|
46
|
+
| Quality tools | PHPStan + Rector + ECS | Deferred to follow-up PR |
|
|
47
|
+
| Migrations review | Full dry-run + rollback check | Dry-run only, rollback note mandatory |
|
|
48
|
+
| Code review | ≥ 1 reviewer from required roles | 1 reviewer, can be post-merge |
|
|
49
|
+
| Changelog | Required | Deferred to follow-up PR |
|
|
50
|
+
|
|
51
|
+
Zero tests is **never** acceptable. If the incident fix genuinely cannot
|
|
52
|
+
be tested in the available time, document that explicitly and attach a
|
|
53
|
+
reproducer to the follow-up ticket.
|
|
54
|
+
|
|
55
|
+
## What does NOT narrow
|
|
56
|
+
|
|
57
|
+
These rules stay fully in force, break-glass or not:
|
|
58
|
+
|
|
59
|
+
- [`minimal-safe-diff`](../../rules/minimal-safe-diff.md) — the hotfix is
|
|
60
|
+
still the **smallest** change that stops the bleeding. No drive-by
|
|
61
|
+
cleanups.
|
|
62
|
+
- [`security-sensitive-stop`](../../rules/security-sensitive-stop.md) — a
|
|
63
|
+
security-relevant change still needs the threat-model pass.
|
|
64
|
+
- [`scope-control`](../../rules/scope-control.md) — never mix the
|
|
65
|
+
hotfix with unrelated refactors from another branch.
|
|
66
|
+
- [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — more
|
|
67
|
+
asking, not less, when the blast radius is live.
|
|
68
|
+
|
|
69
|
+
## Required artifacts
|
|
70
|
+
|
|
71
|
+
The hotfix PR must include, in the description:
|
|
72
|
+
|
|
73
|
+
1. **Incident link** — ticket, Sentry issue, or Statuspage entry.
|
|
74
|
+
2. **Skipped validations** — bullet list of what was deferred (e.g.
|
|
75
|
+
"full PHPUnit suite", "PHPStan", "Rector").
|
|
76
|
+
3. **Evidence attached in-PR** — targeted test output, smoke-check log or
|
|
77
|
+
curl response, migration dry-run if applicable.
|
|
78
|
+
4. **Follow-up commitment** — link to the follow-up ticket or PR that
|
|
79
|
+
will run the full gate. Due within 24h.
|
|
80
|
+
|
|
81
|
+
## After the incident
|
|
82
|
+
|
|
83
|
+
Within 24 hours:
|
|
84
|
+
|
|
85
|
+
1. Open the **follow-up PR** — runs the full verification gate against
|
|
86
|
+
the same branch or a rebase onto main.
|
|
87
|
+
2. Write a short **incident note** (2–5 lines) — what failed, what the
|
|
88
|
+
hotfix did, what was deferred. Store in the project's postmortem
|
|
89
|
+
location.
|
|
90
|
+
3. If the incident exposed a recurring failure mode, add an entry to
|
|
91
|
+
`historical-bug-patterns.yml` (see
|
|
92
|
+
[`review-routing-data-format`](review-routing-data-format.md)).
|
|
93
|
+
|
|
94
|
+
## Anti-patterns — reject them
|
|
95
|
+
|
|
96
|
+
- "Break-glass" used as a label for every urgent task — the word stops
|
|
97
|
+
meaning anything.
|
|
98
|
+
- Shipping the hotfix **and** a refactor in the same commit "since the
|
|
99
|
+
file was open".
|
|
100
|
+
- Skipping the follow-up PR because "the hotfix was fine". The gate
|
|
101
|
+
runs once, not zero times.
|
|
102
|
+
- Logging the incident as "false alarm" when the hotfix actually
|
|
103
|
+
changed behavior. If behavior changed, write the note.
|
|
104
|
+
|
|
105
|
+
## See also
|
|
106
|
+
|
|
107
|
+
- [`minimal-safe-diff`](../../rules/minimal-safe-diff.md) — break-glass
|
|
108
|
+
exception section.
|
|
109
|
+
- [`verify-before-complete`](../../rules/verify-before-complete.md) —
|
|
110
|
+
break-glass reduction section.
|
|
111
|
+
- [`security-sensitive-stop`](../../rules/security-sensitive-stop.md).
|
|
112
|
+
- [`review-routing-data-format`](review-routing-data-format.md) —
|
|
113
|
+
where to register newly-discovered failure modes.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Developer Judgment Guideline
|
|
2
|
+
|
|
3
|
+
When the agent should challenge, when it should ask, and when it should just execute.
|
|
4
|
+
|
|
5
|
+
## Decision table
|
|
6
|
+
|
|
7
|
+
| Situation | Agent behavior | Max delay |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| Clear, well-defined request | Execute immediately | 0 |
|
|
10
|
+
| Minor ambiguity | Ask ONE clarifying question | 10s |
|
|
11
|
+
| Request overlaps existing code | Point out existing solution | 15s |
|
|
12
|
+
| Request contradicts architecture | Challenge with evidence, propose alternative | 30s |
|
|
13
|
+
| Request is technically harmful | Warn, propose safe alternative | 30s |
|
|
14
|
+
| User insists after challenge | Execute immediately | 0 |
|
|
15
|
+
| Simple task (config, typo, docs) | Never challenge | 0 |
|
|
16
|
+
|
|
17
|
+
## What makes a good challenge
|
|
18
|
+
|
|
19
|
+
✅ **Good challenge:**
|
|
20
|
+
- References specific files or code
|
|
21
|
+
- Offers a concrete alternative
|
|
22
|
+
- Fits in 2-3 sentences
|
|
23
|
+
- Ends with numbered options
|
|
24
|
+
|
|
25
|
+
❌ **Bad challenge:**
|
|
26
|
+
- Vague ("this might be problematic")
|
|
27
|
+
- No alternative offered
|
|
28
|
+
- Long explanation before the point
|
|
29
|
+
- Blocks work without clear reason
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Good: Existing functionality
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
> ⚠️ `UserService::deactivate()` (app/Services/UserService.php:45) already handles
|
|
37
|
+
> account deactivation with email notification.
|
|
38
|
+
>
|
|
39
|
+
> 1. Extend existing method with the new parameter
|
|
40
|
+
> 2. Create separate method — I'll document the overlap
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Good: Architecture concern
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
> ⚠️ This would create a direct dependency from Module A to Module B's internals.
|
|
47
|
+
> The current pattern uses events for cross-module communication.
|
|
48
|
+
>
|
|
49
|
+
> 1. Use an event instead (follows existing pattern)
|
|
50
|
+
> 2. Add direct dependency (I'll add a note about the coupling)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Bad: Vague concern
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
> I'm not sure this is the best approach. There might be issues with this design.
|
|
57
|
+
> Should I look into alternatives?
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
→ This wastes the user's time. Either have a specific concern or don't raise one.
|
|
61
|
+
|
|
62
|
+
## Integration with rules and skills
|
|
63
|
+
|
|
64
|
+
| Component | Role |
|
|
65
|
+
|---|---|
|
|
66
|
+
| `improve-before-implement` rule | Triggers validation on feature/architecture tasks |
|
|
67
|
+
| `validate-feature-fit` skill | Deep analysis when rule detects potential misfit |
|
|
68
|
+
| `ask-when-uncertain` rule | General uncertainty handling (complementary) |
|
|
69
|
+
| `think-before-action` rule | Analysis-first workflow (complementary) |
|
|
70
|
+
|
|
71
|
+
## The spectrum of judgment
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Silent ────────────────── Challenging ──────────────── Blocking
|
|
75
|
+
↑ ↑ ↑
|
|
76
|
+
Bug fixes Features NEVER
|
|
77
|
+
Config Architecture
|
|
78
|
+
Docs New patterns
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The agent NEVER reaches "Blocking". The right side of the spectrum is
|
|
82
|
+
"Challenge and let the user decide", never "refuse to implement".
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Engineering Memory Data Format
|
|
2
|
+
|
|
3
|
+
Schema and conventions for the four project-local YAML files that
|
|
4
|
+
extend the memory layer beyond `ownership-map` and
|
|
5
|
+
`historical-bug-patterns` (those are covered in
|
|
6
|
+
[`review-routing-data-format`](review-routing-data-format.md)).
|
|
7
|
+
|
|
8
|
+
All four files are **optional** and live in the consumer repository —
|
|
9
|
+
never in package-shipped artifacts. Absence is handled gracefully:
|
|
10
|
+
consulting skills fall through to their generic behaviour.
|
|
11
|
+
|
|
12
|
+
This guideline replaces the *"one guideline per schema"* plan from
|
|
13
|
+
`road-to-engineering-memory.md` with a single consolidated reference,
|
|
14
|
+
matching the existing pattern established by `review-routing-data-format`.
|
|
15
|
+
|
|
16
|
+
## File locations
|
|
17
|
+
|
|
18
|
+
Each schema lives under `agents/memory/<type>/<hash>.yml` (content-addressed,
|
|
19
|
+
merge-safe — see [`road-to-memory-merge-safety.md`](../../../agents/roadmaps/road-to-memory-merge-safety.md))
|
|
20
|
+
**or** in a single `agents/memory/<type>.yml` file for projects that prefer
|
|
21
|
+
one file per type.
|
|
22
|
+
|
|
23
|
+
| Type | Single-file path | Sharded path |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| Domain invariants | `agents/memory/domain-invariants.yml` | `agents/memory/domain-invariants/<hash>.yml` |
|
|
26
|
+
| Architecture decisions | `agents/memory/architecture-decisions.yml` | `agents/memory/architecture-decisions/<hash>.yml` |
|
|
27
|
+
| Incident learnings | `agents/memory/incident-learnings.yml` | `agents/memory/incident-learnings/<hash>.yml` |
|
|
28
|
+
| Product rules | `agents/memory/product-rules.yml` | `agents/memory/product-rules/<hash>.yml` |
|
|
29
|
+
|
|
30
|
+
Choose one layout per type and stick with it. `scripts/check_memory.py`
|
|
31
|
+
warns if both exist for the same type.
|
|
32
|
+
|
|
33
|
+
## Shared frontmatter fields
|
|
34
|
+
|
|
35
|
+
Every entry across all four types MUST carry these keys. The gate
|
|
36
|
+
rejects entries missing any required field.
|
|
37
|
+
|
|
38
|
+
| Key | Required | Type | Notes |
|
|
39
|
+
|---|---|---|---|
|
|
40
|
+
| `id` | yes | kebab-case slug | unique within the type |
|
|
41
|
+
| `status` | yes | `active` \| `deprecated` \| `archived` | lifecycle |
|
|
42
|
+
| `confidence` | yes | `low` \| `medium` \| `high` | reader weights accordingly |
|
|
43
|
+
| `source` | yes | list of URLs / ADR refs | ≥1 entry |
|
|
44
|
+
| `owner` | yes | team slug | who keeps this entry fresh |
|
|
45
|
+
| `last_validated` | yes | ISO date | stale check per type |
|
|
46
|
+
| `review_after_days` | yes | integer | triggers staleness warning |
|
|
47
|
+
|
|
48
|
+
## Type-specific required fields
|
|
49
|
+
|
|
50
|
+
Each file also carries the template-specific body. See the example
|
|
51
|
+
templates for the full shape:
|
|
52
|
+
|
|
53
|
+
- [`domain-invariants.example.yml`](../../templates/agents/memory/domain-invariants.example.yml)
|
|
54
|
+
adds `rule`, `boundary`, `scope.paths`, `violation_contract`.
|
|
55
|
+
- [`architecture-decisions.example.yml`](../../templates/agents/memory/architecture-decisions.example.yml)
|
|
56
|
+
adds `title`, `context`, `decision`, `alternatives_rejected`,
|
|
57
|
+
`trade_offs`, `paths`, `superseded_by`.
|
|
58
|
+
- [`incident-learnings.example.yml`](../../templates/agents/memory/incident-learnings.example.yml)
|
|
59
|
+
adds `pattern`, `trigger_conditions`, `consequence`, `guardrail`,
|
|
60
|
+
`enforcement`, `severity`.
|
|
61
|
+
- [`product-rules.example.yml`](../../templates/agents/memory/product-rules.example.yml)
|
|
62
|
+
adds `rule`, `applies_to`, `enforcement`, `error_contract`, `version`.
|
|
63
|
+
|
|
64
|
+
## Ownership (who writes, who reads)
|
|
65
|
+
|
|
66
|
+
| Type | Writer | Reader (skill/role) | Expiry |
|
|
67
|
+
|---|---|---|---|
|
|
68
|
+
| Domain invariants | senior engineer / architect | `developer-like-execution`, `php-coder`, `laravel` | reviewed at major version bump |
|
|
69
|
+
| Architecture decisions | decision author at ADR time | `feature-plan`, `api-design`, `blast-radius-analyzer` | `deprecated` on reversal; never deleted |
|
|
70
|
+
| Incident learnings | incident commander post-resolution | `Incident` role, `bug-investigate`, `bug-analyzer` | archived when guardrail lands + verified in prod |
|
|
71
|
+
| Product rules | PO or tech lead post-decision | `PO` role, `validate-feature-fit`, `laravel-validation` | version-stamped; old versions archived |
|
|
72
|
+
|
|
73
|
+
## Redaction rules (hard)
|
|
74
|
+
|
|
75
|
+
Enforced by `scripts/check_memory.py`. Reject on match:
|
|
76
|
+
|
|
77
|
+
- **No secrets.** API keys, tokens, credentials, private URLs with
|
|
78
|
+
credentials, internal hostnames that expose infrastructure.
|
|
79
|
+
- **No customer names.** ACME Corp, specific account IDs, domain
|
|
80
|
+
names of real customers. Rephrase to the pattern.
|
|
81
|
+
- **No PII.** Names, emails, phone numbers, IP addresses tied to
|
|
82
|
+
real users. Incident-learnings is tempting here — resist.
|
|
83
|
+
- **No ticket IDs that identify the incident** in
|
|
84
|
+
`incident-learnings.yml`. Link the guardrail PR instead.
|
|
85
|
+
|
|
86
|
+
## Reader contract
|
|
87
|
+
|
|
88
|
+
Consuming skills read an entry and expose its `status` + `confidence`
|
|
89
|
+
to the agent. A `confidence: low` domain invariant informs, it does not
|
|
90
|
+
dictate. A `confidence: high` incident learning blocks the generation
|
|
91
|
+
path if the guardrail is absent.
|
|
92
|
+
|
|
93
|
+
## Staleness
|
|
94
|
+
|
|
95
|
+
`check_memory.py` runs weekly (not per-PR). It reports entries where
|
|
96
|
+
`(today - last_validated) > review_after_days`. Stale entries stay
|
|
97
|
+
active — the report is informational, not a gate.
|
|
98
|
+
|
|
99
|
+
## Anti-patterns
|
|
100
|
+
|
|
101
|
+
- **Do NOT** merge `ownership-map.yml` semantics into these files.
|
|
102
|
+
Ownership is a separate concern; mixing them doubles the staleness
|
|
103
|
+
surface.
|
|
104
|
+
- **Do NOT** generate entries via LLM in bulk. Curated is the point.
|
|
105
|
+
The point of a `confidence: high` entry is human-verified claim,
|
|
106
|
+
not high-volume output.
|
|
107
|
+
- **Do NOT** delete `deprecated` or `archived` entries. History is
|
|
108
|
+
the value of memory; deletion is amnesia.
|
|
109
|
+
- **Do NOT** ship this file pre-populated. Each consumer starts
|
|
110
|
+
empty and fills as decisions and incidents accumulate.
|
|
111
|
+
|
|
112
|
+
## See also
|
|
113
|
+
|
|
114
|
+
- [`road-to-engineering-memory.md`](../../../agents/roadmaps/road-to-engineering-memory.md) — roadmap this guideline implements
|
|
115
|
+
- [`road-to-memory-merge-safety.md`](../../../agents/roadmaps/road-to-memory-merge-safety.md) — why content-addressed files
|
|
116
|
+
- [`review-routing-data-format.md`](review-routing-data-format.md) — sibling format for ownership + bug patterns
|
|
117
|
+
- [`road-to-role-modes.md`](../../../agents/roadmaps/road-to-role-modes.md) — role modes that consume these files
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Layered Settings
|
|
2
|
+
|
|
3
|
+
Two-file settings model: **team defaults** (committed) and
|
|
4
|
+
**developer overrides** (git-ignored). Lets a project pin decisions
|
|
5
|
+
without forcing every developer to work the same way.
|
|
6
|
+
|
|
7
|
+
Referenced by `road-to-project-memory.md` Phase 0. Consumed by the
|
|
8
|
+
`config-agent-settings` command and the settings loader.
|
|
9
|
+
|
|
10
|
+
## The two files
|
|
11
|
+
|
|
12
|
+
| File | Git | Scope | Owner | Example values |
|
|
13
|
+
|---|---|---|---|---|
|
|
14
|
+
| `.agent-project-settings.yml` | **committed** | team / repo | lead maintainer | `project.stack`, `quality.php.tools`, `memory.dogfood` |
|
|
15
|
+
| `.agent-settings.yml` | **gitignored** | developer workstation | individual | `personal.ide`, `personal.user_name`, `subagents.max_parallel` |
|
|
16
|
+
|
|
17
|
+
Both are YAML. Schema is documented in
|
|
18
|
+
[`agent-settings.md`](../../templates/agent-settings.md) (dev layer)
|
|
19
|
+
and [`agent-project-settings.example.yml`](../../templates/agents/agent-project-settings.example.yml)
|
|
20
|
+
(team layer).
|
|
21
|
+
|
|
22
|
+
## Merge order
|
|
23
|
+
|
|
24
|
+
Lowest priority → highest priority:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
1. Package defaults (shipped by event4u/agent-config)
|
|
28
|
+
2. .agent-project-settings.yml (team file, committed)
|
|
29
|
+
3. .agent-settings.yml (developer file, gitignored)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Keys from higher layers win unless the lower layer marks them
|
|
33
|
+
`locked`. Locked keys cannot be shadowed by a higher layer.
|
|
34
|
+
|
|
35
|
+
## Lock semantics
|
|
36
|
+
|
|
37
|
+
`.agent-project-settings.yml` has a top-level `locked_keys` list.
|
|
38
|
+
Any key listed there cannot be overridden from `.agent-settings.yml`:
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
# .agent-project-settings.yml
|
|
42
|
+
quality:
|
|
43
|
+
php:
|
|
44
|
+
tools: [phpstan, rector, ecs]
|
|
45
|
+
|
|
46
|
+
locked_keys:
|
|
47
|
+
- quality.php.tools
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Even if a developer's `.agent-settings.yml` sets
|
|
51
|
+
`quality.php.tools: [pint]`, the resolved value stays
|
|
52
|
+
`[phpstan, rector, ecs]`. The loader emits a one-line warning
|
|
53
|
+
when it ignores a locked override.
|
|
54
|
+
|
|
55
|
+
### When to lock
|
|
56
|
+
|
|
57
|
+
- **Correctness** — test framework, database driver, seeder ordering.
|
|
58
|
+
- **Compliance** — code style enforced by CI.
|
|
59
|
+
- **Team-wide rituals** — mandatory pre-commit checks.
|
|
60
|
+
|
|
61
|
+
### When NOT to lock
|
|
62
|
+
|
|
63
|
+
- Personal preferences — IDE, output verbosity, name.
|
|
64
|
+
- Performance knobs the developer should tune to their hardware.
|
|
65
|
+
- Anything that slows down onboarding without a correctness payoff.
|
|
66
|
+
|
|
67
|
+
Err on the side of **not** locking. Every locked key reduces
|
|
68
|
+
autonomy. Unlock by removing the entry from `locked_keys` — no
|
|
69
|
+
migration needed.
|
|
70
|
+
|
|
71
|
+
## Migration from a single file
|
|
72
|
+
|
|
73
|
+
Repos that currently ship only `.agent-settings.yml` (often
|
|
74
|
+
mistakenly committed) migrate by:
|
|
75
|
+
|
|
76
|
+
1. Create `.agent-project-settings.yml` from the example template.
|
|
77
|
+
2. Move team-wide keys (`project.*`, `quality.*`, `memory.*`,
|
|
78
|
+
`review_routing.*`, `roles.*`) into the new file.
|
|
79
|
+
3. Leave personal keys (`personal.*`, `subagents.*`, `github.*`)
|
|
80
|
+
in `.agent-settings.yml`.
|
|
81
|
+
4. Commit `.agent-project-settings.yml`.
|
|
82
|
+
5. Confirm `.agent-settings.yml` is in `.gitignore`; add it if not.
|
|
83
|
+
6. Remove any previously-committed `.agent-settings.yml` from the
|
|
84
|
+
repo history only if it leaked personal tokens. Otherwise leave
|
|
85
|
+
it — future commits supersede.
|
|
86
|
+
|
|
87
|
+
The `config-agent-settings` command performs steps 1–3 and 5
|
|
88
|
+
automatically when it detects a one-file setup.
|
|
89
|
+
|
|
90
|
+
## .gitignore expectations
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
# .gitignore
|
|
94
|
+
.agent-settings.yml # developer-local, NEVER committed
|
|
95
|
+
.agent-settings.backup.* # migration backups
|
|
96
|
+
!.agent-project-settings.yml # explicitly NOT ignored
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The final negated entry protects the team file if a broader
|
|
100
|
+
pattern (e.g. `*.yml` in a nested folder) would otherwise match.
|
|
101
|
+
|
|
102
|
+
## Consumption
|
|
103
|
+
|
|
104
|
+
- **Skills** read settings via the loader, never by parsing YAML
|
|
105
|
+
directly. The loader returns the merged view already.
|
|
106
|
+
- **Commands** that mutate settings must state which layer they
|
|
107
|
+
write to. Writing to the wrong layer is a spec bug.
|
|
108
|
+
- **`config-agent-settings`** is the single writer for both files.
|
|
109
|
+
Other commands MUST delegate — no ad-hoc YAML edits.
|
|
110
|
+
|
|
111
|
+
## Persona-list merge semantics
|
|
112
|
+
|
|
113
|
+
Persona configuration does **not** follow the simple "higher layer
|
|
114
|
+
wins" rule — lists merge with explicit override and ignore hooks.
|
|
115
|
+
|
|
116
|
+
| Key | Layer | Role |
|
|
117
|
+
|---|---|---|
|
|
118
|
+
| `personas.default` | project | Team default cast (list of ids) |
|
|
119
|
+
| `personas.specialists.auto_include` | project | Specialists auto-added on every multi-lens run |
|
|
120
|
+
| `personas.override` | developer | Full replacement of `personas.default` for this developer (empty = inherit) |
|
|
121
|
+
| `personas.ignore` | developer | Ids dropped from the effective cast |
|
|
122
|
+
| `.augmentignore` | workstation | Persona files physically hidden from the agent |
|
|
123
|
+
|
|
124
|
+
**Resolution order** for the effective cast of a multi-lens skill:
|
|
125
|
+
|
|
126
|
+
1. Start with `personas.default` from the project file.
|
|
127
|
+
2. If `personas.override` is non-empty, **replace** the list (not merge).
|
|
128
|
+
3. Add every id from `personas.specialists.auto_include`.
|
|
129
|
+
4. Remove every id from `personas.ignore`.
|
|
130
|
+
5. Remove every id whose file is matched by `.augmentignore`.
|
|
131
|
+
6. If the skill's own frontmatter pins `personas: [...]`, that wins
|
|
132
|
+
over all of the above — the skill is the authority for its own
|
|
133
|
+
cast.
|
|
134
|
+
|
|
135
|
+
An id removed in step 4 or 5 stays **invokable** via explicit
|
|
136
|
+
`--personas=<id>` on the skill invocation. Ignore hides the id from
|
|
137
|
+
the default cast; it does not blacklist it.
|
|
138
|
+
|
|
139
|
+
If the project locks `personas.default` via `locked_keys`, steps 2
|
|
140
|
+
and 4 are ignored with a one-line warning — the developer cannot
|
|
141
|
+
narrow a team-locked cast.
|
|
142
|
+
|
|
143
|
+
## Anti-patterns
|
|
144
|
+
|
|
145
|
+
- **Do NOT** commit `.agent-settings.yml`. It contains developer
|
|
146
|
+
identity and potentially secrets.
|
|
147
|
+
- **Do NOT** put personal preferences in `.agent-project-settings.yml`.
|
|
148
|
+
The team file is not a place to publish your IDE choice.
|
|
149
|
+
- **Do NOT** lock every key "just to be safe". Locking is an
|
|
150
|
+
intervention, not a default.
|
|
151
|
+
- **Do NOT** merge settings in skill code. The loader owns the
|
|
152
|
+
merge; duplicating it creates drift.
|
|
153
|
+
|
|
154
|
+
## See also
|
|
155
|
+
|
|
156
|
+
- [`agent-settings.md`](../../templates/agent-settings.md) — dev-layer schema
|
|
157
|
+
- [`agent-project-settings.example.yml`](../../templates/agents/agent-project-settings.example.yml) — team-layer template
|
|
158
|
+
- [`road-to-project-memory.md`](../../../agents/roadmaps/road-to-project-memory.md) — roadmap this guideline implements
|