@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,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fix-references
|
|
3
|
+
description: Find and fix broken cross-references in .augment/ and agents/ files
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# fix-references
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
### 1. Run the reference checker
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
python3 scripts/check_references.py --format json
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 2. Parse findings
|
|
18
|
+
|
|
19
|
+
If output is `[]` or "No broken references found":
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
✅ No broken references found. All cross-references are valid.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Stop here.
|
|
26
|
+
|
|
27
|
+
### 3. Display findings
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
═══════════════════════════════════════════════
|
|
31
|
+
🔗 BROKEN REFERENCE REPORT
|
|
32
|
+
═══════════════════════════════════════════════
|
|
33
|
+
|
|
34
|
+
Found: {count} broken reference(s)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Group by file:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
{file}:
|
|
41
|
+
Line {line}: `{ref}` ({ref_type}) → suggested: `{suggestion}`
|
|
42
|
+
Line {line}: `{ref}` ({ref_type}) → no suggestion
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 4. Auto-fix with confirmation
|
|
46
|
+
|
|
47
|
+
For each broken reference:
|
|
48
|
+
|
|
49
|
+
1. **If suggestion exists** → open the file, find the line, replace the broken ref with the suggestion.
|
|
50
|
+
2. **If no suggestion** → search the codebase for the closest match. If found, propose it. If not, flag for manual review.
|
|
51
|
+
3. **If the reference is in a code block** → skip (code blocks are not cross-references).
|
|
52
|
+
4. **If the reference is in an example/template** → skip (placeholders are intentional).
|
|
53
|
+
|
|
54
|
+
Present a summary before applying:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Proposed fixes:
|
|
58
|
+
1. {file}:{line} — `{old}` → `{new}`
|
|
59
|
+
2. {file}:{line} — `{old}` → `{new}`
|
|
60
|
+
3. {file}:{line} — MANUAL: no match found
|
|
61
|
+
|
|
62
|
+
> 1. Apply all automatic fixes
|
|
63
|
+
> 2. Apply interactively (ask for each)
|
|
64
|
+
> 3. Skip — just show the report
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 5. Apply fixes
|
|
68
|
+
|
|
69
|
+
Edit files in `.agent-src.uncompressed/` (source of truth). Regenerate `.agent-src/` and `.augment/` via `task sync`.
|
|
70
|
+
|
|
71
|
+
After all fixes:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
python3 scripts/check_references.py
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Show final result.
|
|
78
|
+
|
|
79
|
+
### 6. Mark hashes
|
|
80
|
+
|
|
81
|
+
For each modified file:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
python3 scripts/compress.py --mark-done "{relative_path}"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Rules
|
|
88
|
+
|
|
89
|
+
- **Always fix in `.agent-src.uncompressed/`** — never edit `.agent-src/` or `.augment/` directly.
|
|
90
|
+
- **Run `task sync`** after fixing to regenerate `.agent-src/` and `.augment/`.
|
|
91
|
+
- **Do NOT commit or push** — the user decides.
|
|
92
|
+
- **Do NOT fix references in code blocks** — they are examples, not live refs.
|
|
93
|
+
- **Do NOT auto-fix without showing the summary first.**
|
|
94
|
+
- **Run the checker again after fixing** to verify 0 remaining issues.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fix-seeder
|
|
3
|
+
skills: [eloquent]
|
|
4
|
+
description: Scan seeder data files for broken foreign key references — find constants used without getReference() and fix them
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# fix-seeder
|
|
9
|
+
|
|
10
|
+
Scans all `PhpDataSeeder` data files for foreign key references that use raw seeder constants
|
|
11
|
+
instead of `getReference()`. Raw constants don't trigger lazy initialization of the referenced
|
|
12
|
+
seeder, causing "items not available" errors when seeders run in unpredictable order.
|
|
13
|
+
|
|
14
|
+
## The Rule
|
|
15
|
+
|
|
16
|
+
In a seeder data file loaded by `FooSeeder`:
|
|
17
|
+
|
|
18
|
+
- **Own seeder constants** are OK: `FooSeeder::REFERENCE_KEY_X` (these are primary keys, not foreign keys)
|
|
19
|
+
- **Other seeder constants** are WRONG: `BarSeeder::REFERENCE_KEY_Y` (foreign key — must use `getReference()`)
|
|
20
|
+
|
|
21
|
+
### ✅ Correct — triggers lazy initialization
|
|
22
|
+
|
|
23
|
+
```php
|
|
24
|
+
'cat_id' => MaterialDeliveryBillCategorySeeder::getReference(
|
|
25
|
+
MaterialDeliveryBillCategorySeeder::REFERENCE_CATEGORY_A
|
|
26
|
+
)->getId(),
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### ❌ Wrong — raw constant, no lazy initialization
|
|
30
|
+
|
|
31
|
+
```php
|
|
32
|
+
'cat_id' => MaterialDeliveryBillCategorySeeder::REFERENCE_CATEGORY_A,
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Step 1: Run the scanner script
|
|
36
|
+
|
|
37
|
+
Run the automated scanner inside the Docker container:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
docker compose exec -T <php-service> php .augment/scripts/scan-seeder-violations.php
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The script (``.augment/scripts/scan-seeder-violations.php``) automatically:
|
|
44
|
+
1. Finds all `PhpDataSeeder` / `JsonDataSeeder` classes and their `$dataFile` paths
|
|
45
|
+
2. Scans each data file for foreign seeder constants used without `getReference()`
|
|
46
|
+
3. Distinguishes PHP files (auto-fixable) from JSON files (manual fix needed)
|
|
47
|
+
|
|
48
|
+
### What the scanner flags
|
|
49
|
+
|
|
50
|
+
**Violation** = a `Seeder::CONSTANT` used directly (not via `getReference()`)
|
|
51
|
+
where the seeder class is NOT the owner of the data file.
|
|
52
|
+
|
|
53
|
+
**Not flagged:**
|
|
54
|
+
- `OtherSeeder::getReference(...)` — correct
|
|
55
|
+
- `OtherSeeder::getReferences()` — correct
|
|
56
|
+
- `OwnSeeder::CONSTANT` — own primary key, correct
|
|
57
|
+
- Known exceptions (circular dependencies) — configured in the scanner script
|
|
58
|
+
|
|
59
|
+
### Known Exceptions
|
|
60
|
+
|
|
61
|
+
Currently there are **no exceptions**. All circular dependencies have been resolved.
|
|
62
|
+
|
|
63
|
+
**Pattern for resolving circular dependencies:** Use two-phase seeding. The data file seeds
|
|
64
|
+
records with placeholder values (e.g., empty arrays). The Seeder's `run()` method then updates
|
|
65
|
+
records with the real values using `getReference()`. Since `run()` is called after all seeders
|
|
66
|
+
are initialized, the circular dependency is broken.
|
|
67
|
+
|
|
68
|
+
Example: `UserWageTypeRuleSeeder` seeds `lohnart_lv` as empty arrays in the data file,
|
|
69
|
+
then populates them with project numbers via `ProjectSeeder::getReference()` in `run()`.
|
|
70
|
+
|
|
71
|
+
If a new exception is truly needed, add it to `.augment/scripts/scan-seeder-violations.php`
|
|
72
|
+
in the `$exceptions` array. Format: `'OwnerSeeder' => ['AllowedForeignSeeder']`.
|
|
73
|
+
|
|
74
|
+
## Step 2: Report findings
|
|
75
|
+
|
|
76
|
+
Present a table of all violations:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
| # | Data File | Line | Violation | Owning Seeder |
|
|
80
|
+
|---|-----------|------|-----------|---------------|
|
|
81
|
+
| 1 | material-delivery-bill-catalog-data.php:11 | CategorySeeder::REFERENCE_A | CatalogSeeder |
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Then ask the user:
|
|
85
|
+
|
|
86
|
+
> 1. Fix all violations automatically
|
|
87
|
+
> 2. Fix interactively (ask for each)
|
|
88
|
+
> 3. Report only — don't fix
|
|
89
|
+
|
|
90
|
+
## Step 3: Fix violations
|
|
91
|
+
|
|
92
|
+
For each violation, replace the raw constant with a `getReference()` call:
|
|
93
|
+
|
|
94
|
+
**Before:**
|
|
95
|
+
```php
|
|
96
|
+
'foreign_key_column' => OtherSeeder::REFERENCE_CONSTANT,
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**After:**
|
|
100
|
+
```php
|
|
101
|
+
'foreign_key_column' => OtherSeeder::getReference(
|
|
102
|
+
OtherSeeder::REFERENCE_CONSTANT
|
|
103
|
+
)->getId(),
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Choosing the getter method
|
|
107
|
+
|
|
108
|
+
- Default: `->getId()` (most foreign keys are IDs)
|
|
109
|
+
- If the column name suggests a different attribute, use the appropriate getter
|
|
110
|
+
(e.g., `'name' => ...` might need `->getName()`)
|
|
111
|
+
- If unsure, check the referenced model's primary key or the column definition
|
|
112
|
+
|
|
113
|
+
### Extract to variable when referenced multiple times
|
|
114
|
+
|
|
115
|
+
If the same `getReference()` call would appear multiple times in one data file,
|
|
116
|
+
extract it to a variable at the top of the file:
|
|
117
|
+
|
|
118
|
+
```php
|
|
119
|
+
$category = MaterialDeliveryBillCategorySeeder::getReference(
|
|
120
|
+
MaterialDeliveryBillCategorySeeder::REFERENCE_CATEGORY_A
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
return [
|
|
124
|
+
[
|
|
125
|
+
'cat_id' => $category->getId(),
|
|
126
|
+
'cat_name' => $category->getName(),
|
|
127
|
+
],
|
|
128
|
+
];
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Step 4: Verify
|
|
132
|
+
|
|
133
|
+
After fixing, run the seeder to verify:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
docker compose exec -T <php-service> php artisan db:seed --env=testing
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
If it fails, investigate and fix the remaining issues.
|
|
140
|
+
|
|
141
|
+
## Rules
|
|
142
|
+
|
|
143
|
+
- **Do NOT commit or push.** Only apply local changes.
|
|
144
|
+
- **Do NOT change the seeder classes** — only the data files.
|
|
145
|
+
- **Do NOT change the DataSeeder framework** — only fix data file references.
|
|
146
|
+
- When in doubt about the getter method, check the model class.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: implement-ticket
|
|
3
|
+
skills: [refine-ticket, feature-planning]
|
|
4
|
+
description: Drive a ticket end-to-end through refine → memory → analyze → plan → implement → test → verify → report — Option-A loop over the `implement_ticket` Python engine, block-on-ambiguity, no auto-git.
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# implement-ticket
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
### 1. Resolve input
|
|
13
|
+
|
|
14
|
+
Accept one of four input paths:
|
|
15
|
+
|
|
16
|
+
1. **Explicit key** — `/implement-ticket PROJ-123`
|
|
17
|
+
2. **Branch detection** — no arg → `git branch --show-current` + regex
|
|
18
|
+
`[A-Z]+-[0-9]+`
|
|
19
|
+
3. **Pasted text** — markdown block under the command
|
|
20
|
+
4. **URL** — `/implement-ticket https://…/browse/PROJ-123`
|
|
21
|
+
|
|
22
|
+
For paths 1, 2, 4: run steps 1-3 of the [`jira-ticket`](jira-ticket.md) command
|
|
23
|
+
(extract ID, fetch ticket, scan for Sentry links). For path 3: parse the pasted
|
|
24
|
+
markdown. If no input resolves:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
🎫 Which ticket should I implement? Paste a key, URL, or the ticket text.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2. Prepare the state file
|
|
31
|
+
|
|
32
|
+
The engine persists everything in a JSON state file (default:
|
|
33
|
+
`.implement-ticket-state.json` in the repo root). Two cases:
|
|
34
|
+
|
|
35
|
+
- **Fresh run** — state file does not exist. Write the resolved ticket to
|
|
36
|
+
`ticket.json` (id, title, body, acceptance_criteria) and pass it via
|
|
37
|
+
`--ticket-file ticket.json`. Honour `roles.active_role` from
|
|
38
|
+
`.agent-settings.yml` via `--persona`.
|
|
39
|
+
- **Resume** — state file exists. Do **not** pass `--ticket-file` or
|
|
40
|
+
`--persona`; mid-flight persona switches are refused by the engine.
|
|
41
|
+
|
|
42
|
+
### 3. Drive the Option-A dispatch loop
|
|
43
|
+
|
|
44
|
+
Run the engine with the state file on every iteration:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
PYTHONPATH=scripts python3 -m implement_ticket \
|
|
48
|
+
--state-file .implement-ticket-state.json \
|
|
49
|
+
[--ticket-file ticket.json --persona <name>] # first call only
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Then branch on the exit code:
|
|
53
|
+
|
|
54
|
+
| Exit | Meaning | Action |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `0` | SUCCESS — final report on stdout | Go to step 5 |
|
|
57
|
+
| `1` | BLOCKED — halt surface on stdout, state persisted | Inspect `questions[0]` |
|
|
58
|
+
| `2` | Config/IO error | Surface the stderr message to the user, stop |
|
|
59
|
+
|
|
60
|
+
On exit `1`, look at the first line after `[halt] outcome=… step=…`:
|
|
61
|
+
|
|
62
|
+
- **Starts with `@agent-directive:`** — agent work required, see §4.
|
|
63
|
+
- **Starts with `>`** — user question per
|
|
64
|
+
[`user-interaction`](../rules/user-interaction.md). Emit the numbered
|
|
65
|
+
options verbatim, wait for the user, write their answer back onto the
|
|
66
|
+
matching state slice, then re-run the engine. Never guess.
|
|
67
|
+
|
|
68
|
+
### 4. Directive mapping
|
|
69
|
+
|
|
70
|
+
When `questions[0]` is `@agent-directive: <verb> [key=value …]`, dispatch:
|
|
71
|
+
|
|
72
|
+
| Directive | What to do | State write-back |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| `create-plan` | Invoke [`/feature-plan`](feature-plan.md) with the refined ticket + memory hits | `state.plan` = result; `state.outcomes.plan = "success"` |
|
|
75
|
+
| `apply-plan` | Apply changes per `state.plan` under [`minimal-safe-diff`](../rules/minimal-safe-diff.md) + [`scope-control`](../rules/scope-control.md); one file at a time, read before edit | `state.changes` = `[{path, purpose}]`; `state.outcomes.implement = "success"` |
|
|
76
|
+
| `run-tests scope=targeted` | Invoke [`/tests-execute`](tests-execute.md) on the files in `state.changes` | `state.tests` = `{verdict, durations, details}`; `state.outcomes.test = "success"` only when `verdict == "success"` |
|
|
77
|
+
| `run-tests scope=full` | Same but whole suite (persona `qa` widens to this) | Same as above |
|
|
78
|
+
| `review-changes` | Invoke [`/review-changes`](review-changes.md) | `state.verify` = `{verdict, confidence, notes}`; `state.outcomes.verify = "success"` only when `verdict == "success"` |
|
|
79
|
+
|
|
80
|
+
After the write-back, **re-run the engine**. The dispatcher skips
|
|
81
|
+
already-successful steps and resumes at the next pending one. On a
|
|
82
|
+
non-success verdict, do **not** flip `outcomes` — the engine will reissue
|
|
83
|
+
the same directive so the agent can fix and retry.
|
|
84
|
+
|
|
85
|
+
Never invent directive verbs. Never skip a directive because "the state
|
|
86
|
+
already looks right". The state is authoritative only when the engine
|
|
87
|
+
wrote it.
|
|
88
|
+
|
|
89
|
+
### 5. Final report + close-prompt
|
|
90
|
+
|
|
91
|
+
On exit `0`, the engine prints the delivery report (nine fixed sections
|
|
92
|
+
per [`implement-ticket-flow`](../../agents/contexts/implement-ticket-flow.md#delivery-report-schema)).
|
|
93
|
+
Surface it unchanged. Append the close-prompt:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
> 1. /commit — stage + commit per the delivery report
|
|
97
|
+
> 2. /create-pr — open a pull request from this branch
|
|
98
|
+
> 3. Keep working — I'll hold the state file for the next /implement-ticket
|
|
99
|
+
> 4. Discard — delete .implement-ticket-state.json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Never run `/commit` or `/create-pr` without the user choosing them.**
|
|
103
|
+
Per [`scope-control`](../rules/scope-control.md), git operations are
|
|
104
|
+
permission-gated.
|
|
105
|
+
|
|
106
|
+
### Rules
|
|
107
|
+
|
|
108
|
+
- Honour [`scope-control`](../rules/scope-control.md),
|
|
109
|
+
[`minimal-safe-diff`](../rules/minimal-safe-diff.md), and
|
|
110
|
+
[`verify-before-complete`](../rules/verify-before-complete.md) inside
|
|
111
|
+
every directive.
|
|
112
|
+
- Never bypass the engine. Don't skip steps, don't rewrite outcomes,
|
|
113
|
+
don't flip `verdict` from `failed` to `success`.
|
|
114
|
+
- Persona is session-global. Read it from `.agent-settings.yml` on the
|
|
115
|
+
fresh run; never accept a `--persona` flag from the user mid-flight.
|
|
116
|
+
- Memory section in the report is absent when no hit changed an outcome.
|
|
117
|
+
That is by design — don't pad it.
|
|
118
|
+
|
|
119
|
+
## Examples
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
/implement-ticket PROJ-123
|
|
123
|
+
/implement-ticket # uses current branch
|
|
124
|
+
/implement-ticket https://acme.atlassian.net/browse/PROJ-123
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## See also
|
|
128
|
+
|
|
129
|
+
- [`implement-ticket-flow`](../../agents/contexts/implement-ticket-flow.md) — flow contract + directive semantics
|
|
130
|
+
- [`adr-implement-ticket-runtime`](../../agents/contexts/adr-implement-ticket-runtime.md) — runtime choice
|
|
131
|
+
- [`refine-ticket`](refine-ticket.md), [`feature-plan`](feature-plan.md), [`tests-execute`](tests-execute.md), [`review-changes`](review-changes.md) — skills the directives delegate to
|
|
132
|
+
- [`commit`](commit.md), [`create-pr`](create-pr.md) — post-delivery commands the user runs explicitly
|
|
133
|
+
- [`road-to-implement-ticket`](../../agents/roadmaps/road-to-implement-ticket.md) — governing roadmap
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jira-ticket
|
|
3
|
+
skills: [laravel]
|
|
4
|
+
description: Read Jira ticket from branch name, analyze linked Sentry issues, implement feature or fix bug
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# jira-ticket
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
### 1. Extract ticket ID from branch name
|
|
13
|
+
|
|
14
|
+
- Run `git branch --show-current` to get the current branch name.
|
|
15
|
+
- Extract the Jira ticket ID from the branch name (e.g. `fix/DEV-4673-some-description` → `DEV-4673`).
|
|
16
|
+
- If no ticket ID is found in the branch name, or the ticket cannot be found in Jira, **ask the user** for the ticket number or a direct Jira link. Do not guess or proceed without a valid ticket.
|
|
17
|
+
|
|
18
|
+
### 2. Fetch the Jira ticket
|
|
19
|
+
|
|
20
|
+
- Use the Jira API to fetch the ticket: `GET /issue/{ticketId}`
|
|
21
|
+
- Read and understand:
|
|
22
|
+
- **Summary** and **description** — what needs to be done?
|
|
23
|
+
- **Issue type** — Bug, Feature, Task, etc.
|
|
24
|
+
- **Priority** and **status**
|
|
25
|
+
- **Comments** — often contain additional context, decisions, or reproduction steps.
|
|
26
|
+
- **Linked issues** — may reference related work.
|
|
27
|
+
|
|
28
|
+
### 3. Check for Sentry links
|
|
29
|
+
|
|
30
|
+
- Scan the ticket description and comments for Sentry URLs (e.g. `https://*.sentry.io/issues/*`).
|
|
31
|
+
- If Sentry links are found:
|
|
32
|
+
- Fetch the Sentry issue details using `get_issue_details` with the URL.
|
|
33
|
+
- Analyze the stacktrace, error message, and affected code.
|
|
34
|
+
- Check tag distributions (browser, environment, URL) if relevant.
|
|
35
|
+
- This gives you the real-world error context to understand the bug.
|
|
36
|
+
|
|
37
|
+
### 4. Analyze the codebase
|
|
38
|
+
|
|
39
|
+
- Use `codebase-retrieval` to find the relevant code based on what the ticket describes.
|
|
40
|
+
- Read the affected files and understand the current behavior.
|
|
41
|
+
- If it's a bug: reproduce the logic mentally by following the code path from the Sentry stacktrace or ticket description.
|
|
42
|
+
- If it's a feature: understand the existing architecture and where the new code should go.
|
|
43
|
+
|
|
44
|
+
### 5. Plan the implementation
|
|
45
|
+
|
|
46
|
+
- Create a task list with the planned changes.
|
|
47
|
+
- For bugs: identify the root cause and plan the fix.
|
|
48
|
+
- For features: break down into subtasks.
|
|
49
|
+
- Present the plan to the user and **ask for confirmation before making changes**.
|
|
50
|
+
|
|
51
|
+
### 6. Implement
|
|
52
|
+
|
|
53
|
+
- Apply the changes following all project coding standards (see AGENTS.md).
|
|
54
|
+
- Use `Math` helper for calculations, proper type hints, `declare(strict_types=1)` in new files, etc.
|
|
55
|
+
- Write the code as if a senior developer would review it.
|
|
56
|
+
|
|
57
|
+
### 7. Verify
|
|
58
|
+
|
|
59
|
+
- Run `php -l` on all modified files.
|
|
60
|
+
- If the change is testable, suggest writing or running tests.
|
|
61
|
+
|
|
62
|
+
### Rules
|
|
63
|
+
|
|
64
|
+
- **Do NOT commit or push.** Only apply local changes.
|
|
65
|
+
- **Always ask before implementing** — present the plan first.
|
|
66
|
+
- If the ticket is unclear or missing information, ask the user for clarification.
|
|
67
|
+
- If the Sentry issue reveals a different/bigger problem than the ticket describes, flag it.
|
|
68
|
+
|
|
69
|
+
## See also
|
|
70
|
+
|
|
71
|
+
- [`role-contracts`](../guidelines/agent-infra/role-contracts.md#developer) — Developer mode output contract (Goal / Plan / Changes / Tests / Open questions)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: judge
|
|
3
|
+
skills: [subagent-orchestration]
|
|
4
|
+
description: Run a standalone judge on an existing diff or code change — no implementer, no revision loop, verdict only
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# judge
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
### 1. Identify the target
|
|
13
|
+
|
|
14
|
+
The user invoked `/judge` on one of:
|
|
15
|
+
|
|
16
|
+
- The current working-tree diff (`git diff`)
|
|
17
|
+
- A specific commit range (`git diff A..B`)
|
|
18
|
+
- A PR by number or URL
|
|
19
|
+
- A single file or set of files
|
|
20
|
+
|
|
21
|
+
Confirm the target in one sentence before proceeding. Do not silently
|
|
22
|
+
assume the working tree.
|
|
23
|
+
|
|
24
|
+
### 2. Gather the context
|
|
25
|
+
|
|
26
|
+
Collect what the judge needs:
|
|
27
|
+
|
|
28
|
+
- The diff in full
|
|
29
|
+
- The original task, ticket, or PR description
|
|
30
|
+
- Relevant acceptance criteria (tests, linter config, design doc)
|
|
31
|
+
|
|
32
|
+
If any of these is missing and the judgment would be shallow without
|
|
33
|
+
it, **stop** and ask.
|
|
34
|
+
|
|
35
|
+
### 3. Resolve the judge model
|
|
36
|
+
|
|
37
|
+
Read `.agent-settings.yml`:
|
|
38
|
+
|
|
39
|
+
- `subagents.judge_model` → empty = one tier above session model
|
|
40
|
+
|
|
41
|
+
Unknown alias → stop. Silence is not a fallback.
|
|
42
|
+
|
|
43
|
+
### 4. Invoke the judge
|
|
44
|
+
|
|
45
|
+
The judge reviews the diff against the task. Return one of:
|
|
46
|
+
|
|
47
|
+
| Verdict | Meaning |
|
|
48
|
+
|----------|----------------------------------------------|
|
|
49
|
+
| `apply` | Correct, complete, ready to land |
|
|
50
|
+
| `revise` | Specific issues listed — user decides next |
|
|
51
|
+
| `reject` | Fundamentally wrong approach |
|
|
52
|
+
|
|
53
|
+
Unlike `/do-and-judge`, this command does **not** loop — no revision
|
|
54
|
+
cycles. The verdict is the deliverable.
|
|
55
|
+
|
|
56
|
+
### 5. Report
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Mode: judge (standalone)
|
|
60
|
+
Target: <diff | commit range | PR #N | files>
|
|
61
|
+
Judge: <resolved model>
|
|
62
|
+
Verdict: apply | revise | reject
|
|
63
|
+
Issues: <numbered list if revise/reject>
|
|
64
|
+
Next step: <what the user should do based on the verdict>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Use this command when
|
|
68
|
+
|
|
69
|
+
- A diff already exists and the user wants a second opinion
|
|
70
|
+
- Reviewing someone else's PR before approving it
|
|
71
|
+
- Double-checking a change before opening a PR
|
|
72
|
+
- Stress-testing a refactor without committing to revisions
|
|
73
|
+
|
|
74
|
+
## Do NOT
|
|
75
|
+
|
|
76
|
+
- NEVER apply the diff — this command judges only
|
|
77
|
+
- NEVER loop into a revision cycle — use `/do-and-judge` for that
|
|
78
|
+
- NEVER run the judge on an empty diff — fail fast
|
|
79
|
+
- NEVER silently fall back to the session model for the judge
|
|
80
|
+
|
|
81
|
+
## See also
|
|
82
|
+
|
|
83
|
+
- [`subagent-orchestration`](../skills/subagent-orchestration/SKILL.md)
|
|
84
|
+
- [`/do-and-judge`](do-and-judge.md) — if a revision loop is wanted
|
|
85
|
+
- [`/review-changes`](review-changes.md) — human-oriented self-review
|
|
86
|
+
- [`role-contracts`](../guidelines/agent-infra/role-contracts.md#reviewer) — Reviewer mode output contract (Summary / Risks / Findings / Required actions / Verdict)
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-add
|
|
3
|
+
description: Interactively add a validated entry to an engineering-memory file (domain-invariants, architecture-decisions, incident-learnings, product-rules)
|
|
4
|
+
skills: [file-editor]
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /memory-add
|
|
9
|
+
|
|
10
|
+
Creates or updates a single entry in one of the four engineering-memory
|
|
11
|
+
YAML files under `agents/memory/` in the consumer project. The entry
|
|
12
|
+
is validated against the schema in
|
|
13
|
+
[`engineering-memory-data-format`](../guidelines/agent-infra/engineering-memory-data-format.md)
|
|
14
|
+
before the file is written.
|
|
15
|
+
|
|
16
|
+
Absence of these files is legal — this command is the entry point for
|
|
17
|
+
the first write and for every subsequent addition.
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- Consumer project has an `agents/` directory (package installed).
|
|
22
|
+
- `scripts/check_memory.py` is available (shipped with the package).
|
|
23
|
+
- User can name a concrete pattern — see the "when to reject" section.
|
|
24
|
+
|
|
25
|
+
## Steps
|
|
26
|
+
|
|
27
|
+
### 1. Pick the memory type
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
> Which memory type is this entry for?
|
|
31
|
+
>
|
|
32
|
+
> 1. domain-invariants — architectural boundaries, module rules
|
|
33
|
+
> 2. architecture-decisions — ADR-style decisions with alternatives
|
|
34
|
+
> 3. incident-learnings — post-mortem patterns with guardrails
|
|
35
|
+
> 4. product-rules — intentional business constraints
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
If the user cannot pick one confidently, stop and ask what the entry
|
|
39
|
+
**describes**. Never guess the type — a misfiled entry is worse than
|
|
40
|
+
no entry.
|
|
41
|
+
|
|
42
|
+
### 2. Check it does not already exist
|
|
43
|
+
|
|
44
|
+
Read the target file (single-file layout: `agents/memory/<type>.yml`;
|
|
45
|
+
sharded layout: `agents/memory/<type>/*.yml`). For each existing
|
|
46
|
+
`id:`, compare against the proposed pattern:
|
|
47
|
+
|
|
48
|
+
- Same `scope:` path + same rule text → **update** existing entry
|
|
49
|
+
(bump `last_validated`, append evidence to `source:`).
|
|
50
|
+
- Overlapping `scope:` but different rule → surface the conflict and
|
|
51
|
+
ask which entry supersedes which.
|
|
52
|
+
- No overlap → proceed as new entry.
|
|
53
|
+
|
|
54
|
+
### 3. Collect the required fields
|
|
55
|
+
|
|
56
|
+
All four types share the frontmatter in
|
|
57
|
+
[`engineering-memory-data-format`](../guidelines/agent-infra/engineering-memory-data-format.md#shared-frontmatter-fields).
|
|
58
|
+
Collect in this order, one numbered question at a time:
|
|
59
|
+
|
|
60
|
+
1. `id` — kebab-case slug, unique within the type.
|
|
61
|
+
2. `status` — `active` · `deprecated` · `archived` (default: `active`).
|
|
62
|
+
3. `confidence` — `low` · `medium` · `high`.
|
|
63
|
+
4. `source` — at least one URL, PR, incident, or ADR reference.
|
|
64
|
+
5. `owner` — team slug.
|
|
65
|
+
6. `last_validated` — today's ISO date (default).
|
|
66
|
+
7. `review_after_days` — integer; suggest 90 for ADRs, 180 for
|
|
67
|
+
invariants, 365 for product rules.
|
|
68
|
+
|
|
69
|
+
Then the type-specific fields (see the example templates under
|
|
70
|
+
`.augment/templates/agents/memory/`).
|
|
71
|
+
|
|
72
|
+
### 4. Show the draft
|
|
73
|
+
|
|
74
|
+
Render the proposed YAML block to the user and ask for confirmation:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
> About to add to agents/memory/<type>.yml:
|
|
78
|
+
>
|
|
79
|
+
> <yaml block>
|
|
80
|
+
>
|
|
81
|
+
> 1. Write it — run the gate
|
|
82
|
+
> 2. Edit a field — ask which one
|
|
83
|
+
> 3. Cancel — discard draft
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 5. Write and gate
|
|
87
|
+
|
|
88
|
+
On confirmation:
|
|
89
|
+
|
|
90
|
+
- Append the entry to the chosen layout (single-file: append under
|
|
91
|
+
`entries:`; sharded: write `agents/memory/<type>/<hash>.yml`).
|
|
92
|
+
- Run `python3 scripts/check_memory.py --path agents/memory`.
|
|
93
|
+
- On non-zero exit: show the error, **revert** the write, return to
|
|
94
|
+
step 3 or 4 depending on the failure.
|
|
95
|
+
- On zero exit: report the entry `id` and path, remind the user to
|
|
96
|
+
commit.
|
|
97
|
+
|
|
98
|
+
### 6. Cross-link
|
|
99
|
+
|
|
100
|
+
If the entry has a `references:` block pointing to a skill, rule, or
|
|
101
|
+
ADR file, run `python3 scripts/check_references.py` to verify the
|
|
102
|
+
link resolves. Broken link → block and ask the user to fix.
|
|
103
|
+
|
|
104
|
+
## When to reject
|
|
105
|
+
|
|
106
|
+
- Vague frustration ("we should be more careful about X") — not a
|
|
107
|
+
pattern. Ask for a concrete rule or ADR instead.
|
|
108
|
+
- One-off anecdote with no `trigger_conditions:` or `scope:` — not
|
|
109
|
+
generalizable.
|
|
110
|
+
- Duplicate of an existing entry (step 2) — update instead.
|
|
111
|
+
- Missing `source:` — an entry without evidence cannot be reviewed.
|
|
112
|
+
|
|
113
|
+
## Output format
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
✅ Added <type>/<id> (confidence: <high|medium|low>)
|
|
117
|
+
Path: agents/memory/<type>.yml (or agents/memory/<type>/<hash>.yml)
|
|
118
|
+
Gate: scripts/check_memory.py → PASS
|
|
119
|
+
Next: commit and link from the relevant skill/command.
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## See also
|
|
123
|
+
|
|
124
|
+
- [`engineering-memory-data-format`](../guidelines/agent-infra/engineering-memory-data-format.md)
|
|
125
|
+
— full schema
|
|
126
|
+
- [`capture-learnings`](../rules/capture-learnings.md) — when a
|
|
127
|
+
learning is better captured as an `incident-learnings` entry vs a
|
|
128
|
+
rule/skill proposal
|
|
129
|
+
- [`road-to-engineering-memory.md`](../../agents/roadmaps/road-to-engineering-memory.md)
|
|
130
|
+
— Phase 3 writer ergonomics
|