@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,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://github.com/event4u-app/agent-config/scripts/schemas/skill.schema.json",
|
|
4
|
+
"title": "Skill frontmatter",
|
|
5
|
+
"$comment": "Source: agents/docs/frontmatter-contract.md#skills. Keep in sync with inventory_frontmatter.py and the linter's lint_skill().",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["name", "description", "source"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
13
|
+
"description": "Lowercase, hyphenated slug; must match the parent directory name."
|
|
14
|
+
},
|
|
15
|
+
"description": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1,
|
|
18
|
+
"maxLength": 300,
|
|
19
|
+
"description": "Trigger phrase; ≤ 200 chars recommended, 300 is the hard ceiling."
|
|
20
|
+
},
|
|
21
|
+
"source": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["package", "project"]
|
|
24
|
+
},
|
|
25
|
+
"status": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["active", "deprecated", "superseded"]
|
|
28
|
+
},
|
|
29
|
+
"replaced_by": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
32
|
+
},
|
|
33
|
+
"personas": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"execution": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["type"],
|
|
44
|
+
"properties": {
|
|
45
|
+
"type": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"enum": ["manual", "assisted", "automated"]
|
|
48
|
+
},
|
|
49
|
+
"handler": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"enum": ["none", "shell", "php", "node", "internal"]
|
|
52
|
+
},
|
|
53
|
+
"timeout_seconds": {
|
|
54
|
+
"type": "integer",
|
|
55
|
+
"minimum": 1
|
|
56
|
+
},
|
|
57
|
+
"safety_mode": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"enum": ["strict"]
|
|
60
|
+
},
|
|
61
|
+
"allowed_tools": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": { "type": "string" }
|
|
64
|
+
},
|
|
65
|
+
"command": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"minItems": 1,
|
|
68
|
+
"items": { "type": "string" }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
package/scripts/setup.sh
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# setup.sh — One-time setup for agent-config in a project
|
|
3
|
+
# Adds post-install/update hooks to the root composer.json so that
|
|
4
|
+
# install.sh runs automatically on every `composer install` / `composer update`.
|
|
5
|
+
#
|
|
6
|
+
# Usage:
|
|
7
|
+
# bash vendor/event4u/agent-config/scripts/setup.sh
|
|
8
|
+
#
|
|
9
|
+
# Idempotent: safe to run multiple times. Skips if hooks already exist.
|
|
10
|
+
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
|
|
13
|
+
# --- Configuration ---
|
|
14
|
+
HOOK_CMD="bash vendor/event4u/agent-config/scripts/install.sh --quiet"
|
|
15
|
+
COMPOSER_JSON="composer.json"
|
|
16
|
+
|
|
17
|
+
# --- Logging ---
|
|
18
|
+
log_info() { echo " ✅ $*"; }
|
|
19
|
+
log_warn() { echo " ⚠️ $*"; }
|
|
20
|
+
log_skip() { echo " ⏭️ $*"; }
|
|
21
|
+
log_error() { echo " ❌ $*" >&2; }
|
|
22
|
+
|
|
23
|
+
# --- Find project root ---
|
|
24
|
+
find_project_root() {
|
|
25
|
+
local dir
|
|
26
|
+
dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../.." && pwd)"
|
|
27
|
+
|
|
28
|
+
# If called from vendor/event4u/agent-config/scripts/, go up 4 levels
|
|
29
|
+
if [[ -f "$dir/$COMPOSER_JSON" ]]; then
|
|
30
|
+
echo "$dir"
|
|
31
|
+
return
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
# Fallback: current working directory
|
|
35
|
+
if [[ -f "$PWD/$COMPOSER_JSON" ]]; then
|
|
36
|
+
echo "$PWD"
|
|
37
|
+
return
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
log_error "Cannot find project root (no composer.json found)"
|
|
41
|
+
exit 1
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
# --- Detect JSON tool ---
|
|
45
|
+
# Fallback chain: php → node → jq → python3
|
|
46
|
+
JSON_TOOL=""
|
|
47
|
+
detect_json_tool() {
|
|
48
|
+
if command -v php &>/dev/null; then
|
|
49
|
+
JSON_TOOL="php"
|
|
50
|
+
elif command -v node &>/dev/null; then
|
|
51
|
+
JSON_TOOL="node"
|
|
52
|
+
elif command -v jq &>/dev/null; then
|
|
53
|
+
JSON_TOOL="jq"
|
|
54
|
+
elif command -v python3 &>/dev/null; then
|
|
55
|
+
JSON_TOOL="python3"
|
|
56
|
+
else
|
|
57
|
+
log_error "No JSON tool found. Need one of: php, node, jq, python3"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
# --- Unified JSON helper ---
|
|
63
|
+
# Dispatches to the detected tool. Actions: hook_exists, add_hook
|
|
64
|
+
composer_json_cmd() {
|
|
65
|
+
local file="$1" action="$2" event="${3:-}" cmd="${4:-}"
|
|
66
|
+
case "$JSON_TOOL" in
|
|
67
|
+
php) _cmd_php "$file" "$action" "$event" "$cmd" ;;
|
|
68
|
+
node) _cmd_node "$file" "$action" "$event" "$cmd" ;;
|
|
69
|
+
jq) _cmd_jq "$file" "$action" "$event" "$cmd" ;;
|
|
70
|
+
python3) _cmd_python "$file" "$action" "$event" "$cmd" ;;
|
|
71
|
+
esac
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
# --- PHP implementation ---
|
|
75
|
+
_cmd_php() {
|
|
76
|
+
local file="$1" action="$2" event="$3" cmd="$4"
|
|
77
|
+
php -r "
|
|
78
|
+
\$file = '$file';
|
|
79
|
+
\$json = json_decode(file_get_contents(\$file), true);
|
|
80
|
+
if (\$json === null) { exit(1); }
|
|
81
|
+
\$event = '$event'; \$cmd = '$cmd';
|
|
82
|
+
if ('$action' === 'hook_exists') {
|
|
83
|
+
if (!isset(\$json['scripts'][\$event])) { exit(1); }
|
|
84
|
+
\$val = \$json['scripts'][\$event];
|
|
85
|
+
if (is_string(\$val) && str_contains(\$val, 'agent-config/scripts/install.sh')) { exit(0); }
|
|
86
|
+
if (is_array(\$val)) {
|
|
87
|
+
foreach (\$val as \$v) {
|
|
88
|
+
if (is_string(\$v) && str_contains(\$v, 'agent-config/scripts/install.sh')) { exit(0); }
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exit(1);
|
|
92
|
+
}
|
|
93
|
+
if ('$action' === 'add_hook') {
|
|
94
|
+
if (!isset(\$json['scripts'])) { \$json['scripts'] = []; }
|
|
95
|
+
if (!isset(\$json['scripts'][\$event])) {
|
|
96
|
+
\$json['scripts'][\$event] = \$cmd;
|
|
97
|
+
} elseif (is_string(\$json['scripts'][\$event])) {
|
|
98
|
+
\$json['scripts'][\$event] = [\$json['scripts'][\$event], \$cmd];
|
|
99
|
+
} elseif (is_array(\$json['scripts'][\$event])) {
|
|
100
|
+
\$json['scripts'][\$event][] = \$cmd;
|
|
101
|
+
}
|
|
102
|
+
file_put_contents(\$file, json_encode(\$json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . \"\n\");
|
|
103
|
+
}
|
|
104
|
+
"
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
# --- Node.js implementation ---
|
|
108
|
+
_cmd_node() {
|
|
109
|
+
local file="$1" action="$2" event="$3" cmd="$4"
|
|
110
|
+
node -e "
|
|
111
|
+
const fs = require('fs');
|
|
112
|
+
const file = '$file';
|
|
113
|
+
const json = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
114
|
+
const event = '$event', cmd = '$cmd';
|
|
115
|
+
if ('$action' === 'hook_exists') {
|
|
116
|
+
if (!json.scripts || !json.scripts[event]) process.exit(1);
|
|
117
|
+
const val = json.scripts[event];
|
|
118
|
+
if (typeof val === 'string' && val.includes('agent-config/scripts/install.sh')) process.exit(0);
|
|
119
|
+
if (Array.isArray(val) && val.some(v => v.includes('agent-config/scripts/install.sh'))) process.exit(0);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
if ('$action' === 'add_hook') {
|
|
123
|
+
if (!json.scripts) json.scripts = {};
|
|
124
|
+
if (!json.scripts[event]) {
|
|
125
|
+
json.scripts[event] = cmd;
|
|
126
|
+
} else if (typeof json.scripts[event] === 'string') {
|
|
127
|
+
json.scripts[event] = [json.scripts[event], cmd];
|
|
128
|
+
} else if (Array.isArray(json.scripts[event])) {
|
|
129
|
+
json.scripts[event].push(cmd);
|
|
130
|
+
}
|
|
131
|
+
fs.writeFileSync(file, JSON.stringify(json, null, 4) + '\n');
|
|
132
|
+
}
|
|
133
|
+
"
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
# --- jq implementation ---
|
|
137
|
+
_cmd_jq() {
|
|
138
|
+
local file="$1" action="$2" event="$3" cmd="$4"
|
|
139
|
+
if [[ "$action" == "hook_exists" ]]; then
|
|
140
|
+
local existing
|
|
141
|
+
existing=$(jq -r ".scripts[\"$event\"] // empty" "$file" 2>/dev/null)
|
|
142
|
+
[[ -z "$existing" ]] && return 1
|
|
143
|
+
[[ "$existing" == *"agent-config/scripts/install.sh"* ]] && return 0
|
|
144
|
+
jq -e ".scripts[\"$event\"][] | select(contains(\"agent-config/scripts/install.sh\"))" "$file" &>/dev/null && return 0
|
|
145
|
+
return 1
|
|
146
|
+
fi
|
|
147
|
+
if [[ "$action" == "add_hook" ]]; then
|
|
148
|
+
local existing
|
|
149
|
+
existing=$(jq -r ".scripts[\"$event\"] // empty" "$file" 2>/dev/null)
|
|
150
|
+
if [[ -z "$existing" ]]; then
|
|
151
|
+
jq --arg e "$event" --arg c "$cmd" '.scripts[$e] = $c' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
|
|
152
|
+
elif jq -e ".scripts[\"$event\"] | type == \"string\"" "$file" &>/dev/null; then
|
|
153
|
+
jq --arg e "$event" --arg c "$cmd" '.scripts[$e] = [.scripts[$e], $c]' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
|
|
154
|
+
elif jq -e ".scripts[\"$event\"] | type == \"array\"" "$file" &>/dev/null; then
|
|
155
|
+
jq --arg e "$event" --arg c "$cmd" '.scripts[$e] += [$c]' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
|
|
156
|
+
fi
|
|
157
|
+
fi
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
# --- Python implementation ---
|
|
161
|
+
_cmd_python() {
|
|
162
|
+
local file="$1" action="$2" event="$3" cmd="$4"
|
|
163
|
+
python3 -c "
|
|
164
|
+
import json, sys
|
|
165
|
+
with open('$file') as f: data = json.load(f)
|
|
166
|
+
event, cmd = '$event', '$cmd'
|
|
167
|
+
if '$action' == 'hook_exists':
|
|
168
|
+
scripts = data.get('scripts', {})
|
|
169
|
+
val = scripts.get(event)
|
|
170
|
+
if val is None: sys.exit(1)
|
|
171
|
+
if isinstance(val, str) and 'agent-config/scripts/install.sh' in val: sys.exit(0)
|
|
172
|
+
if isinstance(val, list) and any('agent-config/scripts/install.sh' in v for v in val): sys.exit(0)
|
|
173
|
+
sys.exit(1)
|
|
174
|
+
if '$action' == 'add_hook':
|
|
175
|
+
if 'scripts' not in data: data['scripts'] = {}
|
|
176
|
+
if event not in data['scripts']:
|
|
177
|
+
data['scripts'][event] = cmd
|
|
178
|
+
elif isinstance(data['scripts'][event], str):
|
|
179
|
+
data['scripts'][event] = [data['scripts'][event], cmd]
|
|
180
|
+
elif isinstance(data['scripts'][event], list):
|
|
181
|
+
data['scripts'][event].append(cmd)
|
|
182
|
+
with open('$file', 'w') as f: json.dump(data, f, indent=4, ensure_ascii=False); f.write('\n')
|
|
183
|
+
"
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
# --- Main ---
|
|
187
|
+
main() {
|
|
188
|
+
detect_json_tool
|
|
189
|
+
|
|
190
|
+
local root
|
|
191
|
+
root=$(find_project_root)
|
|
192
|
+
local file="$root/$COMPOSER_JSON"
|
|
193
|
+
|
|
194
|
+
echo ""
|
|
195
|
+
echo " 🔧 agent-config setup"
|
|
196
|
+
echo " Project: $root"
|
|
197
|
+
echo " JSON tool: $JSON_TOOL"
|
|
198
|
+
echo ""
|
|
199
|
+
|
|
200
|
+
local changed=false
|
|
201
|
+
|
|
202
|
+
for event in "post-install-cmd" "post-update-cmd"; do
|
|
203
|
+
if composer_json_cmd "$file" "hook_exists" "$event"; then
|
|
204
|
+
log_skip "$event hook already configured"
|
|
205
|
+
else
|
|
206
|
+
composer_json_cmd "$file" "add_hook" "$event" "$HOOK_CMD"
|
|
207
|
+
log_info "Added $event hook"
|
|
208
|
+
changed=true
|
|
209
|
+
fi
|
|
210
|
+
done
|
|
211
|
+
|
|
212
|
+
echo ""
|
|
213
|
+
|
|
214
|
+
if [[ "$changed" == "true" ]]; then
|
|
215
|
+
local install_script="$root/vendor/event4u/agent-config/scripts/install.sh"
|
|
216
|
+
if [[ -f "$install_script" ]]; then
|
|
217
|
+
log_info "Running install.sh now..."
|
|
218
|
+
bash "$install_script"
|
|
219
|
+
else
|
|
220
|
+
log_warn "install.sh not found in vendor yet — will run on next composer install/update."
|
|
221
|
+
fi
|
|
222
|
+
echo ""
|
|
223
|
+
log_info "Setup complete! Hooks will run automatically on composer install/update."
|
|
224
|
+
log_warn "Commit the updated composer.json to your repository."
|
|
225
|
+
else
|
|
226
|
+
log_skip "Nothing to do — already configured."
|
|
227
|
+
fi
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
main "$@"
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Bootstrap .venv/ for the live trigger-eval runner.
|
|
3
|
+
#
|
|
4
|
+
# We install the anthropic SDK in an isolated virtualenv instead of the
|
|
5
|
+
# system Python so:
|
|
6
|
+
# - the SDK never leaks into the user's global interpreter,
|
|
7
|
+
# - no PYTHONPATH / sys.path surprises when other scripts import
|
|
8
|
+
# parts of the repo,
|
|
9
|
+
# - removal is `rm -rf .venv/` with no state elsewhere.
|
|
10
|
+
#
|
|
11
|
+
# The Taskfile target `task test-triggers-live` calls
|
|
12
|
+
# `.venv/bin/python3 scripts/skill_trigger_eval.py` directly, so the
|
|
13
|
+
# user never needs to `source .venv/bin/activate`.
|
|
14
|
+
#
|
|
15
|
+
# Idempotent: safe to rerun to refresh pins.
|
|
16
|
+
|
|
17
|
+
set -euo pipefail
|
|
18
|
+
|
|
19
|
+
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
20
|
+
cd "${REPO_ROOT}"
|
|
21
|
+
|
|
22
|
+
VENV_DIR=".venv"
|
|
23
|
+
REQ_FILE="scripts/requirements-evals.txt"
|
|
24
|
+
|
|
25
|
+
if [[ ! -f "${REQ_FILE}" ]]; then
|
|
26
|
+
echo "❌ ${REQ_FILE} missing — aborting."
|
|
27
|
+
exit 2
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# Prefer python3.10+ if available; fall back to the system python3.
|
|
31
|
+
PY="python3"
|
|
32
|
+
for candidate in python3.12 python3.11 python3.10; do
|
|
33
|
+
if command -v "${candidate}" >/dev/null 2>&1; then
|
|
34
|
+
PY="${candidate}"
|
|
35
|
+
break
|
|
36
|
+
fi
|
|
37
|
+
done
|
|
38
|
+
|
|
39
|
+
if [[ ! -d "${VENV_DIR}" ]]; then
|
|
40
|
+
echo "→ Creating ${VENV_DIR} with ${PY} ..."
|
|
41
|
+
"${PY}" -m venv "${VENV_DIR}"
|
|
42
|
+
else
|
|
43
|
+
echo "→ Reusing existing ${VENV_DIR}"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
echo "→ Upgrading pip ..."
|
|
47
|
+
"${VENV_DIR}/bin/pip" install --upgrade pip -q
|
|
48
|
+
|
|
49
|
+
echo "→ Installing pinned requirements from ${REQ_FILE} ..."
|
|
50
|
+
"${VENV_DIR}/bin/pip" install -q -r "${REQ_FILE}"
|
|
51
|
+
|
|
52
|
+
echo
|
|
53
|
+
"${VENV_DIR}/bin/python3" -c "import anthropic; print(f'✅ anthropic {anthropic.__version__}')"
|
|
54
|
+
"${VENV_DIR}/bin/python3" --version
|
|
55
|
+
echo
|
|
56
|
+
echo "Venv ready at ${REPO_ROOT}/${VENV_DIR}."
|
|
57
|
+
echo "Next: task install-anthropic-key # will prompt for your key"
|
|
58
|
+
echo "Then: task test-triggers-live -- eloquent"
|