@event4u/agent-config 1.15.0 → 1.17.0
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/commands/{agents-audit.md → agents/audit.md} +4 -3
- package/.agent-src/commands/{agents-cleanup.md → agents/cleanup.md} +12 -6
- package/.agent-src/commands/{agents-prepare.md → agents/prepare.md} +4 -3
- package/.agent-src/commands/agents.md +46 -0
- package/.agent-src/commands/bug-fix.md +1 -1
- package/.agent-src/commands/bug-investigate.md +2 -2
- package/.agent-src/commands/{chat-history-checkpoint.md → chat-history/checkpoint.md} +5 -5
- package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +5 -5
- package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
- package/.agent-src/commands/chat-history/show.md +107 -0
- package/.agent-src/commands/chat-history.md +33 -89
- package/.agent-src/commands/check-current-md.md +1 -1
- package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
- package/.agent-src/commands/commit.md +22 -2
- package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
- package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
- package/.agent-src/commands/context.md +44 -0
- package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
- package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
- package/.agent-src/commands/copilot-agents.md +44 -0
- package/.agent-src/commands/council/default.md +221 -0
- package/.agent-src/commands/council/design.md +97 -0
- package/.agent-src/commands/council/optimize.md +116 -0
- package/.agent-src/commands/council/pr.md +124 -0
- package/.agent-src/commands/council.md +54 -0
- package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
- package/.agent-src/commands/create-pr.md +49 -5
- package/.agent-src/commands/e2e-heal.md +1 -1
- package/.agent-src/commands/e2e-plan.md +1 -1
- package/.agent-src/commands/{feature-dev.md → feature/dev.md} +6 -3
- package/.agent-src/commands/{feature-explore.md → feature/explore.md} +5 -4
- package/.agent-src/commands/{feature-plan.md → feature/plan.md} +32 -5
- package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -3
- package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +7 -6
- package/.agent-src/commands/feature.md +52 -0
- package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -3
- package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -3
- package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -3
- package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -3
- package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -6
- package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -3
- package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -3
- package/.agent-src/commands/fix.md +54 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +7 -6
- package/.agent-src/commands/judge/solo.md +90 -0
- package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +8 -7
- package/.agent-src/commands/judge.md +35 -70
- package/.agent-src/commands/{memory-add.md → memory/add.md} +7 -6
- package/.agent-src/commands/{memory-full.md → memory/load.md} +6 -5
- package/.agent-src/commands/{memory-promote.md → memory/promote.md} +6 -5
- package/.agent-src/commands/{propose-memory.md → memory/propose.md} +6 -5
- package/.agent-src/commands/memory.md +48 -0
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
- package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
- package/.agent-src/commands/module.md +44 -0
- package/.agent-src/commands/onboard.md +3 -3
- package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +5 -4
- package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -4
- package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -3
- package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +5 -4
- package/.agent-src/commands/optimize.md +48 -0
- package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
- package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
- package/.agent-src/commands/override.md +44 -0
- package/.agent-src/commands/review-changes.md +26 -1
- package/.agent-src/commands/review-routing.md +1 -1
- package/.agent-src/commands/{roadmap-create.md → roadmap/create.md} +33 -5
- package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
- package/.agent-src/commands/roadmap.md +44 -0
- package/.agent-src/commands/set-cost-profile.md +3 -3
- package/.agent-src/commands/sync-agent-settings.md +2 -2
- package/.agent-src/commands/{tests-create.md → tests/create.md} +5 -4
- package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
- package/.agent-src/commands/tests.md +44 -0
- package/.agent-src/commands/upstream-contribute.md +1 -1
- package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
- package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
- package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
- package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
- package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
- package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
- package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
- package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
- package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
- package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
- package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
- package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -0
- package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
- package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
- package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
- package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
- package/.agent-src/contexts/judges/no-consolidate-rationale.md +102 -0
- package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -0
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/rules/agent-authority.md +24 -0
- package/.agent-src/rules/architecture.md +1 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/.agent-src/rules/artifact-engagement-recording.md +14 -70
- package/.agent-src/rules/ask-when-uncertain.md +28 -43
- package/.agent-src/rules/augment-portability.md +15 -61
- package/.agent-src/rules/augment-source-of-truth.md +27 -93
- package/.agent-src/rules/autonomous-execution.md +78 -114
- package/.agent-src/rules/capture-learnings.md +1 -1
- package/.agent-src/rules/chat-history-cadence.md +3 -3
- package/.agent-src/rules/chat-history-ownership.md +3 -3
- package/.agent-src/rules/chat-history-visibility.md +3 -3
- package/.agent-src/rules/cli-output-handling.md +10 -76
- package/.agent-src/rules/command-suggestion-policy.md +93 -0
- package/.agent-src/rules/commit-conventions.md +17 -14
- package/.agent-src/rules/commit-policy.md +14 -42
- package/.agent-src/rules/context-hygiene.md +3 -3
- package/.agent-src/rules/direct-answers.md +34 -49
- package/.agent-src/rules/docker-commands.md +5 -5
- package/.agent-src/rules/docs-sync.md +16 -70
- package/.agent-src/rules/e2e-testing.md +1 -1
- package/.agent-src/rules/guidelines.md +4 -4
- package/.agent-src/rules/improve-before-implement.md +2 -2
- package/.agent-src/rules/language-and-tone.md +50 -133
- package/.agent-src/rules/minimal-safe-diff.md +3 -3
- package/.agent-src/rules/missing-tool-handling.md +28 -22
- package/.agent-src/rules/model-recommendation.md +4 -4
- package/.agent-src/rules/no-cheap-questions.md +82 -0
- package/.agent-src/rules/no-roadmap-references.md +73 -0
- package/.agent-src/rules/non-destructive-by-default.md +15 -49
- package/.agent-src/rules/onboarding-gate.md +5 -5
- package/.agent-src/rules/package-ci-checks.md +21 -61
- package/.agent-src/rules/preservation-guard.md +64 -29
- package/.agent-src/rules/review-routing-awareness.md +26 -45
- package/.agent-src/rules/roadmap-progress-sync.md +28 -96
- package/.agent-src/rules/role-mode-adherence.md +2 -2
- package/.agent-src/rules/scope-control.md +65 -46
- package/.agent-src/rules/security-sensitive-stop.md +9 -9
- package/.agent-src/rules/size-enforcement.md +1 -1
- package/.agent-src/rules/skill-quality.md +16 -48
- package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +7 -4
- package/.agent-src/rules/think-before-action.md +55 -45
- package/.agent-src/rules/token-efficiency.md +4 -4
- package/.agent-src/rules/tool-safety.md +19 -16
- package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +27 -41
- package/.agent-src/rules/user-interaction.md +16 -71
- package/.agent-src/rules/verify-before-complete.md +12 -67
- package/.agent-src/scripts/update_roadmap_progress.py +9 -4
- package/.agent-src/skills/ai-council/SKILL.md +335 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/.agent-src/skills/api-testing/SKILL.md +1 -1
- package/.agent-src/skills/blade-ui/SKILL.md +1 -1
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/check-refs/SKILL.md +59 -40
- package/.agent-src/skills/command-routing/SKILL.md +1 -1
- package/.agent-src/skills/command-writing/SKILL.md +1 -1
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +7 -7
- package/.agent-src/skills/developer-like-execution/SKILL.md +6 -6
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
- package/.agent-src/skills/flux/SKILL.md +31 -11
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/github-ci/SKILL.md +2 -2
- package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
- package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
- package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
- package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/lint-skills/SKILL.md +57 -39
- package/.agent-src/skills/livewire/SKILL.md +1 -1
- package/.agent-src/skills/md-language-check/SKILL.md +61 -39
- package/.agent-src/skills/override-management/SKILL.md +7 -7
- package/.agent-src/skills/php-coder/SKILL.md +1 -1
- package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
- package/.agent-src/skills/quality-tools/SKILL.md +2 -2
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
- package/.agent-src/skills/readme-reviewer/SKILL.md +31 -30
- package/.agent-src/skills/readme-writing/SKILL.md +79 -54
- package/.agent-src/skills/readme-writing-package/SKILL.md +51 -48
- package/.agent-src/skills/receiving-code-review/SKILL.md +53 -48
- package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
- package/.agent-src/skills/review-routing/SKILL.md +2 -2
- package/.agent-src/skills/rule-writing/SKILL.md +1 -1
- package/.agent-src/skills/security/SKILL.md +7 -2
- package/.agent-src/skills/security-audit/SKILL.md +7 -3
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/skill-writing/SKILL.md +3 -3
- package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +69 -61
- package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
- package/.agent-src/skills/test-performance/SKILL.md +0 -1
- package/.agent-src/skills/traefik/SKILL.md +4 -4
- package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +30 -28
- package/.agent-src/templates/agent-settings.md +8 -8
- package/.agent-src/templates/contexts/auth-model.md +1 -1
- package/.agent-src/templates/scripts/README.md +2 -2
- package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
- package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
- package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
- package/.agent-src/templates/scripts/telemetry_record.py +14 -1
- package/.claude-plugin/marketplace.json +31 -12
- package/AGENTS.md +11 -9
- package/CHANGELOG.md +213 -2
- package/README.md +43 -44
- package/config/agent-settings.template.yml +58 -1
- package/config/gitignore-block.txt +3 -0
- package/docs/architecture.md +5 -7
- package/docs/catalog.md +359 -0
- package/docs/contracts/STABILITY.md +46 -1
- package/docs/contracts/adr-chat-history-split.md +1 -3
- package/docs/contracts/adr-command-suggestion.md +3 -5
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
- package/docs/contracts/adr-product-ui-track.md +5 -8
- package/docs/contracts/adr-prompt-driven-execution.md +3 -4
- package/docs/contracts/agent-memory-contract.md +8 -13
- package/docs/contracts/artifact-engagement-flow.md +7 -10
- package/docs/contracts/command-clusters.md +56 -46
- package/docs/contracts/command-suggestion-flow.md +4 -6
- package/docs/contracts/context-paths.md +99 -0
- package/docs/contracts/file-ownership-matrix.json +6722 -0
- package/docs/contracts/file-ownership-matrix.md +134 -0
- package/docs/contracts/implement-ticket-flow.md +8 -11
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -2
- package/docs/contracts/linear-ai-three-layers.md +0 -2
- package/docs/contracts/load-context-budget-model.md +178 -0
- package/docs/contracts/load-context-schema.md +184 -0
- package/docs/contracts/rule-interactions.md +0 -1
- package/docs/contracts/rule-interactions.yml +96 -0
- package/docs/contracts/rule-priority-hierarchy.md +87 -0
- package/docs/contracts/ui-track-flow.md +8 -18
- package/docs/customization.md +16 -0
- package/docs/end-to-end-walkthroughs.md +165 -0
- package/docs/getting-started.md +29 -10
- package/docs/github-topics.md +12 -3
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
- package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
- package/docs/guidelines/php/git.md +164 -0
- package/docs/migrations/commands-1.15.0.md +1 -1
- package/docs/showcase.md +9 -4
- package/docs/skills-catalog.md +14 -8
- package/docs/ui-track-mental-model.md +2 -2
- package/llms.txt +13 -7
- package/package.json +1 -1
- package/scripts/_one_off_phase4_dispatch_latency.py +108 -0
- package/scripts/_one_off_phase6_trigger_jaccard.py +92 -0
- package/scripts/_phase2_shim_helper.py +109 -0
- package/scripts/agent-config +33 -0
- package/scripts/ai_council/__init__.py +39 -0
- package/scripts/ai_council/_default_prices.py +41 -0
- package/scripts/ai_council/_one_off_2a4_acceptance.py +208 -0
- package/scripts/ai_council/_one_off_context_layer_v1_estimate.py +67 -0
- package/scripts/ai_council/_one_off_context_layer_v1_review.py +292 -0
- package/scripts/ai_council/_one_off_followups_review.py +259 -0
- package/scripts/ai_council/_one_off_nondestructive_inline_audit.py +209 -0
- package/scripts/ai_council/_one_off_phase_2a_budget_rebalance.py +257 -0
- package/scripts/ai_council/_one_off_phase_2a_post_revert.py +197 -0
- package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
- package/scripts/ai_council/_one_off_roundtrip.py +106 -0
- package/scripts/ai_council/_one_off_rule_hardening_v1.py +251 -0
- package/scripts/ai_council/_one_off_structural_open_questions.py +232 -0
- package/scripts/ai_council/_one_off_structural_optimization.py +144 -0
- package/scripts/ai_council/_one_off_structural_v3_gaps.py +252 -0
- package/scripts/ai_council/_one_off_structural_v3_review.py +240 -0
- package/scripts/ai_council/budget_guard.py +172 -0
- package/scripts/ai_council/bundler.py +261 -0
- package/scripts/ai_council/clients.py +381 -0
- package/scripts/ai_council/modes.py +127 -0
- package/scripts/ai_council/orchestrator.py +350 -0
- package/scripts/ai_council/pricing.py +213 -0
- package/scripts/ai_council/project_context.py +159 -0
- package/scripts/ai_council/prompts.py +232 -0
- package/scripts/ai_council/session.py +144 -0
- package/scripts/check_always_budget.py +444 -0
- package/scripts/check_augmentignore.py +69 -0
- package/scripts/check_cluster_patterns.py +159 -0
- package/scripts/check_command_count_messaging.py +127 -0
- package/scripts/check_context_paths.py +201 -0
- package/scripts/check_no_roadmap_refs.py +155 -0
- package/scripts/check_phase_coupling.py +148 -0
- package/scripts/check_portability.py +57 -0
- package/scripts/check_public_catalog_links.py +122 -0
- package/scripts/check_references.py +33 -3
- package/scripts/check_roadmap_trackable.py +111 -0
- package/scripts/check_safety_floor_untouched.py +125 -0
- package/scripts/command_suggester/cooldown.py +1 -1
- package/scripts/command_suggester/loader.py +4 -1
- package/scripts/compress.py +59 -13
- package/scripts/generate_index.py +270 -0
- package/scripts/generate_ownership_matrix.py +323 -0
- package/scripts/hooks/augment-roadmap-progress.sh +57 -0
- package/scripts/install.py +49 -28
- package/scripts/install_anthropic_key.sh +5 -0
- package/scripts/install_openai_key.sh +106 -0
- package/scripts/lint_load_context.py +163 -0
- package/scripts/lint_no_new_atomic_commands.py +12 -11
- package/scripts/requirements-evals.txt +1 -0
- package/scripts/roadmap_progress_hook.py +159 -0
- package/scripts/schemas/command.schema.json +22 -1
- package/scripts/schemas/rule.schema.json +10 -0
- package/scripts/skill_linter.py +13 -4
- package/scripts/sync_agent_settings.py +26 -3
- package/scripts/update_counts.py +16 -4
- package/scripts/update_prices.py +124 -0
- package/.agent-src/guidelines/php/git.md +0 -96
- package/.agent-src/rules/command-suggestion.md +0 -134
- /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
- /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
|
@@ -16,57 +16,76 @@ execution:
|
|
|
16
16
|
|
|
17
17
|
## When to use
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
- Linking newly added artifact from elsewhere in `.agent-src.uncompressed/`
|
|
21
|
-
- Pre-PR when changes touch cross-references
|
|
22
|
-
- CI `check-refs` job failed and target ref needs locating
|
|
19
|
+
Use this skill when:
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
- A skill, rule, command, guideline, or context has been renamed or deleted
|
|
22
|
+
- Linking a newly added artifact from elsewhere in `.agent-src.uncompressed/`
|
|
23
|
+
- Preparing a PR that touches cross-references between agent artifacts
|
|
24
|
+
- CI's `check-refs` job failed and the broken reference needs to be located
|
|
25
|
+
|
|
26
|
+
Do NOT use when:
|
|
27
|
+
|
|
28
|
+
- Only the body of a single file changed and no names or paths were touched
|
|
29
|
+
- Checking frontmatter shape or required sections — use `lint-skills` instead
|
|
30
|
+
- Verifying compressed vs uncompressed pairs — use `bash scripts/compress.sh --check` instead
|
|
26
31
|
|
|
27
32
|
## Procedure
|
|
28
33
|
|
|
29
|
-
1.
|
|
30
|
-
run. Body-only edits cannot break refs.
|
|
31
|
-
2. **Dispatch via runtime** —
|
|
34
|
+
### 1. Inspect the scope of recent changes
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
Identify whether any artifact was renamed, moved, or removed since the last
|
|
37
|
+
clean run. Cross-reference checks are relevant only when names or paths shift;
|
|
38
|
+
pure body edits cannot break references.
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
returns typed `ExecutionResult`.
|
|
39
|
-
3. **Verify result** —
|
|
40
|
-
- `exit_code: 0` → all refs resolve
|
|
41
|
-
- `exit_code: 1` → broken refs — read stdout for `file:line → target`
|
|
42
|
-
- `status: timeout` → investigate, do not raise limit blindly
|
|
43
|
-
- `status: error` → interpreter or script missing, or wrong cwd
|
|
40
|
+
### 2. Dispatch via the runtime layer
|
|
44
41
|
|
|
45
|
-
|
|
42
|
+
Invoke the skill through the runtime dispatcher so the `execution:` block in
|
|
43
|
+
this skill's frontmatter governs the call:
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
4. Next action: fix, re-run, or surface raw stdout
|
|
45
|
+
```bash
|
|
46
|
+
python3 scripts/runtime_dispatcher.py run --skill check-refs
|
|
47
|
+
```
|
|
51
48
|
|
|
52
|
-
|
|
49
|
+
The dispatcher resolves the request, the shell handler runs
|
|
50
|
+
`python3 scripts/check_references.py`, captures stdout/stderr, and returns a
|
|
51
|
+
typed `ExecutionResult`.
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
assumed
|
|
56
|
-
- Running outside repo root → zero files inspected, false pass
|
|
57
|
-
- Refs inside fenced code blocks may still be parsed — verify a "false
|
|
58
|
-
positive" before suppressing it
|
|
53
|
+
### 3. Verify the result
|
|
59
54
|
|
|
60
|
-
|
|
55
|
+
Check the returned `ExecutionResult`:
|
|
56
|
+
|
|
57
|
+
- `exit_code: 0` → all cross-references resolve
|
|
58
|
+
- `exit_code: 1` → at least one broken reference — read `stdout` for file,
|
|
59
|
+
line, and the offending ref, then fix the source or update the target
|
|
60
|
+
- `status: timeout` → the checker exceeded `timeout_seconds` — investigate
|
|
61
|
+
- `status: error` → interpreter or script missing — confirm `python3` and
|
|
62
|
+
`scripts/check_references.py` are available at the repository root
|
|
61
63
|
|
|
62
|
-
|
|
63
|
-
the runtime path — go through the dispatcher
|
|
64
|
-
- Do NOT raise `timeout_seconds` to mask a real slowdown
|
|
65
|
-
- Do NOT add pipes/redirection — handler uses `shell=False`, argv form only
|
|
64
|
+
## Output format
|
|
66
65
|
|
|
67
|
-
|
|
66
|
+
1. One-line summary: `success | failure | timeout | error`, exit code,
|
|
67
|
+
duration in milliseconds
|
|
68
|
+
2. Count of broken references found, if any
|
|
69
|
+
3. First 10 broken references with `file:line → missing-target`
|
|
70
|
+
4. Next action: fix references, re-run the skill, or surface `stdout` for
|
|
71
|
+
review
|
|
72
|
+
|
|
73
|
+
## Gotchas
|
|
74
|
+
|
|
75
|
+
- The checker is read-only — it never rewrites references, so a clean run
|
|
76
|
+
after a fix must be produced by re-invoking the skill, not by assumption
|
|
77
|
+
- Running outside the agent-config repo root makes the checker inspect zero
|
|
78
|
+
files and report a false pass
|
|
79
|
+
- Relative links inside comments or fenced code blocks may still be parsed as
|
|
80
|
+
references depending on the checker's current rules; do not suppress a
|
|
81
|
+
broken ref without confirming it is a genuine false positive
|
|
82
|
+
|
|
83
|
+
## Do NOT
|
|
68
84
|
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
85
|
+
- Do NOT invoke `scripts/check_references.py` directly when the intent is to
|
|
86
|
+
verify the runtime path — always go through the dispatcher so the
|
|
87
|
+
`ExecutionResult` is produced and inspectable
|
|
88
|
+
- Do NOT raise `timeout_seconds` to mask a slowdown — investigate which part
|
|
89
|
+
of the tree grew large enough to push past 60 seconds
|
|
90
|
+
- Do NOT add piping or redirection to `command` — the handler uses
|
|
91
|
+
`shell=False` and will refuse anything outside pure argv form
|
|
@@ -12,7 +12,7 @@ execution:
|
|
|
12
12
|
|
|
13
13
|
## When to use
|
|
14
14
|
|
|
15
|
-
Triggered when user invokes a slash command. The `slash-
|
|
15
|
+
Triggered when user invokes a slash command. The `slash-command-routing-policy` rule (always loaded) handles core behavior — this skill adds context inference and GitHub API patterns.
|
|
16
16
|
|
|
17
17
|
## Procedure: Execute a command
|
|
18
18
|
|
|
@@ -117,7 +117,7 @@ Required sections in this order:
|
|
|
117
117
|
### 4. Enforce the size budget
|
|
118
118
|
|
|
119
119
|
Normative source: [`size-enforcement`](../../rules/size-enforcement.md) +
|
|
120
|
-
`guidelines/agent-infra/size-and-scope.md`.
|
|
120
|
+
`docs/guidelines/agent-infra/size-and-scope.md`.
|
|
121
121
|
|
|
122
122
|
| Category | Target |
|
|
123
123
|
|---|---|
|
|
@@ -12,48 +12,106 @@ execution:
|
|
|
12
12
|
|
|
13
13
|
## When to use
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- Generating squash merge title from PR
|
|
17
|
-
- Deciding correct type for a change
|
|
18
|
-
- Reviewing/correcting commit messages
|
|
19
|
-
- Splitting vague changes into multiple commits
|
|
15
|
+
Use this skill when:
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
- Generating a commit message from staged changes
|
|
18
|
+
- Generating a squash merge title from a PR
|
|
19
|
+
- Deciding the correct Conventional Commit type for a change
|
|
20
|
+
- Reviewing whether a commit message is correct
|
|
21
|
+
- Splitting one vague change into multiple commit messages
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Do NOT use when:
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
- Only explaining the Conventional Commits standard (just reference the rule)
|
|
26
|
+
- The message is already correct and does not need review
|
|
27
|
+
- Following the Git workflow (use `git-workflow` skill)
|
|
28
|
+
|
|
29
|
+
## Procedure: Generate commit message
|
|
30
|
+
|
|
31
|
+
### 1. Identify the actual intent
|
|
32
|
+
|
|
33
|
+
Determine whether the change is:
|
|
34
|
+
|
|
35
|
+
- New behavior → `feat`
|
|
36
|
+
- Bug fix → `fix`
|
|
37
|
+
- Structural cleanup → `refactor`
|
|
38
|
+
- Docs only → `docs`
|
|
39
|
+
- Tests only → `test`
|
|
40
|
+
- CI/build/tooling → `ci` or `build`
|
|
41
|
+
- Maintenance → `chore`
|
|
42
|
+
- Performance → `perf`
|
|
43
|
+
- Formatting only → `style`
|
|
44
|
+
|
|
45
|
+
Classify by **user-visible or system-relevant intent**, not by file type alone.
|
|
46
|
+
|
|
47
|
+
### 2. Detect mixed concerns
|
|
48
|
+
|
|
49
|
+
Check whether the change includes more than one unrelated concern.
|
|
50
|
+
|
|
51
|
+
If yes:
|
|
52
|
+
|
|
53
|
+
- Suggest splitting into multiple commits
|
|
54
|
+
- Or choose the dominant net effect for squash merge title
|
|
55
|
+
|
|
56
|
+
### 3. Choose scope
|
|
57
|
+
|
|
58
|
+
Add a scope only if it improves clarity:
|
|
59
|
+
|
|
60
|
+
- Jira ticket ID: `DEV-1234`
|
|
61
|
+
- Module/area: `api`, `auth`, `skills`, `rules`, `ci`
|
|
62
|
+
|
|
63
|
+
### 4. Write the description
|
|
64
|
+
|
|
65
|
+
- State the intent clearly
|
|
66
|
+
- Avoid generic filler (`update stuff`, `fix things`)
|
|
67
|
+
- Stay concise — max 72 chars total for first line
|
|
68
|
+
- Imperative mood: "add", "fix", "remove" — not "added", "fixed", "removed"
|
|
69
|
+
|
|
70
|
+
### 5. Check for breaking change
|
|
71
|
+
|
|
72
|
+
If compatibility is broken, add `!` after type/scope:
|
|
30
73
|
|
|
31
74
|
```
|
|
32
75
|
feat(api)!: rename invoice status values
|
|
33
76
|
```
|
|
34
77
|
|
|
35
|
-
|
|
78
|
+
Or add `BREAKING CHANGE:` in the commit body/footer.
|
|
79
|
+
|
|
80
|
+
### 6. Validate
|
|
81
|
+
|
|
82
|
+
- Type matches intent?
|
|
83
|
+
- Scope is useful (not noise)?
|
|
84
|
+
- Description is specific (not generic)?
|
|
85
|
+
- Not hiding multiple unrelated changes?
|
|
86
|
+
- Breaking changes are marked?
|
|
36
87
|
|
|
37
|
-
## Procedure: Review
|
|
88
|
+
## Procedure: Review existing commit message
|
|
38
89
|
|
|
39
|
-
Parse
|
|
90
|
+
1. Parse the message into type, scope, description
|
|
91
|
+
2. Check type accuracy against the actual diff
|
|
92
|
+
3. Check scope usefulness
|
|
93
|
+
4. Check description clarity and specificity
|
|
94
|
+
5. Suggest corrections if any check fails
|
|
40
95
|
|
|
41
|
-
## Procedure:
|
|
96
|
+
## Procedure: Generate squash merge title
|
|
42
97
|
|
|
43
|
-
Read all
|
|
98
|
+
1. Read all commits in the PR
|
|
99
|
+
2. Identify the **net effect** — what does the PR accomplish overall?
|
|
100
|
+
3. Write a single Conventional Commit message summarizing the net effect
|
|
101
|
+
4. Do not list every internal commit — summarize
|
|
44
102
|
|
|
45
|
-
## Output
|
|
103
|
+
## Output format
|
|
46
104
|
|
|
47
|
-
1. Recommended message(s)
|
|
48
|
-
2. Brief type
|
|
49
|
-
3. Split suggestion if
|
|
105
|
+
1. Recommended commit message(s)
|
|
106
|
+
2. Brief rationale for type choice
|
|
107
|
+
3. Split suggestion if the change should be multiple commits
|
|
50
108
|
|
|
51
109
|
## Gotcha
|
|
52
110
|
|
|
53
|
-
-
|
|
54
|
-
- File type
|
|
55
|
-
-
|
|
56
|
-
-
|
|
111
|
+
- The model tends to overuse `chore` and `refactor` — classify by intent, not by effort
|
|
112
|
+
- File type alone does not determine commit type (e.g. a `.md` change can be `feat` if it's a new feature doc)
|
|
113
|
+
- Squash merge titles should describe the net effect, not every internal detail
|
|
114
|
+
- `refactor` means NO behavior change — if behavior changes, use `feat` or `fix`
|
|
57
115
|
|
|
58
116
|
## Do NOT
|
|
59
117
|
|
|
@@ -65,6 +123,6 @@ Read all PR commits → identify net effect → write single Conventional Commit
|
|
|
65
123
|
|
|
66
124
|
## References
|
|
67
125
|
|
|
68
|
-
- Rule: `commit-conventions` — format, types, scope
|
|
69
|
-
- Guideline: `guidelines/php/git.md` — selection rules, anti-patterns, checklist
|
|
70
|
-
- Command: `/commit` — uses this skill
|
|
126
|
+
- Rule: `commit-conventions` — base format, types, scope, examples
|
|
127
|
+
- Guideline: `docs/guidelines/php/git.md` — type selection rules, anti-patterns, decision checklist
|
|
128
|
+
- Command: `/commit` — uses this skill for message generation
|
|
@@ -27,12 +27,12 @@ Do NOT use when:
|
|
|
27
27
|
|
|
28
28
|
### 0. Analyze current state
|
|
29
29
|
|
|
30
|
-
Before changing anything:
|
|
30
|
+
Before changing anything, read and understand:
|
|
31
31
|
|
|
32
|
-
1. Read `AGENTS.md
|
|
33
|
-
2. Read `.github/copilot-instructions.md
|
|
34
|
-
3. Scan `.augment
|
|
35
|
-
4. Identify duplication — what exists in both AGENTS.md and `.augment/`?
|
|
32
|
+
1. **Read `AGENTS.md`** — current content, line count, what's duplicated vs. unique.
|
|
33
|
+
2. **Read `.github/copilot-instructions.md`** — same analysis.
|
|
34
|
+
3. **Scan `.augment/`** — which skills, rules, and guidelines already cover topics from the files above.
|
|
35
|
+
4. **Identify duplication** — what content exists in both AGENTS.md and `.augment/`?
|
|
36
36
|
|
|
37
37
|
Only after this analysis, proceed with optimization.
|
|
38
38
|
|
|
@@ -57,7 +57,7 @@ Only after this analysis, proceed with optimization.
|
|
|
57
57
|
**What does NOT belong here:**
|
|
58
58
|
- Coding standards (→ `.augment/rules/` and `.augment/guidelines/`)
|
|
59
59
|
- Architecture principles like SOLID, KISS, DRY (→ `.augment/rules/architecture.md`)
|
|
60
|
-
- PHP conventions (→
|
|
60
|
+
- PHP conventions (→ `../../../docs/guidelines/php/`)
|
|
61
61
|
- Scope control rules (→ `.augment/rules/scope-control.md`)
|
|
62
62
|
- Language/tone rules (→ `.augment/rules/language-and-tone.md`)
|
|
63
63
|
- Detailed module documentation (→ `app/Modules/README.md`)
|
|
@@ -115,7 +115,7 @@ both. Instead, reference with a table:
|
|
|
115
115
|
| What | Where |
|
|
116
116
|
|---|---|
|
|
117
117
|
| PHP coding rules | `.augment/rules/php-coding.md` |
|
|
118
|
-
| Controller guidelines |
|
|
118
|
+
| Controller guidelines | `../../../docs/guidelines/php/controllers.md` |
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
## Line Budget Enforcement
|
|
@@ -127,13 +127,13 @@ If important information is missing:
|
|
|
127
127
|
- Compare with requirements, tickets, current behavior, tests, existing patterns
|
|
128
128
|
- Identify likely cause and smallest correct change
|
|
129
129
|
- **Consult memory — invariants and prior decisions.** Via
|
|
130
|
-
[`memory-access`](
|
|
130
|
+
[`memory-access`](../../../docs/guidelines/agent-infra/memory-access.md), call
|
|
131
131
|
`retrieve(types=["domain-invariants", "architecture-decisions"], keys=<touched paths>, limit=3)`.
|
|
132
|
-
A matching `domain-invariant` is a hard constraint — violating it =
|
|
133
|
-
|
|
134
|
-
`architecture-decision` explains *why* the current shape exists; plan
|
|
135
|
-
|
|
136
|
-
See [`engineering-memory-data-format`](
|
|
132
|
+
A matching `domain-invariant` is a hard constraint — violating it = regression,
|
|
133
|
+
surface the conflict to the user before proceeding. A matching
|
|
134
|
+
`architecture-decision` explains *why* the current shape exists; plan around
|
|
135
|
+
it, do not silently overturn it. Cite matching `id`s in the plan.
|
|
136
|
+
See [`engineering-memory-data-format`](../../../docs/guidelines/agent-infra/engineering-memory-data-format.md)
|
|
137
137
|
for the schema.
|
|
138
138
|
|
|
139
139
|
### 4. Define expected behavior first
|
|
@@ -9,15 +9,17 @@ source: package
|
|
|
9
9
|
## When to use
|
|
10
10
|
|
|
11
11
|
* Implementation of a feature or bug fix is complete on a development branch
|
|
12
|
-
* All planned commits are in, user is ready to hand off
|
|
12
|
+
* All planned commits are in, the user is ready to hand off
|
|
13
13
|
* You are about to say "done" and suggest the next action
|
|
14
|
-
*
|
|
14
|
+
* The branch has been idle and the user wants to decide its fate
|
|
15
15
|
|
|
16
16
|
Do NOT use when:
|
|
17
17
|
|
|
18
18
|
* Still implementing — use targeted verification, not the ship gate
|
|
19
|
-
* A PR already exists and is mid-review — use
|
|
20
|
-
|
|
19
|
+
* A PR already exists and is mid-review — use
|
|
20
|
+
[`receiving-code-review`](../receiving-code-review/SKILL.md)
|
|
21
|
+
* Only documentation changed and no tests apply — simplify to
|
|
22
|
+
commit + PR without the full gate
|
|
21
23
|
|
|
22
24
|
## Goal
|
|
23
25
|
|
|
@@ -37,29 +39,33 @@ how work gets lost.
|
|
|
37
39
|
|
|
38
40
|
## Procedure
|
|
39
41
|
|
|
40
|
-
### 1. Inspect branch state
|
|
42
|
+
### 1. Inspect the current branch state
|
|
41
43
|
|
|
42
|
-
Before presenting options, check:
|
|
44
|
+
Before presenting any options, gather context. Do not assume — check:
|
|
43
45
|
|
|
44
|
-
* `git status` — clean or dirty?
|
|
45
|
-
* `git log --oneline <base>..HEAD` — what commits are actually on this
|
|
46
|
-
|
|
46
|
+
* `git status` — clean, or still dirty?
|
|
47
|
+
* `git log --oneline <base>..HEAD` — what commits are actually on this
|
|
48
|
+
branch?
|
|
49
|
+
* `git branch --show-current` — the branch name you will be operating on
|
|
47
50
|
* Remote state — is the branch pushed? Is there an open PR already?
|
|
48
51
|
|
|
49
|
-
PR already exists
|
|
50
|
-
|
|
52
|
+
If a PR already exists for this branch, **stop** — this is not a
|
|
53
|
+
finishing step, route to [`receiving-code-review`](../receiving-code-review/SKILL.md)
|
|
54
|
+
or [`fix-pr-comments`](../../commands/fix-pr-comments.md) instead.
|
|
51
55
|
|
|
52
56
|
### 2. Verify readiness
|
|
53
57
|
|
|
54
|
-
Run the full end-of-work gate — see
|
|
58
|
+
Run the full end-of-work gate before presenting any options — see
|
|
59
|
+
[`verify-before-complete`](../verify-before-complete/SKILL.md):
|
|
55
60
|
|
|
56
61
|
1. Targeted tests green
|
|
57
62
|
2. Full test suite green
|
|
58
63
|
3. Quality pipeline (PHPStan → Rector dry-run → ECS → PHPStan) green
|
|
59
|
-
4. `git status` clean —
|
|
60
|
-
5. Branch pushed or explicitly marked local-only
|
|
64
|
+
4. `git status` clean — nothing unstaged, no stray files
|
|
65
|
+
5. Branch is pushed or explicitly marked local-only
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
If any step fails → **stop**. Report the failure, do not present ship
|
|
68
|
+
options. Fixing the failure comes first.
|
|
63
69
|
|
|
64
70
|
### 3. Determine the base branch
|
|
65
71
|
|
|
@@ -71,9 +77,12 @@ BASE=main
|
|
|
71
77
|
BASE=$(git config branch.$(git branch --show-current).merge | sed 's|refs/heads/||')
|
|
72
78
|
```
|
|
73
79
|
|
|
74
|
-
|
|
80
|
+
If ambiguous, ask: *"This branch splits from `<guess>` — correct?"*
|
|
81
|
+
before presenting options.
|
|
75
82
|
|
|
76
|
-
### 4. Present four options — numbered, no narration
|
|
83
|
+
### 4. Present the four options — numbered, no narration
|
|
84
|
+
|
|
85
|
+
Ask the user exactly one question:
|
|
77
86
|
|
|
78
87
|
```
|
|
79
88
|
Implementation is verified. What now?
|
|
@@ -84,21 +93,25 @@ Implementation is verified. What now?
|
|
|
84
93
|
4. Discard all work on this branch
|
|
85
94
|
```
|
|
86
95
|
|
|
87
|
-
|
|
96
|
+
Do not add recommendations unless the user asks. Each option leads to
|
|
97
|
+
a different sub-procedure (steps 5a–5d).
|
|
88
98
|
|
|
89
99
|
### 5a. Option 1 — Open a PR
|
|
90
100
|
|
|
91
|
-
1.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
1. Ensure the branch is up to date with the base →
|
|
102
|
+
[`prepare-for-review`](../../commands/prepare-for-review.md)
|
|
103
|
+
2. Self-review the full diff → [`review-changes`](../../commands/review-changes.md)
|
|
104
|
+
3. Write the PR description → [`create-pr-description`](../../commands/create-pr-description.md)
|
|
105
|
+
4. Open the PR → [`create-pr`](../../commands/create-pr.md)
|
|
106
|
+
5. Confirm the PR opened green, not red
|
|
96
107
|
|
|
97
|
-
|
|
108
|
+
See [`requesting-code-review`](../requesting-code-review/SKILL.md) for
|
|
109
|
+
the surrounding discipline.
|
|
98
110
|
|
|
99
111
|
### 5b. Option 2 — Merge locally
|
|
100
112
|
|
|
101
|
-
Use only
|
|
113
|
+
Use only when the project policy is "no PR required" (solo repos,
|
|
114
|
+
spike branches, private tooling). For team repos, default to Option 1.
|
|
102
115
|
|
|
103
116
|
```bash
|
|
104
117
|
git checkout <base-branch>
|
|
@@ -110,17 +123,18 @@ git merge --no-ff <feature-branch>
|
|
|
110
123
|
git branch -d <feature-branch>
|
|
111
124
|
```
|
|
112
125
|
|
|
113
|
-
|
|
126
|
+
If the post-merge test run fails → `git reset --hard ORIG_HEAD`, fix
|
|
127
|
+
on the feature branch, restart from Option 1/2.
|
|
114
128
|
|
|
115
129
|
### 5c. Option 3 — Keep as-is
|
|
116
130
|
|
|
117
|
-
* Push to origin if not already pushed
|
|
118
|
-
* Report branch name and last commit SHA
|
|
131
|
+
* Push the branch to origin if not already pushed (safeguards the work)
|
|
132
|
+
* Report the branch name and the last commit SHA back to the user
|
|
119
133
|
* Do not delete the worktree, do not force-push
|
|
120
134
|
|
|
121
135
|
### 5d. Option 4 — Discard
|
|
122
136
|
|
|
123
|
-
**Confirmation gate** — typed answer, not "y":
|
|
137
|
+
**Confirmation gate** — require a typed answer, not "y":
|
|
124
138
|
|
|
125
139
|
```
|
|
126
140
|
This will permanently remove:
|
|
@@ -140,65 +154,87 @@ git branch -D <feature-branch>
|
|
|
140
154
|
git push origin --delete <feature-branch>
|
|
141
155
|
```
|
|
142
156
|
|
|
143
|
-
Log discarded SHAs so work can be recovered via `git reflog
|
|
157
|
+
Log the discarded SHAs so the work can be recovered via `git reflog`
|
|
158
|
+
within the reflog TTL if needed.
|
|
144
159
|
|
|
145
160
|
### 6. Clean up worktrees
|
|
146
161
|
|
|
147
|
-
|
|
162
|
+
If the branch lives in a `git worktree`:
|
|
148
163
|
|
|
149
|
-
* Options 1, 2, 4 → `git worktree remove <path>` after
|
|
164
|
+
* Options 1, 2, 4 → `git worktree remove <path>` after the branch
|
|
165
|
+
terminal state
|
|
150
166
|
* Option 3 → keep the worktree
|
|
151
167
|
|
|
152
168
|
## Output format
|
|
153
169
|
|
|
154
|
-
After chosen option completes:
|
|
170
|
+
After the chosen option completes, report:
|
|
155
171
|
|
|
156
|
-
1. **What happened** —
|
|
172
|
+
1. **What happened** — single sentence ("PR #123 opened", "Merged
|
|
173
|
+
into main as `abcdef`", "Branch discarded")
|
|
157
174
|
2. **Evidence** — exit codes / PR URL / commit SHA
|
|
158
|
-
3. **Cleanup state** — worktree removed/kept, branch deleted/
|
|
159
|
-
|
|
175
|
+
3. **Cleanup state** — worktree removed / kept, branch deleted /
|
|
176
|
+
retained
|
|
177
|
+
4. **Next step** — e.g. "Awaiting review" / "Main is one commit ahead"
|
|
160
178
|
|
|
161
179
|
## Gotchas
|
|
162
180
|
|
|
163
|
-
* Option 1 on red CI — PR opens but not
|
|
164
|
-
|
|
165
|
-
* Option
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
*
|
|
181
|
+
* Option 1 (PR) on a red CI — the PR opens but is not actually
|
|
182
|
+
reviewable; check the CI status before reporting success
|
|
183
|
+
* Option 2 (local merge) with fast-forward only on a diverged base
|
|
184
|
+
silently fails — the merge command aborts but the report can look
|
|
185
|
+
successful if the exit code is not checked
|
|
186
|
+
* Option 4 (discard) on a branch that is already the upstream of
|
|
187
|
+
another local branch — the dependent branch is orphaned
|
|
188
|
+
* Force-pushing after a PR is opened can lose the reviewer's
|
|
189
|
+
line-comments — prefer additional commits during review
|
|
190
|
+
* `git branch -d` vs `-D` — lowercase `-d` refuses unmerged branches,
|
|
191
|
+
uppercase `-D` forces; only use `-D` inside the confirmed discard
|
|
192
|
+
flow
|
|
193
|
+
* On stacked PRs, the base is **not** `main` — opening a PR to `main`
|
|
194
|
+
invalidates the stack
|
|
169
195
|
|
|
170
196
|
## Do NOT
|
|
171
197
|
|
|
172
|
-
* Do NOT present ship options while tests or quality are red
|
|
173
|
-
* Do NOT add rationale to the four options
|
|
174
|
-
|
|
175
|
-
* Do NOT
|
|
176
|
-
|
|
177
|
-
* Do NOT
|
|
198
|
+
* Do NOT present ship options while tests or quality checks are red
|
|
199
|
+
* Do NOT add rationale or recommendations to the four numbered options
|
|
200
|
+
— the user decides
|
|
201
|
+
* Do NOT discard a branch without a typed confirmation including the
|
|
202
|
+
branch name
|
|
203
|
+
* Do NOT force-delete a remote branch without user confirmation
|
|
204
|
+
* Do NOT silently change the base branch between verification and ship
|
|
205
|
+
* Do NOT mix any other cleanup into the discard step
|
|
178
206
|
|
|
179
207
|
## Anti-patterns
|
|
180
208
|
|
|
181
|
-
*
|
|
182
|
-
|
|
183
|
-
*
|
|
184
|
-
|
|
209
|
+
* Presenting three options and phrasing the fourth as "or we can
|
|
210
|
+
discard if you want" — buries the destructive option
|
|
211
|
+
* Running the full gate inside this skill *and* at the start of
|
|
212
|
+
`create-pr` — duplicates work. Trust the gate result if nothing
|
|
213
|
+
changed in between
|
|
214
|
+
* Merging local + opening PR at the same time — pick one
|
|
215
|
+
* Asking "ready to ship?" without listing the four concrete options
|
|
185
216
|
|
|
186
217
|
## When to hand over to another skill / command
|
|
187
218
|
|
|
188
|
-
*
|
|
189
|
-
* Rebasing stack → [`prepare-for-review`](../../commands/prepare-for-review.md)
|
|
190
|
-
*
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
*
|
|
219
|
+
* Final pre-merge verification → [`verify-before-complete`](../verify-before-complete/SKILL.md)
|
|
220
|
+
* Rebasing the stack before PR → [`prepare-for-review`](../../commands/prepare-for-review.md)
|
|
221
|
+
* Writing the commit for any last-minute tweaks →
|
|
222
|
+
[`commit`](../../commands/commit.md),
|
|
223
|
+
[`conventional-commits-writing`](../conventional-commits-writing/SKILL.md)
|
|
224
|
+
* Self-review walkthrough → [`review-changes`](../../commands/review-changes.md)
|
|
225
|
+
* Creating the PR → [`create-pr`](../../commands/create-pr.md)
|
|
226
|
+
* Processing review comments after the PR is open →
|
|
227
|
+
[`receiving-code-review`](../receiving-code-review/SKILL.md)
|
|
194
228
|
|
|
195
229
|
## Validation checklist
|
|
196
230
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
* [ ]
|
|
231
|
+
Before reporting "done" after this skill runs:
|
|
232
|
+
|
|
233
|
+
* [ ] Full gate (tests + quality pipeline) verified green in this turn
|
|
234
|
+
* [ ] Base branch determined and confirmed with the user when ambiguous
|
|
235
|
+
* [ ] Exactly four numbered options were presented, no narration added
|
|
200
236
|
* [ ] User's choice recorded literally, not reinterpreted
|
|
201
|
-
* [ ] Sub-procedure for chosen option completed end-to-end
|
|
202
|
-
* [ ] Worktree handled per option
|
|
203
|
-
* [ ] Destructive actions had typed confirmation
|
|
204
|
-
* [ ] Final report includes evidence (PR URL, SHA, exit code)
|
|
237
|
+
* [ ] Sub-procedure for the chosen option completed end-to-end
|
|
238
|
+
* [ ] Worktree state handled per option (remove for 1/2/4, keep for 3)
|
|
239
|
+
* [ ] Destructive actions had typed confirmation including branch name
|
|
240
|
+
* [ ] Final report includes evidence (PR URL, SHA, or exit code)
|