@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,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-flow-mapper
|
|
3
|
+
description: "Use BEFORE editing code that touches user data — traces the value from entry → validation → transformation → storage → egress, every hop cited with file:line."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# data-flow-mapper
|
|
8
|
+
|
|
9
|
+
> You are an analyst specialized in **static data-flow mapping**.
|
|
10
|
+
> Your only job is to trace how a specific piece of data moves through the
|
|
11
|
+
> system — from the point it enters (request, webhook, queue, import) to the
|
|
12
|
+
> point it leaves (DB column, API response, log line, external call) — and
|
|
13
|
+
> cite every hop with a concrete file and line. You do **not** review diffs,
|
|
14
|
+
> you do **not** propose fixes, you do **not** implement anything — sibling
|
|
15
|
+
> skills handle those.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
* Before editing code that reads, transforms, or persists user-supplied data
|
|
20
|
+
* Before touching authorization, tenant scoping, or multi-step imports
|
|
21
|
+
* When a bug report describes corrupted, leaked, or mis-scoped data and the
|
|
22
|
+
root cause is unknown
|
|
23
|
+
* When `threat-modeling` or `authz-review` needs a concrete trace of one asset
|
|
24
|
+
|
|
25
|
+
Do NOT use when:
|
|
26
|
+
|
|
27
|
+
* No data crosses a trust boundary — skip entirely
|
|
28
|
+
* You need to enumerate abuse cases — route to
|
|
29
|
+
[`threat-modeling`](../threat-modeling/SKILL.md)
|
|
30
|
+
* You need end-to-end access-control analysis — route to
|
|
31
|
+
[`authz-review`](../authz-review/SKILL.md)
|
|
32
|
+
* You need impact analysis of a change across jobs, events, migrations —
|
|
33
|
+
route to [`blast-radius-analyzer`](../blast-radius-analyzer/SKILL.md)
|
|
34
|
+
* You need to reproduce a bug interactively — route to
|
|
35
|
+
[`systematic-debugging`](../systematic-debugging/SKILL.md)
|
|
36
|
+
|
|
37
|
+
## Procedure
|
|
38
|
+
|
|
39
|
+
### 1. Pin the data element
|
|
40
|
+
|
|
41
|
+
Name the exact field or object under analysis — e.g. *"order.total_cents from
|
|
42
|
+
create-order request through to the invoice email"*. If the scope is unclear,
|
|
43
|
+
stop and ask. Never map an imagined flow.
|
|
44
|
+
|
|
45
|
+
### 2. Identify entry and egress
|
|
46
|
+
|
|
47
|
+
List every entry point that can introduce the element (route body, webhook
|
|
48
|
+
payload, queue job, CSV import, seeded fixture) and every egress (DB column,
|
|
49
|
+
API response, log channel, external service call, derived record). Cite files.
|
|
50
|
+
|
|
51
|
+
### 3. Inspect each hop
|
|
52
|
+
|
|
53
|
+
Trace a single path end-to-end and record each hop in order:
|
|
54
|
+
|
|
55
|
+
| Hop | What to record |
|
|
56
|
+
|---|---|
|
|
57
|
+
| Source | How the value arrives (param, header, cookie, body, message body) |
|
|
58
|
+
| Validation | Rule set applied; file:line |
|
|
59
|
+
| Normalization | Casting, trimming, canonicalization; file:line |
|
|
60
|
+
| Authorization | Which policy/scope gates this hop; file:line |
|
|
61
|
+
| Transformation | Business logic that derives or mutates it; file:line |
|
|
62
|
+
| Persistence | Table.column or cache key; type + nullable |
|
|
63
|
+
| Retrieval | Query path; scopes applied on read |
|
|
64
|
+
| Egress | Response field, log line, external call; filter/mask applied |
|
|
65
|
+
|
|
66
|
+
If the path forks (e.g. async job takes over after request), document each
|
|
67
|
+
branch as its own trace.
|
|
68
|
+
|
|
69
|
+
### 4. Analyze invariants and gaps
|
|
70
|
+
|
|
71
|
+
For every hop, name:
|
|
72
|
+
|
|
73
|
+
- Type expected vs type actually carried
|
|
74
|
+
- Trust level (untrusted at entry → trusted after which step?)
|
|
75
|
+
- Silent transformations (type juggling, encoding changes, locale coercion)
|
|
76
|
+
- Missing hops (no validation? no scope on retrieval? no masking on egress?)
|
|
77
|
+
|
|
78
|
+
## Validation
|
|
79
|
+
|
|
80
|
+
Before finalizing the map, confirm:
|
|
81
|
+
|
|
82
|
+
1. Every hop has a file:line citation — no generic "then it goes to the service"
|
|
83
|
+
2. The trace starts at a real entry and ends at a real egress (not in the middle)
|
|
84
|
+
3. Type and nullability are stated at persistence and at egress
|
|
85
|
+
4. Every fork in the path is either traced or explicitly marked out of scope
|
|
86
|
+
5. You have NOT inferred flow from naming alone — every link is verified by reading code
|
|
87
|
+
6. You have NOT produced a generic architecture diagram; this is a specific trace
|
|
88
|
+
|
|
89
|
+
## Output format
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Skill: data-flow-mapper
|
|
93
|
+
Target: <data element — one line>
|
|
94
|
+
|
|
95
|
+
Entries:
|
|
96
|
+
- <METHOD /route or job/event name> (file:line)
|
|
97
|
+
Egresses:
|
|
98
|
+
- <response field / column / log / external> (file:line)
|
|
99
|
+
|
|
100
|
+
Trace (entry → egress):
|
|
101
|
+
1. <hop name> (file:line) type: <T> trust: <untrusted|validated|normalized|authorized>
|
|
102
|
+
2. ...
|
|
103
|
+
N. <egress> (file:line) filter: <what is stripped/masked or "none">
|
|
104
|
+
|
|
105
|
+
Forks:
|
|
106
|
+
- <branch condition> → see Trace 2 below
|
|
107
|
+
Trace 2: ...
|
|
108
|
+
|
|
109
|
+
Invariants / gaps:
|
|
110
|
+
⚠️ <hop>: <what is silently coerced or missing> (file:line)
|
|
111
|
+
⚠️ ...
|
|
112
|
+
|
|
113
|
+
Open questions:
|
|
114
|
+
- <anything that could not be determined from static reading>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Required fields (ordered):
|
|
118
|
+
|
|
119
|
+
1. **Skill** and **Target** — one-line data-element summary
|
|
120
|
+
2. **Entries** and **Egresses** — every point with file:line
|
|
121
|
+
3. **Trace** — ordered hops, each with file:line, type, trust state
|
|
122
|
+
4. **Forks** — any branching paths, either traced or marked out of scope
|
|
123
|
+
5. **Invariants / gaps** — silent coercions and missing hops with file:line
|
|
124
|
+
6. **Open questions** — anything unresolved by static reading
|
|
125
|
+
|
|
126
|
+
Runtime confirmation (e.g. *"actually POST a request and log the payload"*,
|
|
127
|
+
*"query the DB to see the stored shape"*) is a follow-up for the implementer —
|
|
128
|
+
**this skill does not execute requests, run queries, or read live data**.
|
|
129
|
+
|
|
130
|
+
## Gotcha
|
|
131
|
+
|
|
132
|
+
* **Naming-based inference** — a method called `sanitize()` may not actually
|
|
133
|
+
sanitize. Read the body, don't trust the name.
|
|
134
|
+
* **Missing fork** — the request path writes to DB; a job reads it and emails
|
|
135
|
+
it. If you stop at persistence you missed half the trace.
|
|
136
|
+
* **Silent type coercion** — framework middleware often casts strings to
|
|
137
|
+
ints or trims whitespace. Mark these as explicit hops.
|
|
138
|
+
* **Confusing validation with authorization** — a FormRequest-style validator
|
|
139
|
+
is a validation hop, not an authorization hop. They are distinct.
|
|
140
|
+
* **Tenancy scope on retrieval** — the write path was tenant-scoped; the read
|
|
141
|
+
path joined on a global table and leaked. Check both directions.
|
|
142
|
+
* **Stating the map without line numbers** — a hop without file:line is a
|
|
143
|
+
guess. Reject your own output if any citation is missing.
|
|
144
|
+
|
|
145
|
+
## Do NOT
|
|
146
|
+
|
|
147
|
+
* NEVER return `clean` out of politeness when hops are undocumented — mark them `❌ unresolved`
|
|
148
|
+
* NEVER silently fall back to an architecture-level description when asked for a specific-element trace
|
|
149
|
+
* NEVER claim a hop exists based on naming without reading the code
|
|
150
|
+
* NEVER merge multiple entry points into one trace — each entry gets its own trace or an explicit "same path from step N" note
|
|
151
|
+
|
|
152
|
+
## References
|
|
153
|
+
|
|
154
|
+
- **OWASP ASVS v4.0.3 V5** — Validation, Sanitization and Encoding — baseline
|
|
155
|
+
for naming validation / normalization hops.
|
|
156
|
+
[owasp.org/www-project-application-security-verification-standard/](https://owasp.org/www-project-application-security-verification-standard/)
|
|
157
|
+
- [`threat-modeling`](../threat-modeling/SKILL.md),
|
|
158
|
+
[`authz-review`](../authz-review/SKILL.md),
|
|
159
|
+
[`blast-radius-analyzer`](../blast-radius-analyzer/SKILL.md),
|
|
160
|
+
[`systematic-debugging`](../systematic-debugging/SKILL.md) — sibling analysis skills.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: database
|
|
3
|
+
description: "Use when working with database architecture, MariaDB/MySQL tuning, indexing strategies, slow queries, or multi-connection patterns — even when the user just says 'this query is slow'."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# database
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use when designing schemas, optimizing queries, adding indexes, or troubleshooting database performance.
|
|
12
|
+
|
|
13
|
+
Do NOT use when:
|
|
14
|
+
- Writing Eloquent models (use `eloquent` skill)
|
|
15
|
+
- Creating migrations only (use `migration-creator` skill)
|
|
16
|
+
|
|
17
|
+
## Procedure: Optimize a query
|
|
18
|
+
|
|
19
|
+
### Step 0: Inspect
|
|
20
|
+
|
|
21
|
+
1. Read project docs in `agents/docs/` for database architecture.
|
|
22
|
+
2. Check `config/database.php` for connection definitions.
|
|
23
|
+
3. Detect engine: check `.env` driver and `docker-compose.yml`.
|
|
24
|
+
|
|
25
|
+
### Step 1: Diagnose
|
|
26
|
+
|
|
27
|
+
Run `EXPLAIN` / `EXPLAIN ANALYZE`:
|
|
28
|
+
|
|
29
|
+
```sql
|
|
30
|
+
EXPLAIN ANALYZE SELECT * FROM projects WHERE customer_id = 42 AND status = 'active';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Check for: full table scans (`type=ALL`), missing indexes (`key=NULL`), filesort, temporary tables.
|
|
34
|
+
|
|
35
|
+
### Step 2: Fix
|
|
36
|
+
|
|
37
|
+
- Add missing indexes (most selective column first in composites)
|
|
38
|
+
- Rewrite anti-patterns (subquery → JOIN, `OFFSET` → cursor, `SELECT *` → specific columns)
|
|
39
|
+
- Add eager loading for N+1 queries
|
|
40
|
+
- Always paginate list endpoints
|
|
41
|
+
|
|
42
|
+
### Step 3: Verify
|
|
43
|
+
|
|
44
|
+
Re-run `EXPLAIN` and confirm improved plan.
|
|
45
|
+
|
|
46
|
+
## Schema awareness (anti-hallucination)
|
|
47
|
+
|
|
48
|
+
**Never guess table or column names.** Verify before writing queries/migrations:
|
|
49
|
+
|
|
50
|
+
1. **Read migrations** — source of truth
|
|
51
|
+
2. **Read models** — `$table`, `$connection`, `$fillable`, `$casts`, relationships
|
|
52
|
+
3. **Run schema queries** — `php artisan tinker --execute="Schema::getColumnListing('table')"`
|
|
53
|
+
4. **Check project docs** — `agents/docs/` for conventions
|
|
54
|
+
|
|
55
|
+
| Trap | Reality |
|
|
56
|
+
|---|---|
|
|
57
|
+
| Assuming column exists | Check migration/model first |
|
|
58
|
+
| Wrong table prefix | Customer tables may have prefixes |
|
|
59
|
+
| Wrong connection | `api_database` vs `customer_database` — verify |
|
|
60
|
+
| Inventing pivot tables | Check if they actually exist |
|
|
61
|
+
|
|
62
|
+
## Conventions
|
|
63
|
+
|
|
64
|
+
→ See guideline `php/database.md` for indexing, transactions, migrations, multi-connection patterns.
|
|
65
|
+
|
|
66
|
+
## Output format
|
|
67
|
+
|
|
68
|
+
1. Migration file or query change with EXPLAIN analysis
|
|
69
|
+
2. Index recommendations with rationale
|
|
70
|
+
|
|
71
|
+
## Gotcha
|
|
72
|
+
|
|
73
|
+
- Check existing indexes before adding — duplicates waste write performance.
|
|
74
|
+
- Consider multi-tenant implications — queries may need customer DB scoping.
|
|
75
|
+
- `EXPLAIN` output varies between MariaDB and MySQL.
|
|
76
|
+
- Don't use `TEXT` in WHERE without prefix index.
|
|
77
|
+
|
|
78
|
+
## Do NOT
|
|
79
|
+
|
|
80
|
+
- Do NOT guess table/column names — verify against migrations or models first.
|
|
81
|
+
- Do NOT add indexes without checking existing ones — duplicates waste write performance.
|
|
82
|
+
- Do NOT use `float` for money — use `decimal`.
|
|
83
|
+
|
|
84
|
+
## Auto-trigger keywords
|
|
85
|
+
|
|
86
|
+
- database
|
|
87
|
+
- MariaDB
|
|
88
|
+
- MySQL
|
|
89
|
+
- migration
|
|
90
|
+
- indexing
|
|
91
|
+
- query optimization
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dependency-upgrade
|
|
3
|
+
description: "Use when upgrading dependencies — "update Laravel", "bump PHP version", or "upgrade packages". Covers changelog review, breaking change detection, and verification."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# dependency-upgrade
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use this skill when upgrading Composer packages, npm packages, or any project dependency.
|
|
12
|
+
|
|
13
|
+
Do NOT use when:
|
|
14
|
+
- Installing new dependencies for the first time
|
|
15
|
+
- Routine code changes unrelated to package versions
|
|
16
|
+
|
|
17
|
+
## Procedure: Upgrade a dependency
|
|
18
|
+
|
|
19
|
+
### 1. Assess
|
|
20
|
+
|
|
21
|
+
Before upgrading:
|
|
22
|
+
|
|
23
|
+
- **Read the changelog** for every version between current and target.
|
|
24
|
+
- **Identify breaking changes** — look for "BREAKING", "BC break", major version bumps.
|
|
25
|
+
- **Check deprecation notices** — code using deprecated APIs needs updating.
|
|
26
|
+
- **Review upgrade guides** — many packages provide migration docs.
|
|
27
|
+
- **Check PHP/Node version requirements** — does the new version need a newer runtime?
|
|
28
|
+
|
|
29
|
+
### 2. Plan
|
|
30
|
+
|
|
31
|
+
Categorize changes needed:
|
|
32
|
+
|
|
33
|
+
| Category | Action |
|
|
34
|
+
|---|---|
|
|
35
|
+
| No breaking changes | Upgrade directly |
|
|
36
|
+
| Deprecation warnings | Upgrade, then fix deprecations |
|
|
37
|
+
| Breaking changes (small) | Fix code, then upgrade |
|
|
38
|
+
| Breaking changes (large) | Create a roadmap, upgrade in steps |
|
|
39
|
+
| Peer dependency conflicts | Resolve conflicts before upgrading |
|
|
40
|
+
|
|
41
|
+
### 3. Execute
|
|
42
|
+
|
|
43
|
+
#### Composer (PHP)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Check outdated packages
|
|
47
|
+
composer outdated
|
|
48
|
+
|
|
49
|
+
# Upgrade a specific package
|
|
50
|
+
composer update vendor/package
|
|
51
|
+
|
|
52
|
+
# Upgrade with version constraint change
|
|
53
|
+
composer require vendor/package:^3.0
|
|
54
|
+
|
|
55
|
+
# Dry-run to see what would change
|
|
56
|
+
composer update vendor/package --dry-run
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
#### npm (JavaScript/TypeScript)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Check outdated packages
|
|
63
|
+
npm outdated
|
|
64
|
+
|
|
65
|
+
# Upgrade a specific package
|
|
66
|
+
npm update package-name
|
|
67
|
+
|
|
68
|
+
# Upgrade to a new major version
|
|
69
|
+
npm install package-name@latest
|
|
70
|
+
|
|
71
|
+
# Check for vulnerabilities
|
|
72
|
+
npm audit
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 4. Verify
|
|
76
|
+
|
|
77
|
+
After upgrading, run the full verification pipeline:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# PHP/Laravel
|
|
81
|
+
vendor/bin/phpstan analyse # Check for type errors
|
|
82
|
+
vendor/bin/rector process # Auto-fix refactoring
|
|
83
|
+
vendor/bin/ecs check --fix # Auto-fix code style
|
|
84
|
+
php artisan test # Run all tests
|
|
85
|
+
|
|
86
|
+
# JavaScript
|
|
87
|
+
npm run build # Check build succeeds
|
|
88
|
+
npm test # Run all tests
|
|
89
|
+
npm run lint # Check code style
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 5. Document
|
|
93
|
+
|
|
94
|
+
- Note the upgrade in the commit message: `chore: upgrade vendor/package from 2.x to 3.x`
|
|
95
|
+
- If breaking changes required code modifications, describe them in the PR body.
|
|
96
|
+
|
|
97
|
+
## Multi-package upgrades
|
|
98
|
+
|
|
99
|
+
When upgrading multiple packages:
|
|
100
|
+
|
|
101
|
+
- **Upgrade one at a time** — easier to identify which upgrade broke something.
|
|
102
|
+
- **Exception:** Tightly coupled packages (e.g., `laravel/framework` + `laravel/*`) can be upgraded together.
|
|
103
|
+
- **Run tests after each upgrade** — don't batch upgrades and test once at the end.
|
|
104
|
+
|
|
105
|
+
## Common pitfalls
|
|
106
|
+
|
|
107
|
+
| Pitfall | Prevention |
|
|
108
|
+
|---|---|
|
|
109
|
+
| Upgrading without reading changelog | Always read the changelog first |
|
|
110
|
+
| Upgrading all packages at once | One package at a time (or tightly coupled groups) |
|
|
111
|
+
| Trusting `composer update` blindly | Use `--dry-run` first, review changes |
|
|
112
|
+
| Ignoring deprecation warnings | Fix deprecations before they become errors |
|
|
113
|
+
| Skipping tests after upgrade | Full test suite + PHPStan after every upgrade |
|
|
114
|
+
| Lock file conflicts | Coordinate upgrades with the team |
|
|
115
|
+
|
|
116
|
+
## Version constraint guidelines
|
|
117
|
+
|
|
118
|
+
| Constraint | Meaning | When to use |
|
|
119
|
+
|---|---|---|
|
|
120
|
+
| `^2.0` | `>=2.0.0 <3.0.0` | Default — allows minor + patch updates |
|
|
121
|
+
| `~2.1` | `>=2.1.0 <2.2.0` | Strict — allows only patch updates |
|
|
122
|
+
| `2.1.*` | `>=2.1.0 <2.2.0` | Same as `~2.1` |
|
|
123
|
+
| `>=2.0 <2.5` | Explicit range | When you know specific versions work |
|
|
124
|
+
| `dev-main` | Latest commit | **Never in production** — only for development |
|
|
125
|
+
|
|
126
|
+
## Security upgrades
|
|
127
|
+
|
|
128
|
+
For security patches:
|
|
129
|
+
|
|
130
|
+
- **Prioritize** — security upgrades should be fast-tracked.
|
|
131
|
+
- **Check `composer audit`** / `npm audit` regularly.
|
|
132
|
+
- **Patch versions** (e.g., 2.1.3 → 2.1.4) are usually safe to apply immediately.
|
|
133
|
+
- **Still run tests** — even security patches can break things.
|
|
134
|
+
|
|
135
|
+
## Vulnerability scanning when adding packages
|
|
136
|
+
|
|
137
|
+
Before adding a **new** dependency (not just upgrading), run a security audit:
|
|
138
|
+
|
|
139
|
+
### Composer (PHP)
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Check for known vulnerabilities in current dependencies
|
|
143
|
+
composer audit
|
|
144
|
+
|
|
145
|
+
# After adding a new package, re-check
|
|
146
|
+
composer require vendor/new-package
|
|
147
|
+
composer audit
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### npm (JavaScript)
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Check before install
|
|
154
|
+
npm audit
|
|
155
|
+
|
|
156
|
+
# After adding, re-check
|
|
157
|
+
npm install new-package
|
|
158
|
+
npm audit
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### What to check for new packages
|
|
162
|
+
|
|
163
|
+
| Check | How | Why |
|
|
164
|
+
|---|---|---|
|
|
165
|
+
| **Known CVEs** | `composer audit` / `npm audit` | Direct vulnerabilities |
|
|
166
|
+
| **Maintenance status** | GitHub: last commit, open issues | Abandoned packages are a risk |
|
|
167
|
+
| **Dependency tree** | `composer show -t vendor/pkg` / `npm ls new-package` | Transitive dependencies may conflict |
|
|
168
|
+
| **License compatibility** | `composer licenses` / check `package.json` | Legal compliance |
|
|
169
|
+
| **Bundle size** (npm) | `npx bundlephobia new-package` | Impact on frontend bundle |
|
|
170
|
+
|
|
171
|
+
### Conflict detection
|
|
172
|
+
|
|
173
|
+
When `composer require` or `npm install` fails with conflicts:
|
|
174
|
+
|
|
175
|
+
1. **Read the error** — which versions conflict?
|
|
176
|
+
2. **Check if other packages need updating** — `composer why vendor/conflicting-pkg`.
|
|
177
|
+
3. **Use `--dry-run`** first — `composer require vendor/pkg --dry-run`.
|
|
178
|
+
4. **Never use `--ignore-platform-reqs`** in production — only for investigation.
|
|
179
|
+
|
|
180
|
+
## Output format
|
|
181
|
+
|
|
182
|
+
1. Updated dependency with version constraint change
|
|
183
|
+
2. Breaking changes addressed with code modifications
|
|
184
|
+
3. Test results confirming compatibility
|
|
185
|
+
|
|
186
|
+
## Auto-trigger keywords
|
|
187
|
+
|
|
188
|
+
- dependency upgrade
|
|
189
|
+
- package update
|
|
190
|
+
- breaking changes
|
|
191
|
+
- changelog review
|
|
192
|
+
|
|
193
|
+
## Gotcha
|
|
194
|
+
|
|
195
|
+
- Don't upgrade multiple major versions at once — one major version per upgrade cycle.
|
|
196
|
+
- The model tends to skip reading the CHANGELOG — breaking changes hide in minor releases too.
|
|
197
|
+
- Always run the full test suite after upgrading, not just the affected tests.
|
|
198
|
+
- Lock file conflicts after upgrade are expected — resolve by re-running `composer update`.
|
|
199
|
+
|
|
200
|
+
## Do NOT
|
|
201
|
+
|
|
202
|
+
- Do NOT manually edit `composer.lock` or `package-lock.json`.
|
|
203
|
+
- Do NOT upgrade to `dev-*` versions in production branches.
|
|
204
|
+
- Do NOT ignore failing tests after an upgrade — fix or revert.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: description-assist
|
|
3
|
+
description: "Use when polishing a skill/rule/command/guideline frontmatter description — pushier phrasing, trigger coverage, undertrigger audit — even if the user just says 'make this pushier'."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# description-assist
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
* The user says "make this description pushier", "this description is weak",
|
|
12
|
+
"will this ever fire", "rewrite the description".
|
|
13
|
+
* Called from within the Draft phase of one of the writing skills
|
|
14
|
+
(`skill-writing`, `rule-writing`, `command-writing`, `guideline-writing`).
|
|
15
|
+
* Auditing a skill flagged by `audit_skill_descriptions.py` as `too-short`,
|
|
16
|
+
`no-trigger-prefix`, or `description_too_long` in `skill_linter.py`.
|
|
17
|
+
|
|
18
|
+
Do NOT use this skill when:
|
|
19
|
+
|
|
20
|
+
* The user wants to change the body, name, or procedure — one field per turn.
|
|
21
|
+
* The content is not an agent artifact (READMEs, docs, commit messages).
|
|
22
|
+
* The user explicitly asked for a fresh description — write it, don't audit.
|
|
23
|
+
|
|
24
|
+
## The contract
|
|
25
|
+
|
|
26
|
+
* **No silent edits.** Every proposed variant is a suggestion presented
|
|
27
|
+
with numbered options; the user picks before anything is written.
|
|
28
|
+
* **No Claude API grading loop.** You reason from your context only. No
|
|
29
|
+
separate AI pass evaluates your suggestions.
|
|
30
|
+
* **Max two rounds.** Propose → reject → refine → reject → stop. If the
|
|
31
|
+
second round is rejected, ask one clarifying question and exit.
|
|
32
|
+
* **One field per turn.** Only `description`. Trigger phrases, name, and
|
|
33
|
+
body belong to their own turns.
|
|
34
|
+
|
|
35
|
+
## Procedure
|
|
36
|
+
|
|
37
|
+
### 1. Read the current description
|
|
38
|
+
|
|
39
|
+
Open the target file. Read the `description:` value in full. If the value
|
|
40
|
+
is missing, abort and route to the relevant writing skill instead.
|
|
41
|
+
|
|
42
|
+
### 2. Inspect the description against four criteria
|
|
43
|
+
|
|
44
|
+
Normative source: [`skill-quality`](../../rules/skill-quality.md) § *Description Triggering*.
|
|
45
|
+
|
|
46
|
+
| Check | Pass when… |
|
|
47
|
+
|---|---|
|
|
48
|
+
| **Length** | ≤ 200 characters (soft cap; linter warns `description_too_long`) |
|
|
49
|
+
| **Trigger prefix** | Starts with "Use when …" or equivalent trigger phrasing |
|
|
50
|
+
| **Trigger classes** | Names ≥ 2 of: domain, symptom, user phrasing, tool, file type |
|
|
51
|
+
| **Undertrigger tail** | Ends with "… even if the user doesn't say `{name}`" or equivalent |
|
|
52
|
+
|
|
53
|
+
Report which checks pass / fail in one compact line — **not** a long essay.
|
|
54
|
+
|
|
55
|
+
### 2b. Check for trigger-eval evidence (skills only)
|
|
56
|
+
|
|
57
|
+
If the target is a skill, check for a trigger-eval report:
|
|
58
|
+
|
|
59
|
+
* `.agent-src.uncompressed/skills/{name}/evals/triggers.json` — the expected-trigger corpus
|
|
60
|
+
* `evals/last-run.json` — the most recent runner output (see
|
|
61
|
+
[`scripts/skill_trigger_eval.py`](../../../scripts/skill_trigger_eval.py))
|
|
62
|
+
|
|
63
|
+
If `last-run.json` exists and contains failed queries for this skill,
|
|
64
|
+
extract the failure patterns and **use them to inform step 3 variants**.
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Eval evidence (evals/last-run.json, 2026-04-21, router=anthropic):
|
|
70
|
+
• 3/5 should-trigger passed
|
|
71
|
+
• failed queries share phrasing: "my E2E keeps flaking on CI"
|
|
72
|
+
• → one variant in step 3 should incorporate "flaky CI" vocabulary
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
If no `last-run.json` exists, skip this step silently. Do **not** run the
|
|
76
|
+
evaluator from this skill — eval execution is a separate user action
|
|
77
|
+
(costs API tokens, see `road-to-trigger-evals.md` Phase 2).
|
|
78
|
+
|
|
79
|
+
For rules, commands, and guidelines: skip this step entirely — they do
|
|
80
|
+
not have evals.
|
|
81
|
+
|
|
82
|
+
### 3. Propose 2–3 alternatives
|
|
83
|
+
|
|
84
|
+
Each variant:
|
|
85
|
+
|
|
86
|
+
* Fixes at least one failed check from step 2.
|
|
87
|
+
* If eval evidence was found in step 2b, **at least one variant must
|
|
88
|
+
address the dominant failure pattern**. Label it *"addresses eval
|
|
89
|
+
failure: <pattern>"* in the rationale.
|
|
90
|
+
* Stays under 200 characters.
|
|
91
|
+
* Has a one-line rationale ("adds symptom trigger", "tightens length",
|
|
92
|
+
"adds undertrigger tail", "addresses eval failure: flaky CI").
|
|
93
|
+
* Is numbered (per [`user-interaction`](../../rules/user-interaction.md) rule).
|
|
94
|
+
|
|
95
|
+
Format:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
Current (156 chars, missing undertrigger tail):
|
|
99
|
+
"Use when writing Playwright E2E tests — browser automation, visual
|
|
100
|
+
regression, Page Objects."
|
|
101
|
+
|
|
102
|
+
> 1. Adds undertrigger tail, 189 chars
|
|
103
|
+
> "Use when writing Playwright E2E tests — browser automation, visual
|
|
104
|
+
> regression, Page Objects — even if the user doesn't say Playwright."
|
|
105
|
+
> 2. Adds symptom trigger 'flaky CI', 193 chars
|
|
106
|
+
> "Use when writing Playwright E2E tests — flaky CI, Page Objects,
|
|
107
|
+
> fixtures, visual regression — even if the user doesn't say Playwright."
|
|
108
|
+
> 3. Skip — keep current
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 4. Wait for the user
|
|
112
|
+
|
|
113
|
+
Do not edit the file yet. Wait for the user's numbered pick or free-text
|
|
114
|
+
counter-proposal.
|
|
115
|
+
|
|
116
|
+
### 5. Apply the picked variant
|
|
117
|
+
|
|
118
|
+
Only after the user picks:
|
|
119
|
+
|
|
120
|
+
* Edit the frontmatter in `.agent-src.uncompressed/{kind}/{name}.{md,SKILL.md}`.
|
|
121
|
+
* Re-copy / re-sync as the target artifact's writing skill prescribes.
|
|
122
|
+
* Run `python3 scripts/skill_linter.py {path}` — must report 0 FAIL.
|
|
123
|
+
* Report the diff and exit.
|
|
124
|
+
|
|
125
|
+
### 6. Max two rounds
|
|
126
|
+
|
|
127
|
+
If the user rejects all variants twice, ask **one** clarifying question
|
|
128
|
+
(e.g. "What symptom phrase best captures when this skill should fire?")
|
|
129
|
+
and stop. Do not loop further.
|
|
130
|
+
|
|
131
|
+
## Output format
|
|
132
|
+
|
|
133
|
+
1. One-line inspection verdict ("3/4 pass, missing undertrigger tail")
|
|
134
|
+
2. Optional one-line eval evidence note if `last-run.json` was found
|
|
135
|
+
3. 2–3 numbered variants with rationale + char count
|
|
136
|
+
4. A "skip — keep current" option
|
|
137
|
+
5. On apply: diff snippet + linter verdict
|
|
138
|
+
|
|
139
|
+
## Gotchas
|
|
140
|
+
|
|
141
|
+
* Proposing variants longer than 200 characters — linter will reject.
|
|
142
|
+
* Changing anything except `description` — out of scope, separate turn.
|
|
143
|
+
* Running a secondary AI pass to grade your own proposals — forbidden.
|
|
144
|
+
* Applying a variant without explicit numbered pick from the user.
|
|
145
|
+
* Skipping the linter after apply — must be 0 FAIL.
|
|
146
|
+
* Looping beyond round 2 — the rule caps at two rounds, then clarify and stop.
|
|
147
|
+
|
|
148
|
+
## Do NOT
|
|
149
|
+
|
|
150
|
+
* Do NOT call the Claude API to score proposals
|
|
151
|
+
* Do NOT edit the file before the user picks
|
|
152
|
+
* Do NOT propose more than 3 variants in one turn
|
|
153
|
+
* Do NOT change the skill name, body, or trigger phrases in the same turn
|
|
154
|
+
* Do NOT silently strip or reword quotes inside the description value
|
|
155
|
+
* Do NOT run `scripts/skill_trigger_eval.py` from inside this skill — eval
|
|
156
|
+
execution spends API tokens and is a separate user action
|
|
157
|
+
|
|
158
|
+
## Examples
|
|
159
|
+
|
|
160
|
+
Inspection verdict (good — compact):
|
|
161
|
+
|
|
162
|
+
> 2/4 pass. Missing: trigger prefix ("Use when …"), undertrigger tail.
|
|
163
|
+
> Length OK (142), trigger classes OK (domain + symptom).
|
|
164
|
+
|
|
165
|
+
Inspection verdict (bad — essay):
|
|
166
|
+
|
|
167
|
+
> After reviewing the description, I noticed it has several areas that
|
|
168
|
+
> could be improved. For instance, the length is fine, but the phrasing
|
|
169
|
+
> could be stronger. Additionally, we should consider…
|