@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,109 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
SETTINGS_FILE=".agent-settings.yml"
|
|
5
|
+
LEGACY_SETTINGS_FILE=".agent-settings"
|
|
6
|
+
|
|
7
|
+
echo ""
|
|
8
|
+
echo "========================================"
|
|
9
|
+
echo " Agent Config — First Run"
|
|
10
|
+
echo "========================================"
|
|
11
|
+
echo ""
|
|
12
|
+
|
|
13
|
+
# --- Profile detection ---
|
|
14
|
+
# The YAML format stores `cost_profile` as a top-level scalar:
|
|
15
|
+
# cost_profile: minimal
|
|
16
|
+
# It may be unquoted or double-quoted after migration. We strip both.
|
|
17
|
+
read_cost_profile() {
|
|
18
|
+
local file="$1"
|
|
19
|
+
grep -E '^cost_profile:' "$file" 2>/dev/null \
|
|
20
|
+
| head -n1 \
|
|
21
|
+
| sed -E 's/^cost_profile:[[:space:]]*//' \
|
|
22
|
+
| sed -E 's/^"(.*)"$/\1/' \
|
|
23
|
+
| sed -E "s/^'(.*)'\$/\\1/" \
|
|
24
|
+
| tr -d '[:space:]'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
28
|
+
echo "✅ Found $SETTINGS_FILE"
|
|
29
|
+
echo ""
|
|
30
|
+
CURRENT_PROFILE=$(read_cost_profile "$SETTINGS_FILE" || true)
|
|
31
|
+
|
|
32
|
+
if [ -n "${CURRENT_PROFILE:-}" ]; then
|
|
33
|
+
echo "Active cost_profile: $CURRENT_PROFILE"
|
|
34
|
+
else
|
|
35
|
+
echo "No cost_profile configured yet."
|
|
36
|
+
echo ""
|
|
37
|
+
echo "Recommended: add this to $SETTINGS_FILE:"
|
|
38
|
+
echo ""
|
|
39
|
+
echo " cost_profile: minimal"
|
|
40
|
+
fi
|
|
41
|
+
elif [ -f "$LEGACY_SETTINGS_FILE" ]; then
|
|
42
|
+
echo "⚠️ Found legacy $LEGACY_SETTINGS_FILE (key=value format)."
|
|
43
|
+
echo ""
|
|
44
|
+
echo " Run 'scripts/install' (or 'php vendor/bin/install.php') to migrate"
|
|
45
|
+
echo " it to $SETTINGS_FILE automatically."
|
|
46
|
+
echo ""
|
|
47
|
+
else
|
|
48
|
+
echo "❌ No $SETTINGS_FILE found."
|
|
49
|
+
echo ""
|
|
50
|
+
echo "Create one with:"
|
|
51
|
+
echo ""
|
|
52
|
+
echo " cost_profile: minimal"
|
|
53
|
+
echo ""
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
# --- What this gives you ---
|
|
57
|
+
echo ""
|
|
58
|
+
echo "What this gives you:"
|
|
59
|
+
echo " ✅ Analysis before implementation"
|
|
60
|
+
echo " ✅ Clarification instead of guessing"
|
|
61
|
+
echo " ✅ Alignment with your existing codebase"
|
|
62
|
+
echo " ✅ Zero token overhead in minimal mode"
|
|
63
|
+
echo ""
|
|
64
|
+
|
|
65
|
+
# --- 3 test prompts ---
|
|
66
|
+
echo "========================================"
|
|
67
|
+
echo " Try these 3 prompts now"
|
|
68
|
+
echo "========================================"
|
|
69
|
+
echo ""
|
|
70
|
+
|
|
71
|
+
echo "1️⃣ Refactoring check"
|
|
72
|
+
echo ' Ask your agent: "Refactor this function"'
|
|
73
|
+
echo ""
|
|
74
|
+
echo " Watch for:"
|
|
75
|
+
echo " → Agent analyzes BEFORE coding"
|
|
76
|
+
echo " → Agent does NOT jump directly into a rewrite"
|
|
77
|
+
echo ""
|
|
78
|
+
|
|
79
|
+
echo "2️⃣ Ambiguity check"
|
|
80
|
+
echo ' Ask your agent: "Add caching to this"'
|
|
81
|
+
echo ""
|
|
82
|
+
echo " Watch for:"
|
|
83
|
+
echo " → Agent asks targeted questions"
|
|
84
|
+
echo " → Agent does NOT guess what you mean"
|
|
85
|
+
echo ""
|
|
86
|
+
|
|
87
|
+
echo "3️⃣ Feature-fit check"
|
|
88
|
+
echo ' Ask your agent: "Implement this feature"'
|
|
89
|
+
echo ""
|
|
90
|
+
echo " Watch for:"
|
|
91
|
+
echo " → Agent considers your existing codebase"
|
|
92
|
+
echo " → Agent avoids conflicting patterns"
|
|
93
|
+
echo " → Agent challenges weak requirements"
|
|
94
|
+
echo ""
|
|
95
|
+
|
|
96
|
+
# --- Next steps ---
|
|
97
|
+
echo "========================================"
|
|
98
|
+
echo " Next steps"
|
|
99
|
+
echo "========================================"
|
|
100
|
+
echo ""
|
|
101
|
+
echo "Cost profiles:"
|
|
102
|
+
echo " minimal rules, skills, commands only"
|
|
103
|
+
echo " balanced + runtime dispatcher"
|
|
104
|
+
echo " full + experimental read-only tool adapters"
|
|
105
|
+
echo ""
|
|
106
|
+
echo "Change profile: edit cost_profile: <name> in $SETTINGS_FILE"
|
|
107
|
+
echo "Profile details: docs/customization.md"
|
|
108
|
+
echo "Getting started: docs/getting-started.md"
|
|
109
|
+
echo ""
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Generate llms.txt and docs/skills-catalog.md from SKILL.md frontmatter.
|
|
3
|
+
|
|
4
|
+
Reads name + description from each `.agent-src/skills/*/SKILL.md` and writes:
|
|
5
|
+
|
|
6
|
+
- `llms.txt` — machine-readable index (plain text)
|
|
7
|
+
- `docs/skills-catalog.md` — human-readable catalog (markdown)
|
|
8
|
+
|
|
9
|
+
Idempotent. Safe to re-run. Sort order: alphabetical by skill name.
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
python3 scripts/generate_catalog.py
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
import re
|
|
18
|
+
from pathlib import Path
|
|
19
|
+
|
|
20
|
+
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
21
|
+
SKILLS_DIR = REPO_ROOT / ".agent-src" / "skills"
|
|
22
|
+
LLMS_TXT = REPO_ROOT / "llms.txt"
|
|
23
|
+
CATALOG_MD = REPO_ROOT / "docs" / "skills-catalog.md"
|
|
24
|
+
|
|
25
|
+
FRONTMATTER_RE = re.compile(r"^---\s*\n(.*?)\n---", re.DOTALL)
|
|
26
|
+
NAME_RE = re.compile(r"^name:\s*(.+?)\s*$", re.MULTILINE)
|
|
27
|
+
DESC_RE = re.compile(r"^description:\s*\"?(.+?)\"?\s*$", re.MULTILINE)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def parse_skill(skill_md: Path) -> tuple[str, str] | None:
|
|
31
|
+
text = skill_md.read_text(encoding="utf-8")
|
|
32
|
+
m = FRONTMATTER_RE.match(text)
|
|
33
|
+
if not m:
|
|
34
|
+
return None
|
|
35
|
+
front = m.group(1)
|
|
36
|
+
name_m = NAME_RE.search(front)
|
|
37
|
+
desc_m = DESC_RE.search(front)
|
|
38
|
+
if not name_m or not desc_m:
|
|
39
|
+
return None
|
|
40
|
+
return name_m.group(1).strip(), desc_m.group(1).strip()
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def collect_skills() -> list[tuple[str, str]]:
|
|
44
|
+
skills = []
|
|
45
|
+
for skill_dir in sorted(SKILLS_DIR.iterdir()):
|
|
46
|
+
if not skill_dir.is_dir():
|
|
47
|
+
continue
|
|
48
|
+
skill_md = skill_dir / "SKILL.md"
|
|
49
|
+
if not skill_md.exists():
|
|
50
|
+
continue
|
|
51
|
+
parsed = parse_skill(skill_md)
|
|
52
|
+
if parsed is not None:
|
|
53
|
+
skills.append(parsed)
|
|
54
|
+
return skills
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def render_llms_txt(skills: list[tuple[str, str]]) -> str:
|
|
58
|
+
lines = [
|
|
59
|
+
"# agent-config — Skill Index",
|
|
60
|
+
"",
|
|
61
|
+
"Machine-readable index of all skills in this package. Each line:",
|
|
62
|
+
" <skill-name>: <one-line description>",
|
|
63
|
+
"",
|
|
64
|
+
"Source: .agent-src/skills/<name>/SKILL.md",
|
|
65
|
+
"Catalog: docs/skills-catalog.md",
|
|
66
|
+
"",
|
|
67
|
+
]
|
|
68
|
+
for name, desc in skills:
|
|
69
|
+
lines.append(f"{name}: {desc}")
|
|
70
|
+
lines.append("")
|
|
71
|
+
return "\n".join(lines)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def render_catalog_md(skills: list[tuple[str, str]]) -> str:
|
|
75
|
+
lines = [
|
|
76
|
+
"# Skills Catalog",
|
|
77
|
+
"",
|
|
78
|
+
f"All **{len(skills)} skills** available in this package, in alphabetical order.",
|
|
79
|
+
"Click a skill name to open its SKILL.md and read the full guidance.",
|
|
80
|
+
"",
|
|
81
|
+
"> **Regenerate:** `python3 scripts/generate_catalog.py`",
|
|
82
|
+
"> This file is auto-generated from `SKILL.md` frontmatter — do not edit manually.",
|
|
83
|
+
"",
|
|
84
|
+
"| Skill | What your agent learns |",
|
|
85
|
+
"|---|---|",
|
|
86
|
+
]
|
|
87
|
+
for name, desc in skills:
|
|
88
|
+
lines.append(f"| [`{name}`](../.agent-src/skills/{name}/SKILL.md) | {desc} |")
|
|
89
|
+
lines.append("")
|
|
90
|
+
lines.append("---")
|
|
91
|
+
lines.append("")
|
|
92
|
+
lines.append("← [Back to README](../README.md)")
|
|
93
|
+
lines.append("")
|
|
94
|
+
return "\n".join(lines)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def main() -> int:
|
|
98
|
+
if not SKILLS_DIR.exists():
|
|
99
|
+
print(f"❌ Skills directory not found: {SKILLS_DIR}")
|
|
100
|
+
return 1
|
|
101
|
+
skills = collect_skills()
|
|
102
|
+
if not skills:
|
|
103
|
+
print("❌ No skills found.")
|
|
104
|
+
return 1
|
|
105
|
+
|
|
106
|
+
LLMS_TXT.write_text(render_llms_txt(skills), encoding="utf-8")
|
|
107
|
+
CATALOG_MD.parent.mkdir(parents=True, exist_ok=True)
|
|
108
|
+
CATALOG_MD.write_text(render_catalog_md(skills), encoding="utf-8")
|
|
109
|
+
|
|
110
|
+
print(f"✅ Wrote {LLMS_TXT.relative_to(REPO_ROOT)} ({len(skills)} skills)")
|
|
111
|
+
print(f"✅ Wrote {CATALOG_MD.relative_to(REPO_ROOT)}")
|
|
112
|
+
return 0
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
if __name__ == "__main__":
|
|
116
|
+
raise SystemExit(main())
|
package/scripts/install
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# install — Primary entry point for agent-config installation.
|
|
3
|
+
#
|
|
4
|
+
# Orchestrates the two stages:
|
|
5
|
+
# 1. scripts/install.sh — payload sync (copy rules, symlink skills/commands)
|
|
6
|
+
# 2. scripts/install.py — bridge files (.agent-settings, VSCode/Augment JSONs)
|
|
7
|
+
#
|
|
8
|
+
# This is the only installer a consumer needs to invoke. The underlying
|
|
9
|
+
# scripts remain callable directly for advanced use; see their --help.
|
|
10
|
+
#
|
|
11
|
+
# Usage:
|
|
12
|
+
# bash scripts/install [OPTIONS]
|
|
13
|
+
#
|
|
14
|
+
# Options:
|
|
15
|
+
# --source <dir> Package source directory (default: auto-detect)
|
|
16
|
+
# --target <dir> Target project root (default: cwd)
|
|
17
|
+
# --profile <name> Cost profile for bridges (minimal|balanced|full)
|
|
18
|
+
# --force Overwrite existing bridge files
|
|
19
|
+
# --dry-run Show what payload sync would do (does not run bridges)
|
|
20
|
+
# --verbose Detailed payload sync output
|
|
21
|
+
# --quiet Suppress non-error output
|
|
22
|
+
# --skip-sync Skip payload sync (install.sh)
|
|
23
|
+
# --skip-bridges Skip bridge files (install.py)
|
|
24
|
+
# --help, -h Show this help
|
|
25
|
+
|
|
26
|
+
set -uo pipefail
|
|
27
|
+
|
|
28
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
29
|
+
INSTALL_SH="$SCRIPT_DIR/install.sh"
|
|
30
|
+
INSTALL_PY="$SCRIPT_DIR/install.py"
|
|
31
|
+
|
|
32
|
+
SOURCE_DIR=""
|
|
33
|
+
TARGET_DIR=""
|
|
34
|
+
PROFILE=""
|
|
35
|
+
FORCE=false
|
|
36
|
+
DRY_RUN=false
|
|
37
|
+
VERBOSE=false
|
|
38
|
+
QUIET=false
|
|
39
|
+
SKIP_SYNC=false
|
|
40
|
+
SKIP_BRIDGES=false
|
|
41
|
+
|
|
42
|
+
show_help() {
|
|
43
|
+
sed -n '3,25p' "${BASH_SOURCE[0]}" | sed 's/^# \{0,1\}//'
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
err() { echo " ❌ $*" >&2; }
|
|
47
|
+
|
|
48
|
+
while [[ $# -gt 0 ]]; do
|
|
49
|
+
case "$1" in
|
|
50
|
+
--source) SOURCE_DIR="$2"; shift 2 ;;
|
|
51
|
+
--source=*) SOURCE_DIR="${1#*=}"; shift ;;
|
|
52
|
+
--target) TARGET_DIR="$2"; shift 2 ;;
|
|
53
|
+
--target=*) TARGET_DIR="${1#*=}"; shift ;;
|
|
54
|
+
--profile) PROFILE="$2"; shift 2 ;;
|
|
55
|
+
--profile=*) PROFILE="${1#*=}"; shift ;;
|
|
56
|
+
--force) FORCE=true; shift ;;
|
|
57
|
+
--dry-run) DRY_RUN=true; shift ;;
|
|
58
|
+
--verbose) VERBOSE=true; shift ;;
|
|
59
|
+
--quiet) QUIET=true; shift ;;
|
|
60
|
+
--skip-sync) SKIP_SYNC=true; shift ;;
|
|
61
|
+
--skip-bridges) SKIP_BRIDGES=true; shift ;;
|
|
62
|
+
--help|-h) show_help; exit 0 ;;
|
|
63
|
+
*) err "Unknown argument: $1"; show_help >&2; exit 1 ;;
|
|
64
|
+
esac
|
|
65
|
+
done
|
|
66
|
+
|
|
67
|
+
# Auto-detect source: directory above this script
|
|
68
|
+
if [[ -z "$SOURCE_DIR" ]]; then
|
|
69
|
+
SOURCE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# Auto-detect target: PROJECT_ROOT env, or derive from vendor/node_modules path, else cwd
|
|
73
|
+
if [[ -z "$TARGET_DIR" ]]; then
|
|
74
|
+
if [[ -n "${PROJECT_ROOT:-}" ]]; then
|
|
75
|
+
TARGET_DIR="$PROJECT_ROOT"
|
|
76
|
+
elif [[ "$SOURCE_DIR" == */vendor/event4u/agent-config ]]; then
|
|
77
|
+
TARGET_DIR="$(cd "$SOURCE_DIR/../../.." && pwd)"
|
|
78
|
+
elif [[ "$SOURCE_DIR" == */node_modules/@event4u/agent-config ]]; then
|
|
79
|
+
TARGET_DIR="$(cd "$SOURCE_DIR/../../.." && pwd)"
|
|
80
|
+
elif [[ "$SOURCE_DIR" == */node_modules/*/agent-config ]]; then
|
|
81
|
+
TARGET_DIR="$(cd "$SOURCE_DIR/../../.." && pwd)"
|
|
82
|
+
else
|
|
83
|
+
TARGET_DIR="$(pwd)"
|
|
84
|
+
fi
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
# Find python3 for the bridges stage (optional until SKIP_BRIDGES=false)
|
|
88
|
+
find_python() {
|
|
89
|
+
local candidate path
|
|
90
|
+
for candidate in python3 python; do
|
|
91
|
+
path="$(command -v "$candidate" 2>/dev/null || true)"
|
|
92
|
+
[[ -z "$path" ]] && continue
|
|
93
|
+
if "$path" -c 'import sys; exit(0 if sys.version_info[0] >= 3 else 1)' 2>/dev/null; then
|
|
94
|
+
echo "$path"
|
|
95
|
+
return 0
|
|
96
|
+
fi
|
|
97
|
+
done
|
|
98
|
+
return 1
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
run_sync() {
|
|
102
|
+
local args=(--source "$SOURCE_DIR" --target "$TARGET_DIR")
|
|
103
|
+
$DRY_RUN && args+=(--dry-run)
|
|
104
|
+
$VERBOSE && args+=(--verbose)
|
|
105
|
+
$QUIET && args+=(--quiet)
|
|
106
|
+
bash "$INSTALL_SH" "${args[@]}"
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
run_bridges() {
|
|
110
|
+
local python_bin
|
|
111
|
+
if ! python_bin="$(find_python)"; then
|
|
112
|
+
$QUIET || echo " ⚠️ Python 3 not found — skipping .agent-settings and bridge files." >&2
|
|
113
|
+
$QUIET || echo " Install python3 and re-run: bash scripts/install --skip-sync" >&2
|
|
114
|
+
return 0
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
if $DRY_RUN; then
|
|
118
|
+
$QUIET || echo " ⏭️ Skipping bridges (--dry-run)"
|
|
119
|
+
return 0
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
local args=(--project "$TARGET_DIR" --package "$SOURCE_DIR")
|
|
123
|
+
[[ -n "$PROFILE" ]] && args+=(--profile="$PROFILE")
|
|
124
|
+
$FORCE && args+=(--force)
|
|
125
|
+
$QUIET && args+=(--quiet)
|
|
126
|
+
"$python_bin" "$INSTALL_PY" "${args[@]}"
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
RC=0
|
|
130
|
+
if ! $SKIP_SYNC; then
|
|
131
|
+
if [[ ! -f "$INSTALL_SH" ]]; then
|
|
132
|
+
err "Missing $INSTALL_SH"
|
|
133
|
+
exit 1
|
|
134
|
+
fi
|
|
135
|
+
run_sync || RC=$?
|
|
136
|
+
fi
|
|
137
|
+
|
|
138
|
+
if [[ $RC -ne 0 ]]; then
|
|
139
|
+
err "Payload sync failed (exit $RC); skipping bridges."
|
|
140
|
+
exit $RC
|
|
141
|
+
fi
|
|
142
|
+
|
|
143
|
+
if ! $SKIP_BRIDGES; then
|
|
144
|
+
if [[ ! -f "$INSTALL_PY" ]]; then
|
|
145
|
+
err "Missing $INSTALL_PY"
|
|
146
|
+
exit 1
|
|
147
|
+
fi
|
|
148
|
+
run_bridges || RC=$?
|
|
149
|
+
fi
|
|
150
|
+
|
|
151
|
+
exit $RC
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Install git hooks for this repository.
|
|
3
|
+
# Run once: bash scripts/install-hooks.sh
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
+
HOOKS_DIR="$PROJECT_ROOT/.git/hooks"
|
|
10
|
+
|
|
11
|
+
mkdir -p "$HOOKS_DIR"
|
|
12
|
+
|
|
13
|
+
cat > "$HOOKS_DIR/pre-push" << 'EOF'
|
|
14
|
+
#!/usr/bin/env bash
|
|
15
|
+
# Pre-push hook: verify .agent-src/ is in sync with .agent-src.uncompressed/
|
|
16
|
+
|
|
17
|
+
echo "🔍 Checking .agent-src/ sync..."
|
|
18
|
+
python3 scripts/compress.py --check
|
|
19
|
+
|
|
20
|
+
if [ $? -ne 0 ]; then
|
|
21
|
+
echo ""
|
|
22
|
+
echo "❌ Push blocked — .agent-src/ is out of sync."
|
|
23
|
+
echo " Run 'task sync' and compress changed .md files, then commit."
|
|
24
|
+
exit 1
|
|
25
|
+
fi
|
|
26
|
+
EOF
|
|
27
|
+
|
|
28
|
+
chmod +x "$HOOKS_DIR/pre-push"
|
|
29
|
+
echo "✅ Pre-push hook installed."
|