@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,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: laravel-reverb
|
|
3
|
+
description: "Use when configuring Laravel Reverb — the first-party WebSocket server with Pusher protocol compatibility, horizontal scaling, and Pulse monitoring."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# laravel-reverb
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use this skill for anything specific to **Laravel Reverb** as the WebSocket server:
|
|
12
|
+
- Reverb installation, configuration, and environment setup
|
|
13
|
+
- Reverb server deployment and scaling
|
|
14
|
+
- Reverb-specific debugging and monitoring
|
|
15
|
+
- Pusher protocol compatibility questions
|
|
16
|
+
|
|
17
|
+
For **general WebSocket patterns**, broadcasting events, channel authorization,
|
|
18
|
+
and Laravel Echo client setup, see the [websocket](../websocket/SKILL.md) skill.
|
|
19
|
+
|
|
20
|
+
## Procedure: Set up Reverb
|
|
21
|
+
|
|
22
|
+
1. **Install** — `php artisan install:broadcasting` or manual setup (see below).
|
|
23
|
+
2. **Configure** — Set environment variables for Reverb host, port, app credentials.
|
|
24
|
+
3. **Start server** — `php artisan reverb:start`.
|
|
25
|
+
4. **Connect client** — Configure Laravel Echo with Reverb credentials.
|
|
26
|
+
5. **Verify** — Confirm WebSocket connection in browser console, test event delivery.
|
|
27
|
+
|
|
28
|
+
Laravel Reverb is Laravel's first-party, blazing-fast WebSocket server. It uses the
|
|
29
|
+
**Pusher protocol**, making it compatible with Laravel Echo and any Pusher-compatible client.
|
|
30
|
+
A single Reverb server can handle thousands of concurrent connections.
|
|
31
|
+
|
|
32
|
+
## Installation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
php artisan install:broadcasting
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This scaffolds:
|
|
39
|
+
- `config/broadcasting.php` with Reverb driver
|
|
40
|
+
- `config/reverb.php` with server settings
|
|
41
|
+
- `routes/channels.php` for channel authorization
|
|
42
|
+
- `.env` variables for Reverb
|
|
43
|
+
|
|
44
|
+
## Configuration
|
|
45
|
+
|
|
46
|
+
### Environment variables
|
|
47
|
+
|
|
48
|
+
```env
|
|
49
|
+
REVERB_APP_ID=455493
|
|
50
|
+
REVERB_APP_KEY=your-app-key
|
|
51
|
+
REVERB_APP_SECRET=your-app-secret
|
|
52
|
+
REVERB_HOST="localhost"
|
|
53
|
+
REVERB_PORT=8080
|
|
54
|
+
REVERB_SCHEME=http
|
|
55
|
+
|
|
56
|
+
# Client-side (Vite)
|
|
57
|
+
VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
|
|
58
|
+
VITE_REVERB_HOST="${REVERB_HOST}"
|
|
59
|
+
VITE_REVERB_PORT="${REVERB_PORT}"
|
|
60
|
+
VITE_REVERB_SCHEME="${REVERB_SCHEME}"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### config/reverb.php
|
|
64
|
+
|
|
65
|
+
Note: `REVERB_HOST` / `REVERB_PORT` are for client connections (hostname/port the client connects to).
|
|
66
|
+
`REVERB_SERVER_HOST` / `REVERB_SERVER_PORT` are for the server binding (interface/port the server listens on).
|
|
67
|
+
|
|
68
|
+
```php
|
|
69
|
+
'servers' => [
|
|
70
|
+
'reverb' => [
|
|
71
|
+
'host' => env('REVERB_SERVER_HOST', '0.0.0.0'),
|
|
72
|
+
'port' => env('REVERB_SERVER_PORT', 8080),
|
|
73
|
+
'hostname' => env('REVERB_HOST'),
|
|
74
|
+
'options' => [
|
|
75
|
+
'tls' => [],
|
|
76
|
+
],
|
|
77
|
+
'max_request_size' => 10_000, // bytes
|
|
78
|
+
'scaling' => [
|
|
79
|
+
'enabled' => env('REVERB_SCALING_ENABLED', false),
|
|
80
|
+
'channel' => env('REVERB_SCALING_CHANNEL', 'reverb'),
|
|
81
|
+
],
|
|
82
|
+
'pulse_ingest_interval' => 15,
|
|
83
|
+
],
|
|
84
|
+
],
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### config/broadcasting.php
|
|
88
|
+
|
|
89
|
+
```php
|
|
90
|
+
'connections' => [
|
|
91
|
+
'reverb' => [
|
|
92
|
+
'driver' => 'reverb',
|
|
93
|
+
'key' => env('REVERB_APP_KEY'),
|
|
94
|
+
'secret' => env('REVERB_APP_SECRET'),
|
|
95
|
+
'app_id' => env('REVERB_APP_ID'),
|
|
96
|
+
'options' => [
|
|
97
|
+
'host' => env('REVERB_HOST'),
|
|
98
|
+
'port' => env('REVERB_PORT', 443),
|
|
99
|
+
'scheme' => env('REVERB_SCHEME', 'https'),
|
|
100
|
+
'useTLS' => env('REVERB_SCHEME', 'https') === 'https',
|
|
101
|
+
],
|
|
102
|
+
],
|
|
103
|
+
],
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Running the server
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Start Reverb (foreground)
|
|
110
|
+
php artisan reverb:start
|
|
111
|
+
|
|
112
|
+
# Start with verbose output (debugging)
|
|
113
|
+
php artisan reverb:start --debug
|
|
114
|
+
|
|
115
|
+
# Production — use Supervisor or systemd
|
|
116
|
+
# Reverb is a long-running process, it must be managed by a process monitor
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Supervisor config (production)
|
|
120
|
+
|
|
121
|
+
```ini
|
|
122
|
+
[program:reverb]
|
|
123
|
+
command=php /path/to/artisan reverb:start
|
|
124
|
+
autostart=true
|
|
125
|
+
autorestart=true
|
|
126
|
+
user=www-data
|
|
127
|
+
redirect_stderr=true
|
|
128
|
+
stdout_logfile=/var/log/reverb.log
|
|
129
|
+
stopwaitsecs=3600
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Horizontal scaling
|
|
133
|
+
|
|
134
|
+
Enable Redis-based scaling to run multiple Reverb instances behind a load balancer:
|
|
135
|
+
|
|
136
|
+
```env
|
|
137
|
+
REVERB_SCALING_ENABLED=true
|
|
138
|
+
REVERB_SCALING_CHANNEL=reverb
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Requires a shared Redis instance accessible by all Reverb servers.
|
|
142
|
+
Connections and channel subscriptions are synced across servers via Redis pub/sub.
|
|
143
|
+
|
|
144
|
+
## Monitoring with Pulse
|
|
145
|
+
|
|
146
|
+
Reverb has built-in Laravel Pulse integration. Add the Reverb Pulse cards:
|
|
147
|
+
|
|
148
|
+
```php
|
|
149
|
+
// In your Pulse dashboard
|
|
150
|
+
<livewire:reverb.connections />
|
|
151
|
+
<livewire:reverb.messages />
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## SSL/TLS in production
|
|
155
|
+
|
|
156
|
+
Reverb itself does **not** handle TLS. Use a reverse proxy (Nginx, Traefik, Caddy)
|
|
157
|
+
to terminate SSL and proxy WebSocket connections to Reverb:
|
|
158
|
+
|
|
159
|
+
```nginx
|
|
160
|
+
location /app {
|
|
161
|
+
proxy_pass http://127.0.0.1:8080;
|
|
162
|
+
proxy_http_version 1.1;
|
|
163
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
164
|
+
proxy_set_header Connection "upgrade";
|
|
165
|
+
proxy_set_header Host $host;
|
|
166
|
+
proxy_read_timeout 60s;
|
|
167
|
+
proxy_send_timeout 60s;
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Core rules
|
|
172
|
+
|
|
173
|
+
- **Reverb is a long-running process** — always use Supervisor/systemd in production.
|
|
174
|
+
- **TLS via reverse proxy** — Reverb doesn't handle SSL directly.
|
|
175
|
+
- **Scale with Redis** — enable `REVERB_SCALING_ENABLED` for multi-server setups.
|
|
176
|
+
- **Monitor with Pulse** — use the built-in Pulse cards for connection/message metrics.
|
|
177
|
+
- **Pusher protocol** — any Pusher-compatible client works (Laravel Echo, pusher-js, etc.).
|
|
178
|
+
- **Max request size** — default 10KB, increase for large payloads if needed.
|
|
179
|
+
|
|
180
|
+
## Output format
|
|
181
|
+
|
|
182
|
+
1. Reverb configuration with server and scaling settings
|
|
183
|
+
2. Broadcasting channel definitions and client integration
|
|
184
|
+
|
|
185
|
+
## Auto-trigger keywords
|
|
186
|
+
|
|
187
|
+
- Reverb
|
|
188
|
+
- reverb:start
|
|
189
|
+
- WebSocket server
|
|
190
|
+
- Reverb scaling
|
|
191
|
+
- Reverb deployment
|
|
192
|
+
- Reverb configuration
|
|
193
|
+
|
|
194
|
+
## Gotcha
|
|
195
|
+
|
|
196
|
+
- Reverb requires a persistent process — it's not compatible with serverless deployments.
|
|
197
|
+
- The model forgets to configure the `REVERB_HOST` and `REVERB_PORT` environment variables.
|
|
198
|
+
- WebSocket connections bypass middleware — don't rely on session auth for channel authorization.
|
|
199
|
+
|
|
200
|
+
## Do NOT
|
|
201
|
+
|
|
202
|
+
- Do NOT expose Reverb directly to the internet without a reverse proxy for TLS.
|
|
203
|
+
- Do NOT run `reverb:start` without a process monitor in production.
|
|
204
|
+
- Do NOT confuse Reverb config with Pusher SaaS — Reverb is self-hosted.
|
|
205
|
+
- Do NOT skip Redis when running multiple Reverb instances.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: laravel-scheduling
|
|
3
|
+
description: "Use when configuring Laravel task scheduling — cron expressions, frequency helpers, overlap prevention, maintenance mode, or output handling."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# laravel-scheduling
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use this skill when scheduling recurring tasks:
|
|
12
|
+
- Artisan command scheduling
|
|
13
|
+
- Job dispatching on a schedule
|
|
14
|
+
- Closure-based scheduled tasks
|
|
15
|
+
- Overlap prevention and maintenance mode handling
|
|
16
|
+
|
|
17
|
+
## Procedure: Create a scheduled task
|
|
18
|
+
|
|
19
|
+
### In routes/console.php (Laravel 11+)
|
|
20
|
+
|
|
21
|
+
```php
|
|
22
|
+
use Illuminate\Support\Facades\Schedule;
|
|
23
|
+
|
|
24
|
+
Schedule::command('reports:generate')->dailyAt('06:00');
|
|
25
|
+
Schedule::command('telescope:prune --hours=48')->daily();
|
|
26
|
+
Schedule::command('queue:prune-batches --hours=48')->daily();
|
|
27
|
+
Schedule::job(new CleanupTemporaryFiles())->hourly();
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Frequency helpers
|
|
31
|
+
|
|
32
|
+
| Method | Schedule |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `->everyMinute()` | Every minute |
|
|
35
|
+
| `->everyFiveMinutes()` | Every 5 minutes |
|
|
36
|
+
| `->everyFifteenMinutes()` | Every 15 minutes |
|
|
37
|
+
| `->hourly()` | Every hour |
|
|
38
|
+
| `->hourlyAt(17)` | Every hour at :17 |
|
|
39
|
+
| `->daily()` | Daily at midnight |
|
|
40
|
+
| `->dailyAt('13:00')` | Daily at 1 PM |
|
|
41
|
+
| `->twiceDaily(1, 13)` | Daily at 1 AM and 1 PM |
|
|
42
|
+
| `->weekly()` | Weekly on Sunday at midnight |
|
|
43
|
+
| `->weeklyOn(1, '8:00')` | Weekly on Monday at 8 AM |
|
|
44
|
+
| `->monthly()` | Monthly on the 1st at midnight |
|
|
45
|
+
| `->monthlyOn(4, '15:00')` | Monthly on the 4th at 3 PM |
|
|
46
|
+
| `->quarterly()` | Quarterly |
|
|
47
|
+
| `->yearly()` | Yearly |
|
|
48
|
+
|
|
49
|
+
### Cron expressions
|
|
50
|
+
|
|
51
|
+
```php
|
|
52
|
+
Schedule::command('reports:generate')->cron('0 6 * * 1-5'); // Weekdays at 6 AM
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Overlap prevention
|
|
56
|
+
|
|
57
|
+
```php
|
|
58
|
+
// Prevent overlapping — skip if previous instance is still running
|
|
59
|
+
Schedule::command('import:customers')->hourly()->withoutOverlapping();
|
|
60
|
+
|
|
61
|
+
// With custom expiration (minutes)
|
|
62
|
+
Schedule::command('import:customers')->hourly()->withoutOverlapping(30);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Conditional scheduling
|
|
66
|
+
|
|
67
|
+
```php
|
|
68
|
+
// Only in production
|
|
69
|
+
Schedule::command('reports:send')->daily()->environments(['production']);
|
|
70
|
+
|
|
71
|
+
// Custom condition
|
|
72
|
+
Schedule::command('sync:data')->hourly()->when(function () {
|
|
73
|
+
return Config::boolean('services.sync.enabled');
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// Skip condition
|
|
77
|
+
Schedule::command('emails:send')->daily()->skip(function () {
|
|
78
|
+
return app()->isDownForMaintenance();
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Output handling
|
|
83
|
+
|
|
84
|
+
```php
|
|
85
|
+
// Log output to file
|
|
86
|
+
Schedule::command('reports:generate')
|
|
87
|
+
->daily()
|
|
88
|
+
->appendOutputTo(storage_path('logs/reports.log'));
|
|
89
|
+
|
|
90
|
+
// Email output on failure
|
|
91
|
+
Schedule::command('import:data')
|
|
92
|
+
->daily()
|
|
93
|
+
->emailOutputOnFailure('admin@example.com');
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Maintenance mode
|
|
97
|
+
|
|
98
|
+
```php
|
|
99
|
+
// Run even during maintenance mode
|
|
100
|
+
Schedule::command('queue:work')->everyMinute()->evenInMaintenanceMode();
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Running the scheduler
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# The scheduler itself runs every minute via system cron
|
|
107
|
+
* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1
|
|
108
|
+
|
|
109
|
+
# Test locally
|
|
110
|
+
php artisan schedule:work # Runs scheduler in foreground
|
|
111
|
+
php artisan schedule:list # Show all scheduled tasks
|
|
112
|
+
php artisan schedule:test # Run a specific task interactively
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Grouped schedules
|
|
116
|
+
|
|
117
|
+
```php
|
|
118
|
+
// routes/console.php — include schedule groups
|
|
119
|
+
Schedule::group('reports.php');
|
|
120
|
+
Schedule::group('imports.php');
|
|
121
|
+
|
|
122
|
+
// routes/console/reports.php
|
|
123
|
+
Schedule::command('reports:daily')->dailyAt('06:00');
|
|
124
|
+
Schedule::command('reports:weekly')->weeklyOn(1, '07:00');
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Core rules
|
|
128
|
+
|
|
129
|
+
- **Always use `withoutOverlapping()`** for long-running tasks.
|
|
130
|
+
- **Use `environments()`** to restrict production-only tasks.
|
|
131
|
+
- **Log output** for debugging — use `appendOutputTo()`.
|
|
132
|
+
- **Group related schedules** in separate files under `routes/console/`.
|
|
133
|
+
- **Monitor failures** — use `emailOutputOnFailure()` or Horizon for queued jobs.
|
|
134
|
+
- **One cron entry** — only `schedule:run` goes in crontab, everything else in Laravel.
|
|
135
|
+
|
|
136
|
+
## Output format
|
|
137
|
+
|
|
138
|
+
1. Schedule definition in console kernel or schedule method
|
|
139
|
+
2. Overlap prevention and maintenance mode configuration
|
|
140
|
+
|
|
141
|
+
## Auto-trigger keywords
|
|
142
|
+
|
|
143
|
+
- schedule
|
|
144
|
+
- cron
|
|
145
|
+
- scheduled task
|
|
146
|
+
- recurring job
|
|
147
|
+
- schedule:run
|
|
148
|
+
- withoutOverlapping
|
|
149
|
+
|
|
150
|
+
### Validate
|
|
151
|
+
|
|
152
|
+
- Verify schedule runs correctly: `php artisan schedule:list` shows the task.
|
|
153
|
+
- Confirm `withoutOverlapping()` is set for long-running tasks.
|
|
154
|
+
- Check that maintenance mode handling is configured if needed (`evenInMaintenanceMode()`).
|
|
155
|
+
|
|
156
|
+
## Gotcha
|
|
157
|
+
|
|
158
|
+
- `withoutOverlapping()` uses cache locks — if the cache is cleared, overlapping can still happen.
|
|
159
|
+
- The model forgets `runInBackground()` for long-running tasks — without it, one task blocks the next.
|
|
160
|
+
- Don't schedule tasks every minute unless absolutely necessary — it wastes server resources.
|
|
161
|
+
|
|
162
|
+
## Do NOT
|
|
163
|
+
|
|
164
|
+
- Do NOT add multiple cron entries — use Laravel's scheduler for everything.
|
|
165
|
+
- Do NOT schedule heavy work directly — dispatch a queued job instead.
|
|
166
|
+
- Do NOT forget `withoutOverlapping()` for tasks that may run longer than their interval.
|
|
167
|
+
- Do NOT hardcode times — use environment-based config when schedules vary per environment.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: laravel-validation
|
|
3
|
+
description: "Use when writing validation — Form Requests, rules, custom rule objects, request-boundary design — even when the user just says 'validate this input' or 'check the request' without naming it."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# laravel-validation
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use when creating FormRequests, validation rules, or custom rule objects.
|
|
12
|
+
|
|
13
|
+
Do NOT use when:
|
|
14
|
+
- Authorization logic only (use `security` skill)
|
|
15
|
+
- API response format (use `api-design` skill)
|
|
16
|
+
|
|
17
|
+
## Procedure: Create a FormRequest
|
|
18
|
+
|
|
19
|
+
### Step 0: Inspect
|
|
20
|
+
|
|
21
|
+
1. Check existing FormRequests — match style, naming, authorization, rule structure.
|
|
22
|
+
2. Check existing custom rules — reuse before creating new ones.
|
|
23
|
+
3. Check API error response format — match it.
|
|
24
|
+
|
|
25
|
+
### Step 1: Create the class
|
|
26
|
+
|
|
27
|
+
1. Name: `{Action}{Entity}Request` — e.g. `CreateProjectRequest`.
|
|
28
|
+
2. Implement `authorize()` using Policies.
|
|
29
|
+
3. Implement `rules()` with array syntax — never pipe-separated.
|
|
30
|
+
4. Use `prepareForValidation()` only when normalization is truly necessary.
|
|
31
|
+
|
|
32
|
+
### Step 2: Rules
|
|
33
|
+
|
|
34
|
+
1. Use Laravel's `Illuminate\Validation\Rules` classes where possible.
|
|
35
|
+
2. Keep rules explicit — prefer clarity over cleverness.
|
|
36
|
+
3. For nested arrays: validate structure AND leaf values.
|
|
37
|
+
4. Extract custom rule objects for complex/reusable logic.
|
|
38
|
+
|
|
39
|
+
### Step 3: Test
|
|
40
|
+
|
|
41
|
+
- Test required fields, invalid formats, boundary conditions, conditional rules.
|
|
42
|
+
- Test authorization where relevant.
|
|
43
|
+
- Use focused tests per validation concern.
|
|
44
|
+
|
|
45
|
+
## Conventions
|
|
46
|
+
|
|
47
|
+
→ See guideline `php/validations.md` for array syntax, route params, property mapping, custom rules.
|
|
48
|
+
|
|
49
|
+
## Output format
|
|
50
|
+
|
|
51
|
+
1. FormRequest class with rules, messages, and authorization
|
|
52
|
+
2. Custom Rule object if validation logic is complex
|
|
53
|
+
|
|
54
|
+
## Gotcha
|
|
55
|
+
|
|
56
|
+
- `required` ≠ not `nullable` — `required` means present, `nullable` means value can be null.
|
|
57
|
+
- Custom Rule objects must return `$fail` callback, not throw exceptions.
|
|
58
|
+
- Don't validate data you already trust (e.g., from a verified internal service).
|
|
59
|
+
|
|
60
|
+
## Do NOT
|
|
61
|
+
|
|
62
|
+
- Do NOT validate in controllers — use FormRequest classes.
|
|
63
|
+
- Do NOT use `$request->all()` — use `$request->validated()`.
|
|
64
|
+
- Do NOT put business logic in validation classes.
|
|
65
|
+
|
|
66
|
+
## Auto-trigger keywords
|
|
67
|
+
|
|
68
|
+
- validation
|
|
69
|
+
- Form Request
|
|
70
|
+
- validation rules
|
|
71
|
+
- custom rule
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learning-to-rule-or-skill
|
|
3
|
+
description: "Use when a repeated learning, mistake, or successful pattern should be turned into a new rule or skill. Also use after completing a task to capture learnings from the work."
|
|
4
|
+
source: project
|
|
5
|
+
execution:
|
|
6
|
+
type: assisted
|
|
7
|
+
handler: internal
|
|
8
|
+
allowed_tools: []
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# learning-to-rule-or-skill
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
Use this skill when:
|
|
16
|
+
|
|
17
|
+
* A repeated mistake appears across multiple tasks
|
|
18
|
+
* A successful pattern should be reused in the future
|
|
19
|
+
* A new constraint or workflow should be captured permanently
|
|
20
|
+
* Reviewing post-task learnings or retrospectives
|
|
21
|
+
* Deciding whether a learning belongs in a rule or a skill
|
|
22
|
+
* After completing a task — reflecting on what worked or caused friction
|
|
23
|
+
|
|
24
|
+
Do not use this skill when:
|
|
25
|
+
|
|
26
|
+
* The learning is one-off and unlikely to repeat
|
|
27
|
+
* The issue is too vague to turn into guidance
|
|
28
|
+
* The content already exists in an equivalent rule or skill
|
|
29
|
+
|
|
30
|
+
## Goal
|
|
31
|
+
|
|
32
|
+
* Turn repeated learnings into reusable project guidance
|
|
33
|
+
* Decide correctly between rule, skill, or update to an existing one
|
|
34
|
+
* Prevent the same mistakes from happening again
|
|
35
|
+
* Keep the system small, clear, and non-duplicative
|
|
36
|
+
|
|
37
|
+
## Preconditions
|
|
38
|
+
|
|
39
|
+
* A concrete learning, mistake, or successful pattern exists
|
|
40
|
+
* The learning can be stated clearly in one or two sentences
|
|
41
|
+
* Existing rules and skills can be checked for overlap
|
|
42
|
+
|
|
43
|
+
## Decision matrix
|
|
44
|
+
|
|
45
|
+
| If the learning is... | Then... | Action |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| An always-true constraint ("never X", "always Y") | **Rule** | Create/update rule |
|
|
48
|
+
| A repeatable workflow with steps and validation | **Skill** | Create/update skill |
|
|
49
|
+
| A coding convention or reference material | **Guideline** | Create/update guideline |
|
|
50
|
+
| Baseline model knowledge or standard tool usage | **Nothing** | Do not create anything |
|
|
51
|
+
| A refinement of existing guidance | **Update** | Extend the existing file |
|
|
52
|
+
|
|
53
|
+
### Decision hints
|
|
54
|
+
|
|
55
|
+
* Same issue appeared at least twice → strongly consider codifying
|
|
56
|
+
* One-off or too narrow → do not create anything yet
|
|
57
|
+
* Standard tool knowledge (jq, docker, git basics) → **Nothing** — the model knows this
|
|
58
|
+
* If unsure between skill and guideline: does it need step-by-step decisions? → Skill. Just conventions? → Guideline
|
|
59
|
+
|
|
60
|
+
## Procedure
|
|
61
|
+
|
|
62
|
+
### 0. Promotion Gate (mandatory)
|
|
63
|
+
|
|
64
|
+
Before proceeding, the learning MUST pass all gates:
|
|
65
|
+
|
|
66
|
+
| Gate | Question |
|
|
67
|
+
|---|---|
|
|
68
|
+
| Repetition | Occurred 2+ times OR clearly generalizable? |
|
|
69
|
+
| Impact | Improves correctness, reliability, or consistency? |
|
|
70
|
+
| Failure pattern | Prevents a real, observed failure? |
|
|
71
|
+
| Non-duplication | No existing rule/skill/guideline covers this? |
|
|
72
|
+
| Scope fit | Fits rule, skill, or guideline? |
|
|
73
|
+
| Minimal | Update existing preferred over creation? |
|
|
74
|
+
|
|
75
|
+
If ANY gate fails → **stop**. Do not create or update anything.
|
|
76
|
+
→ See `capture-learnings` rule for rejection criteria.
|
|
77
|
+
|
|
78
|
+
### 1. State the learning clearly
|
|
79
|
+
|
|
80
|
+
Write as a concrete sentence.
|
|
81
|
+
|
|
82
|
+
Good:
|
|
83
|
+
* Nested triple backticks break copyability in generated markdown
|
|
84
|
+
* Route inspection is more reliable via JSON and jq than text parsing
|
|
85
|
+
|
|
86
|
+
Bad:
|
|
87
|
+
* Markdown is annoying
|
|
88
|
+
* Routing was confusing
|
|
89
|
+
|
|
90
|
+
### 2. Identify the pattern type
|
|
91
|
+
|
|
92
|
+
Classify by type:
|
|
93
|
+
* Constraint
|
|
94
|
+
* Workflow
|
|
95
|
+
* Anti-pattern
|
|
96
|
+
* Quality check
|
|
97
|
+
* Environment-specific convention
|
|
98
|
+
|
|
99
|
+
Tag with feedback category (for tracking/aggregation):
|
|
100
|
+
* `skill-weakness` — skill gave wrong or incomplete guidance
|
|
101
|
+
* `rule-weakness` — rule was too vague or missed a case
|
|
102
|
+
* `routing-issue` — wrong skill was selected
|
|
103
|
+
* `assumption-issue` — agent made bad assumptions
|
|
104
|
+
* `verification-gap` — verification step was missing or weak
|
|
105
|
+
* `optimization-overreach` — optimize command suggested harmful change
|
|
106
|
+
|
|
107
|
+
### 3. Decide the target
|
|
108
|
+
|
|
109
|
+
Choose one:
|
|
110
|
+
* New rule (always-true constraint)
|
|
111
|
+
* Update existing rule
|
|
112
|
+
* New skill (step-by-step workflow)
|
|
113
|
+
* Update existing skill
|
|
114
|
+
* New guideline (coding convention / reference)
|
|
115
|
+
* Update existing guideline
|
|
116
|
+
* **Nothing** (baseline knowledge, standard tool usage, one-off)
|
|
117
|
+
|
|
118
|
+
### 4. Check for overlap
|
|
119
|
+
|
|
120
|
+
* Does a similar rule already exist?
|
|
121
|
+
* Does a similar skill already exist?
|
|
122
|
+
* Would a small update be better than a new file?
|
|
123
|
+
|
|
124
|
+
### 5. Draft the content
|
|
125
|
+
|
|
126
|
+
If rule:
|
|
127
|
+
* Short, durable constraint
|
|
128
|
+
* General, clear, always applicable
|
|
129
|
+
|
|
130
|
+
If skill:
|
|
131
|
+
* Focused workflow
|
|
132
|
+
* Include: When to use, Procedure, Output format, Gotchas, Do NOT
|
|
133
|
+
|
|
134
|
+
### 6. Validate usefulness
|
|
135
|
+
|
|
136
|
+
* Will this improve future outputs?
|
|
137
|
+
* Specific enough to act on?
|
|
138
|
+
* Different from existing guidance?
|
|
139
|
+
* Likely to matter more than once?
|
|
140
|
+
|
|
141
|
+
### 7. Keep only the smallest effective change
|
|
142
|
+
|
|
143
|
+
Prefer:
|
|
144
|
+
* Update over duplicate
|
|
145
|
+
* Small focused skill over broad skill
|
|
146
|
+
* Short rule over long rule
|
|
147
|
+
|
|
148
|
+
### 8. Write the proposal (if scope ≠ nothing)
|
|
149
|
+
|
|
150
|
+
The output of this skill is a **curated proposal** under
|
|
151
|
+
`agents/proposals/<proposal_id>.md`, using the template at
|
|
152
|
+
`.augment/templates/agents/proposal.example.md` (shipped by the
|
|
153
|
+
package). This is the input to the five-stage pipeline
|
|
154
|
+
(capture → classify → propose → gate → upstream); see
|
|
155
|
+
[`self-improvement-pipeline`](../../guidelines/agent-infra/self-improvement-pipeline.md).
|
|
156
|
+
|
|
157
|
+
Mandatory fields the draft MUST fill:
|
|
158
|
+
|
|
159
|
+
* `proposal_id` — stable kebab-case slug, unique in this repo
|
|
160
|
+
* `type` — `rule` | `skill` | `command` | `guideline`
|
|
161
|
+
* `scope` — `project` (stays in `agents/overrides/`) or `package`
|
|
162
|
+
(contributed upstream via `upstream-contribute`)
|
|
163
|
+
* `source_learning` — path to the `agents/learnings/<date>-<slug>.md`
|
|
164
|
+
file this proposal was captured from
|
|
165
|
+
* `evidence` — **at least two independent** references (PR, issue,
|
|
166
|
+
incident, review-comment, test-failure); entries that all resolve
|
|
167
|
+
to the same PR are rejected by the gate
|
|
168
|
+
* `Proposed artefact` (§4) — the full draft body, no `TODO` / `TBD`
|
|
169
|
+
* `Success signal` (§7) — one metric, one baseline, one target, one
|
|
170
|
+
evaluation date
|
|
171
|
+
|
|
172
|
+
Run `python3 scripts/check_proposal.py agents/proposals/<id>.md` (or
|
|
173
|
+
`task check-proposal`) before handing to `upstream-contribute`. The
|
|
174
|
+
script is a hard gate: non-zero exit = the proposal does not move
|
|
175
|
+
to stage `gated`.
|
|
176
|
+
|
|
177
|
+
## Output format
|
|
178
|
+
|
|
179
|
+
For the **decision step** (what this skill prints to the user):
|
|
180
|
+
|
|
181
|
+
1. Learning summary
|
|
182
|
+
2. Decision: rule, skill, update, or no action
|
|
183
|
+
3. Rationale in one to three lines
|
|
184
|
+
4. If decision ≠ "no action": path of the written proposal
|
|
185
|
+
(`agents/proposals/<proposal_id>.md`) and gate status
|
|
186
|
+
(`check_proposal.py` exit 0 = ready for review)
|
|
187
|
+
|
|
188
|
+
The **proposal file itself** follows
|
|
189
|
+
`proposal.example.md` verbatim — all ten sections, YAML frontmatter
|
|
190
|
+
complete, draft body in §4.
|
|
191
|
+
|
|
192
|
+
## Core rules
|
|
193
|
+
|
|
194
|
+
* Capture repeated patterns, not random observations
|
|
195
|
+
* Prefer updating existing guidance over creating duplicates
|
|
196
|
+
* Rules are for durable constraints
|
|
197
|
+
* Skills are for repeatable workflows
|
|
198
|
+
* Keep new guidance as small and focused as possible
|
|
199
|
+
|
|
200
|
+
## Gotchas
|
|
201
|
+
|
|
202
|
+
* Model tends to create new files when a small update is enough
|
|
203
|
+
* Model tends to turn vague frustrations into bad guidance
|
|
204
|
+
* Model may write documentation instead of reusable instructions
|
|
205
|
+
* Over-capturing weak learnings creates noise and reduces quality
|
|
206
|
+
|
|
207
|
+
## Do NOT
|
|
208
|
+
|
|
209
|
+
* Do NOT create a rule or skill for one-off problems
|
|
210
|
+
* Do NOT duplicate existing guidance
|
|
211
|
+
* Do NOT create broad "catch-all" skills
|
|
212
|
+
* Do NOT write vague learnings without a concrete behavioral consequence
|
|
213
|
+
|
|
214
|
+
## Auto-trigger keywords
|
|
215
|
+
|
|
216
|
+
* learning
|
|
217
|
+
* retrospective
|
|
218
|
+
* repeated mistake
|
|
219
|
+
* recurring issue
|
|
220
|
+
* create rule from learning
|
|
221
|
+
* create skill from learning
|
|
222
|
+
* codify this
|
|
223
|
+
* capture this pattern
|
|
224
|
+
* after task
|
|
225
|
+
* what did we learn
|
|
226
|
+
* post-mortem
|
|
227
|
+
|
|
228
|
+
## Anti-patterns
|
|
229
|
+
|
|
230
|
+
* Creating a skill for every minor annoyance
|
|
231
|
+
* Rule that says "be careful" without concrete constraint
|
|
232
|
+
* Skill that duplicates an existing one with slightly different wording
|
|
233
|
+
* Capturing a learning before it has repeated
|
|
234
|
+
|
|
235
|
+
## Examples
|
|
236
|
+
|
|
237
|
+
Learning: "Nested triple backticks broke markdown copyability twice this week."
|
|
238
|
+
Decision: Update existing markdown rule + add markdown-safe skill if none exists.
|
|
239
|
+
|
|
240
|
+
Learning: "Route checks keep failing when done via text parsing."
|
|
241
|
+
Decision: Create focused skill for Laravel route inspection via JSON and jq.
|
|
242
|
+
|
|
243
|
+
Learning: "I forgot to run PHPStan once."
|
|
244
|
+
Decision: No action — one-off, already covered by verify-before-complete rule.
|
|
245
|
+
|
|
246
|
+
## Environment notes
|
|
247
|
+
|
|
248
|
+
Prefer updating existing rule/skill when possible.
|
|
249
|
+
Create new files only when the learning introduces a clearly distinct pattern.
|