@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
|
@@ -30,6 +30,9 @@ rules:
|
|
|
30
30
|
- commit-policy
|
|
31
31
|
- ask-when-uncertain
|
|
32
32
|
- verify-before-complete
|
|
33
|
+
- agent-authority
|
|
34
|
+
- language-and-tone
|
|
35
|
+
- direct-answers
|
|
33
36
|
|
|
34
37
|
pairs:
|
|
35
38
|
|
|
@@ -140,3 +143,96 @@ pairs:
|
|
|
140
143
|
evidence:
|
|
141
144
|
- .agent-src.uncompressed/rules/commit-policy.md#the-iron-law
|
|
142
145
|
- .agent-src.uncompressed/rules/autonomous-execution.md#commit-policy--see-commit-policy
|
|
146
|
+
|
|
147
|
+
- id: authority-x-ndd
|
|
148
|
+
rules: [agent-authority, non-destructive-by-default]
|
|
149
|
+
relation: defers_to
|
|
150
|
+
conflict: >-
|
|
151
|
+
Both rules speak to "may the agent do this autonomously?" — the
|
|
152
|
+
Priority Index points to the Hard Floor as Band 1.
|
|
153
|
+
resolution: >-
|
|
154
|
+
`agent-authority` is a router, never a source of truth. The Hard
|
|
155
|
+
Floor's Iron Law lives verbatim in `non-destructive-by-default`
|
|
156
|
+
and wins every conflict. The index points; it never restates.
|
|
157
|
+
evidence:
|
|
158
|
+
- .agent-src.uncompressed/rules/agent-authority.md#index-rules
|
|
159
|
+
- .agent-src.uncompressed/rules/non-destructive-by-default.md#the-iron-law
|
|
160
|
+
|
|
161
|
+
- id: authority-x-scope-control
|
|
162
|
+
rules: [agent-authority, scope-control]
|
|
163
|
+
relation: defers_to
|
|
164
|
+
conflict: >-
|
|
165
|
+
Permission Gate questions (push, branch, PR, architectural change)
|
|
166
|
+
surface during routine work — the index labels Band 2.
|
|
167
|
+
resolution: >-
|
|
168
|
+
The Priority Index routes to `scope-control` for git-shape and
|
|
169
|
+
scope-expansion decisions. Index never narrows or weakens the
|
|
170
|
+
gate; canonical rule wins on any wording divergence.
|
|
171
|
+
evidence:
|
|
172
|
+
- .agent-src.uncompressed/rules/agent-authority.md#index-rules
|
|
173
|
+
- .agent-src.uncompressed/rules/scope-control.md#git-operations--permission-gated
|
|
174
|
+
|
|
175
|
+
- id: authority-x-commit-policy
|
|
176
|
+
rules: [agent-authority, commit-policy]
|
|
177
|
+
relation: defers_to
|
|
178
|
+
conflict: >-
|
|
179
|
+
The "about to commit" decision arises — the index labels it Band 3
|
|
180
|
+
(Commit Default = never, with four exceptions).
|
|
181
|
+
resolution: >-
|
|
182
|
+
`commit-policy` Iron Law is canonical. The Priority Index points
|
|
183
|
+
to it; it does not enumerate the four exceptions itself. Future
|
|
184
|
+
edits to commit-policy do not require Index updates unless the
|
|
185
|
+
band ordering changes.
|
|
186
|
+
evidence:
|
|
187
|
+
- .agent-src.uncompressed/rules/agent-authority.md#index-rules
|
|
188
|
+
- .agent-src.uncompressed/rules/commit-policy.md#exceptions--when-committing-is-allowed
|
|
189
|
+
|
|
190
|
+
- id: scope-x-commit-policy
|
|
191
|
+
rules: [scope-control, commit-policy]
|
|
192
|
+
relation: narrows
|
|
193
|
+
conflict: >-
|
|
194
|
+
`scope-control` § "Git operations" forbids committing without
|
|
195
|
+
explicit permission as one of several git-op gates; `commit-policy`
|
|
196
|
+
narrows the commit case to a never-ask default with four named
|
|
197
|
+
exceptions.
|
|
198
|
+
resolution: >-
|
|
199
|
+
`commit-policy` is the narrower, canonical rule for the commit
|
|
200
|
+
sub-case. `scope-control` continues to govern push, branch, PR,
|
|
201
|
+
tag operations. On commit specifics, defer to `commit-policy`;
|
|
202
|
+
on other git ops, defer to `scope-control`.
|
|
203
|
+
evidence:
|
|
204
|
+
- .agent-src.uncompressed/rules/scope-control.md#git-operations--permission-gated
|
|
205
|
+
- .agent-src.uncompressed/rules/commit-policy.md#the-iron-law
|
|
206
|
+
|
|
207
|
+
- id: ask-x-direct-answers
|
|
208
|
+
rules: [ask-when-uncertain, direct-answers]
|
|
209
|
+
relation: complements
|
|
210
|
+
conflict: >-
|
|
211
|
+
A vague request triggers `ask-when-uncertain` (must ask), but
|
|
212
|
+
`direct-answers` Iron Law 3 (brevity by default) discourages
|
|
213
|
+
overlong replies; could read as tension when the question needs
|
|
214
|
+
framing.
|
|
215
|
+
resolution: >-
|
|
216
|
+
Both rules apply. `ask-when-uncertain` decides *whether* to ask
|
|
217
|
+
and demands one question per turn with numbered options.
|
|
218
|
+
`direct-answers` shapes *how* the question reads — no flattery,
|
|
219
|
+
no padding, shortest form that fully states the choice.
|
|
220
|
+
evidence:
|
|
221
|
+
- .agent-src.uncompressed/rules/ask-when-uncertain.md#iron-law--one-question-per-turn-always
|
|
222
|
+
- .agent-src.uncompressed/rules/direct-answers.md#iron-law-3--brevity-by-default
|
|
223
|
+
|
|
224
|
+
- id: language-x-direct-answers
|
|
225
|
+
rules: [language-and-tone, direct-answers]
|
|
226
|
+
relation: complements
|
|
227
|
+
conflict: >-
|
|
228
|
+
User writes German; agent must mirror language AND avoid flattery,
|
|
229
|
+
invented facts, padding. Both rules speak to reply shape.
|
|
230
|
+
resolution: >-
|
|
231
|
+
`language-and-tone` decides the language token (mirror user's last
|
|
232
|
+
chat message); `direct-answers` decides content discipline (no
|
|
233
|
+
flattery, verified facts, brevity). They compose: a brief, direct,
|
|
234
|
+
flattery-free reply in the user's language. Neither weakens the
|
|
235
|
+
other.
|
|
236
|
+
evidence:
|
|
237
|
+
- .agent-src.uncompressed/rules/language-and-tone.md#iron-law--mirror-the-users-language-always
|
|
238
|
+
- .agent-src.uncompressed/rules/direct-answers.md#iron-law-1--no-flattery
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Rule Priority Hierarchy
|
|
6
|
+
|
|
7
|
+
> **Audience:** anyone reading or editing `.agent-src.uncompressed/rules/*.md`,
|
|
8
|
+
> or trying to predict which rule wins when several fire on the same turn.
|
|
9
|
+
> **Machine-readable counterpart:** [`rule-interactions.yml`](rule-interactions.yml)
|
|
10
|
+
> (linted by `scripts/lint_rule_interactions.py`).
|
|
11
|
+
> **Diagram + pair-by-pair narrative:** [`rule-interactions.md`](rule-interactions.md).
|
|
12
|
+
|
|
13
|
+
This document is the **ordered list** view. The matrix files describe
|
|
14
|
+
how *pairs* of rules interact; this file states **which band wins**
|
|
15
|
+
when the bands themselves disagree.
|
|
16
|
+
|
|
17
|
+
## The four-line principle
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Safety beats autonomy.
|
|
21
|
+
Scope beats helpfulness.
|
|
22
|
+
Verification beats completion.
|
|
23
|
+
User intent beats command suggestion.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Every band below is a concrete instance of one of those four lines.
|
|
27
|
+
When in doubt, walk the list top-down and stop at the first band that
|
|
28
|
+
fires — that band's canonical rule decides the turn.
|
|
29
|
+
|
|
30
|
+
## The ordered list
|
|
31
|
+
|
|
32
|
+
| Band | Rule | What it gates | Lifts under |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| 1 | [`non-destructive-by-default`](../../.agent-src.uncompressed/rules/non-destructive-by-default.md) | Prod-trunk merge · deploy · push · prod data/infra · whimsical bulk deletion · bulk-deletion or infra commit | **Never.** Explicit user confirmation *this turn* only. |
|
|
35
|
+
| 2 | [`security-sensitive-stop`](../../.agent-src.uncompressed/rules/security-sensitive-stop.md) | Auth · billing · tenant boundaries · secrets · file uploads · webhooks · public endpoints | Threat-model pass completed and recorded *before* the edit. |
|
|
36
|
+
| 3 | [`scope-control`](../../.agent-src.uncompressed/rules/scope-control.md) | Git ops (branch · PR · tag · push · merge · rebase) · architectural changes · new libraries · scope expansion | Explicit user permission *this turn* or unrevoked standing instruction. |
|
|
37
|
+
| 4 | [`ask-when-uncertain`](../../.agent-src.uncompressed/rules/ask-when-uncertain.md) | Ambiguous requirements · vague-request triggers · fenced steps | Concrete evidence resolves the ambiguity, **or** user answers the single question. |
|
|
38
|
+
| 5 | [`commit-policy`](../../.agent-src.uncompressed/rules/commit-policy.md) | Any `git commit` | Four exceptions only — explicit "commit now", standing instruction, `/commit*` invocation, roadmap authorization. |
|
|
39
|
+
| 6 | [`verify-before-complete`](../../.agent-src.uncompressed/rules/verify-before-complete.md) | "Done" / "complete" claims · suggestions to commit, push, or PR | Fresh verification evidence in *this* message. |
|
|
40
|
+
| 7 | [`autonomous-execution`](../../.agent-src.uncompressed/rules/autonomous-execution.md) | Trivial-vs-blocking classification · autonomy opt-in detection | Per-step decision; never above bands 1–6. |
|
|
41
|
+
| 8 | [`command-suggestion-policy`](../../.agent-src.uncompressed/rules/command-suggestion-policy.md) | Surfacing slash-command matches as numbered options | User always picks; nothing auto-executes. |
|
|
42
|
+
| 9 | [`language-and-tone`](../../.agent-src.uncompressed/rules/language-and-tone.md) | First-token language of every reply · `.md` always English | Mirror the user's last chat message — no momentum exception. |
|
|
43
|
+
|
|
44
|
+
**Read direction:** top-to-bottom is *priority on conflict*, not chronology.
|
|
45
|
+
A turn typically touches several bands at once; the hierarchy decides
|
|
46
|
+
which one's Iron Law gets the final say.
|
|
47
|
+
|
|
48
|
+
## Index rules
|
|
49
|
+
|
|
50
|
+
- **Higher band wins.** A band-3 permission does not lift band-1; a band-5
|
|
51
|
+
commit exception does not lift band-3. Each band's "Lifts under" column
|
|
52
|
+
is its own escape hatch and only its own.
|
|
53
|
+
- **No band restates an Iron Law.** Iron Laws live verbatim in the
|
|
54
|
+
canonical rule files. This hierarchy points; it does not paraphrase.
|
|
55
|
+
- **Bands 1–2 are *Hard Floors*.** No autonomy setting, no roadmap step,
|
|
56
|
+
no standing instruction lifts them. See
|
|
57
|
+
[`agent-authority`](../../.agent-src.uncompressed/rules/agent-authority.md)
|
|
58
|
+
§ Index rules for the matching authority statement.
|
|
59
|
+
- **Unsure → ask.** [`ask-when-uncertain`](../../.agent-src.uncompressed/rules/ask-when-uncertain.md)
|
|
60
|
+
is the universal escape hatch when the band is unclear.
|
|
61
|
+
|
|
62
|
+
## Worked examples
|
|
63
|
+
|
|
64
|
+
| Situation | Bands that fire | Winner | Why |
|
|
65
|
+
|---|---|---|---|
|
|
66
|
+
| Standing autonomy + roadmap step says "merge to `main`" | 1, 7 | **1** | Hard Floor predates and outranks autonomy; surface the merge, ask. |
|
|
67
|
+
| `/commit:in-chunks` on a diff that removes a directory | 1, 5 | **1** | Commit exception authorizes *commits*, not *bulk deletions*. Confirm diff this turn. |
|
|
68
|
+
| User asks "improve this" with no metric named | 4, 7 | **4** | Vague-request trigger fires before any autonomy decision; ask the one clarifying question. |
|
|
69
|
+
| Editing `app/Auth/PasswordReset.php` mid-feature | 2, 7 | **2** | Security-sensitive surface stops the edit until threat-model is recorded. |
|
|
70
|
+
| Agent about to claim "ready to merge" with no fresh test output | 5, 6 | **6** | Verification gate fires before the commit/push question is even valid. |
|
|
71
|
+
| User types free-form prompt that matches `/refine-ticket` | 8, 9 | **8 + 9** | Suggestion runs as numbered options, mirrored to user's language. No conflict. |
|
|
72
|
+
|
|
73
|
+
## Cross-references
|
|
74
|
+
|
|
75
|
+
- [`agent-authority`](../../.agent-src.uncompressed/rules/agent-authority.md) — the four-band authority router (bands 1–3 + 7 of this hierarchy).
|
|
76
|
+
- [`rule-interactions.md`](rule-interactions.md) — pairwise interaction narrative + Mermaid diagram.
|
|
77
|
+
- [`rule-interactions.yml`](rule-interactions.yml) — machine-readable, CI-linted matrix.
|
|
78
|
+
- [`STABILITY.md`](STABILITY.md) — what the `stability: beta` tag means for breaking changes.
|
|
79
|
+
|
|
80
|
+
## Stability
|
|
81
|
+
|
|
82
|
+
`beta` — the band ordering and four-line principle are settled, but
|
|
83
|
+
the *worked examples* and the inclusion of band 8 (`command-suggestion-policy`)
|
|
84
|
+
in the public hierarchy have not yet shipped through one major release.
|
|
85
|
+
A breaking change to the band ordering is a SemVer-minor-pre-1.0 bump
|
|
86
|
+
or a SemVer-major bump after 1.0. Adding a row, refining a "Lifts under"
|
|
87
|
+
clause, or expanding the worked-examples table is non-breaking.
|
|
@@ -4,8 +4,7 @@ stability: beta
|
|
|
4
4
|
|
|
5
5
|
# UI Track — Flow Contract
|
|
6
6
|
|
|
7
|
-
> Technical contracts for the UI directive sets
|
|
8
|
-
> [`road-to-product-ui-track.md`](../../agents/roadmaps/road-to-product-ui-track.md).
|
|
7
|
+
> Technical contracts for the UI directive sets.
|
|
9
8
|
> Sibling of [`implement-ticket-flow.md`](implement-ticket-flow.md) — that
|
|
10
9
|
> doc covers `backend`; this one covers `ui`, `ui-trivial`, and the
|
|
11
10
|
> `mixed` set that stitches both.
|
|
@@ -14,11 +13,10 @@ stability: beta
|
|
|
14
13
|
> - **Status:** Phase 1–6 shipped — audit / design / apply / review /
|
|
15
14
|
> polish handlers live under
|
|
16
15
|
> [`.agent-src.uncompressed/templates/scripts/work_engine/directives/ui/`](../../.agent-src.uncompressed/templates/scripts/work_engine/directives/ui/).
|
|
17
|
-
> Mixed
|
|
18
|
-
>
|
|
16
|
+
> Mixed under `directives/mixed/`. `ui-trivial` under
|
|
17
|
+
> `directives/ui_trivial/`. R4 (Visual Review Loop) added the
|
|
19
18
|
> a11y gate, the preview envelope, and a polish-termination rewrite
|
|
20
|
-
> that splits subjective ceilings from objective a11y blocks
|
|
21
|
-
> [`road-to-visual-review-loop.md`](../../agents/roadmaps/road-to-visual-review-loop.md).
|
|
19
|
+
> that splits subjective ceilings from objective a11y blocks.
|
|
22
20
|
> Golden Transcripts GT-U1..U4, U7, U8, U9..U12 plus GT-U5 (mixed
|
|
23
21
|
> flow), GT-U6A/B (stack dispatch), and R4's GT-U13..U15 (a11y polish,
|
|
24
22
|
> a11y ceiling, preview render failure) pin happy-path, ambiguity,
|
|
@@ -42,8 +40,6 @@ sentinels that release each gate.
|
|
|
42
40
|
`SKILL.md` files.
|
|
43
41
|
- A migration guide for the schema — see
|
|
44
42
|
[`implement-ticket-flow.md`](implement-ticket-flow.md#state-schema-v1).
|
|
45
|
-
- A roadmap — phased delivery lives in
|
|
46
|
-
[`road-to-product-ui-track.md`](../../agents/roadmaps/road-to-product-ui-track.md).
|
|
47
43
|
|
|
48
44
|
## The four directive sets
|
|
49
45
|
|
|
@@ -323,16 +319,10 @@ suite asserts every `BLOCKED` path has a matching declaration.
|
|
|
323
319
|
- [`implement-ticket-flow.md`](implement-ticket-flow.md) — sibling
|
|
324
320
|
contract for the `backend` set; covers `DeliveryState`, schema v1,
|
|
325
321
|
hooks, persona policies, replay protocol.
|
|
326
|
-
- [`
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
— pinned GT-U5 (mixed flow), GT-U6A/B (stack dispatch), GT-U7
|
|
330
|
-
(trivial happy path), GT-U8 (trivial reclassification).
|
|
331
|
-
- [`road-to-visual-review-loop.md`](../../agents/roadmaps/road-to-visual-review-loop.md)
|
|
332
|
-
— R4 contract: a11y gate, preview envelope, polish-termination
|
|
333
|
-
rewrite. Pinned by GT-U13 (a11y polish), GT-U14 (a11y ceiling),
|
|
334
|
-
GT-U15 (preview render failure).
|
|
322
|
+
- [`adr-product-ui-track.md`](adr-product-ui-track.md) — locked
|
|
323
|
+
decisions for the UI track (R3) and the visual-review-loop
|
|
324
|
+
amendment (R4: a11y gate, preview envelope, polish-termination).
|
|
335
325
|
- [`existing-ui-audit` SKILL](../../.agent-src.uncompressed/skills/existing-ui-audit/SKILL.md)
|
|
336
326
|
— producer of `state.ui_audit`.
|
|
337
|
-
- [`ui-audit-
|
|
327
|
+
- [`ui-audit-gate` rule](../../.agent-src.uncompressed/rules/ui-audit-gate.md)
|
|
338
328
|
— the always-on rule that mirrors the audit gate at the agent layer.
|
package/docs/customization.md
CHANGED
|
@@ -58,6 +58,22 @@ those sections.
|
|
|
58
58
|
| `chat_history.max_size_kb` | per profile | Max file size before overflow handling (see matrix below). |
|
|
59
59
|
| `chat_history.on_overflow` | per profile | `rotate` drops oldest, `compress` marks for summarization (see matrix below). |
|
|
60
60
|
| `onboarding.onboarded` | `false` | Whether `/onboard` has run. The `onboarding-gate` rule prompts for `/onboard` while this is `false`. |
|
|
61
|
+
| `ai_council.enabled` | `false` | Master switch for the `/council` command. Even when enabled, every consultation asks before spending tokens. |
|
|
62
|
+
| `ai_council.members.<provider>.enabled` | `false` | Per-provider opt-in (`anthropic`, `openai`). Tokens live in `~/.config/agent-config/<provider>.key` (mode 0600), never in this file. |
|
|
63
|
+
| `ai_council.members.<provider>.model` | per provider | Which model the provider sends the query to (e.g. `claude-sonnet-4-5`, `gpt-4o`). |
|
|
64
|
+
| `ai_council.cost_budget.max_input_tokens` | `50000` | Hard cap on summed input tokens per `/council` invocation. |
|
|
65
|
+
| `ai_council.cost_budget.max_output_tokens` | `20000` | Hard cap on summed output tokens per `/council` invocation. |
|
|
66
|
+
| `ai_council.cost_budget.max_calls` | `10` | Maximum council members per invocation. |
|
|
67
|
+
| `ai_council.cost_budget.max_total_usd` | `0.0` | Per-invocation USD ceiling. `0` disables (token caps still apply). |
|
|
68
|
+
| `ai_council.cost_budget.daily_limit_usd` | `0.0` | Rolling 24h USD ceiling across all `/council` calls. `0` disables. Ledger lives at `~/.config/agent-config/council-spend.jsonl` (mode 0600). |
|
|
69
|
+
|
|
70
|
+
> **Experimental.** AI Council is not yet validated by external users. API costs apply per consultation.
|
|
71
|
+
|
|
72
|
+
Council API tokens are installed via `./agent-config keys:install-anthropic`
|
|
73
|
+
and `./agent-config keys:install-openai` — they prompt on `/dev/tty`, write to
|
|
74
|
+
`~/.config/agent-config/<provider>.key` with mode `0600`, and never accept env
|
|
75
|
+
vars. The `/council` command refuses to run if the key file's permissions
|
|
76
|
+
drift.
|
|
61
77
|
|
|
62
78
|
### Cost profiles
|
|
63
79
|
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# End-to-end walkthroughs
|
|
2
|
+
|
|
3
|
+
Four cycle-by-cycle traces of the engine commands — backend ticket,
|
|
4
|
+
free-form prompt, UI track, and a blocked path. Each walkthrough cites
|
|
5
|
+
a checked-in **golden transcript** under [`tests/golden/baseline/`](../tests/golden/baseline/);
|
|
6
|
+
the transcripts are regenerated by `python3 -m tests.golden.capture` and
|
|
7
|
+
diffed in CI, so the cycle counts and directive names below stay
|
|
8
|
+
in sync with the engine's actual behavior.
|
|
9
|
+
|
|
10
|
+
> Behavior demos (autonomy, commit policy, hard floor, verification)
|
|
11
|
+
> live in [`showcase.md`](showcase.md). This file is the cycle-trace
|
|
12
|
+
> companion: input → directives → outcome.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. Backend ticket → ship — `/implement-ticket`
|
|
17
|
+
|
|
18
|
+
**Anchor:** [`tests/golden/baseline/GT-1/`](../tests/golden/baseline/GT-1/) ·
|
|
19
|
+
[`tickets/gt-1-happy.json`](../tests/golden/sandbox/tickets/gt-1-happy.json)
|
|
20
|
+
|
|
21
|
+
**Input** — a ticket payload with three concrete acceptance criteria:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
GT-1-MULT — Add multiply(a, b) to the toy calculator
|
|
25
|
+
AC: signature multiply(a: int, b: int) -> int returning the product;
|
|
26
|
+
edge cases multiply(0, n)=0, multiply(-2, 3)=-6;
|
|
27
|
+
pytest test_multiply_returns_product in tests/test_calculator.py.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Trace** — five cycles, exit code `0` on the last:
|
|
31
|
+
|
|
32
|
+
| Cycle | Directive | What the agent does |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| c1 | `create-plan` | Builds the three-step plan (impl, test, run) |
|
|
35
|
+
| c2 | `apply-plan` | Edits `src/calculator.py` and `tests/test_calculator.py` |
|
|
36
|
+
| c3 | `run-tests` | `pytest` — `4 passed` (targeted scope) |
|
|
37
|
+
| c4 | `review-changes` | Four judges (bug, security, test-coverage, code-quality) — `success` |
|
|
38
|
+
| c5 | _(none)_ | Engine emits the delivery report, exits `0` |
|
|
39
|
+
|
|
40
|
+
**Outcome** — verified delivery report at
|
|
41
|
+
[`GT-1/delivery-report.md`](../tests/golden/baseline/GT-1/delivery-report.md):
|
|
42
|
+
plan, changes, test verdict, judge findings, suggested next command
|
|
43
|
+
(`/commit`).
|
|
44
|
+
|
|
45
|
+
**Anchored in:** [`commands/implement-ticket.md`](../.agent-src/commands/implement-ticket.md)
|
|
46
|
+
(eight-step contract) · [`work_engine/dispatcher.py`](../.agent-src/templates/scripts/work_engine/dispatcher.py)
|
|
47
|
+
(`STEP_ORDER`).
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 2. Free-form prompt → ship — `/work`
|
|
52
|
+
|
|
53
|
+
**Anchor:** [`tests/golden/baseline/GT-P1/`](../tests/golden/baseline/GT-P1/) ·
|
|
54
|
+
[`prompts/gt-p1-high.txt`](../tests/golden/sandbox/prompts/gt-p1-high.txt)
|
|
55
|
+
|
|
56
|
+
**Input** — one line, no AC, no ticket:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
Add modulo(a, b) to src/calculator.py — return a % b for ints
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Trace** — six cycles. The extra cycle vs. GT-1 is the
|
|
63
|
+
`refine-prompt` step that reconstructs the prompt into AC + assumptions
|
|
64
|
+
+ confidence band before any plan runs:
|
|
65
|
+
|
|
66
|
+
| Cycle | Directive | Effect |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| c1 | `refine-prompt` | High confidence — AC reconstructed, no halt |
|
|
69
|
+
| c2 | `create-plan` | Two-step plan |
|
|
70
|
+
| c3 | `apply-plan` | Edits `src/calculator.py` |
|
|
71
|
+
| c4 | `run-tests` | targeted pass |
|
|
72
|
+
| c5 | `review-changes` | judges green |
|
|
73
|
+
| c6 | _(none)_ | delivery report, exit `0` |
|
|
74
|
+
|
|
75
|
+
**Outcome** — `success`. The same dispatcher and judges as GT-1; only
|
|
76
|
+
the input envelope (`input.kind="prompt"` vs `"ticket"`) differs.
|
|
77
|
+
|
|
78
|
+
**Anchored in:** [`commands/work.md`](../.agent-src/commands/work.md) ·
|
|
79
|
+
[`skills/refine-prompt/SKILL.md`](../.agent-src/skills/refine-prompt/SKILL.md)
|
|
80
|
+
· [`docs/contracts/adr-prompt-driven-execution.md`](contracts/adr-prompt-driven-execution.md).
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 3. UI improvement → review-loop ship — `/work` (UI track)
|
|
85
|
+
|
|
86
|
+
**Anchor:** [`tests/golden/baseline/GT-U2/`](../tests/golden/baseline/GT-U2/) ·
|
|
87
|
+
[`diffs/gt-u2-improve-diff.diff`](../tests/golden/sandbox/diffs/gt-u2-improve-diff.diff)
|
|
88
|
+
|
|
89
|
+
**Input** — a Blade diff that adds a `<label>` and a heading change to
|
|
90
|
+
`resources/views/contact.blade.php`. The input shape (a diff, not a
|
|
91
|
+
prompt) routes the engine onto the **UI track** instead of the
|
|
92
|
+
generic implement loop.
|
|
93
|
+
|
|
94
|
+
**Trace** — six cycles, none of them `create-plan` / `apply-plan` /
|
|
95
|
+
`run-tests`. The UI track has its own directive set:
|
|
96
|
+
|
|
97
|
+
| Cycle | Directive | Effect |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| c1 | `existing-ui-audit` | Inventory existing components / tokens before any new design |
|
|
100
|
+
| c2 | `ui-design-brief` | Brief for the proposed change |
|
|
101
|
+
| c3 | _(none — `_no_directive`)_ | Engine threads forward to the apply step |
|
|
102
|
+
| c4 | `ui-apply-plain` | Apply the diff |
|
|
103
|
+
| c5 | `ui-design-review-plain` | Design review judge |
|
|
104
|
+
| c6 | _(none)_ | delivery report, exit `0` |
|
|
105
|
+
|
|
106
|
+
**Outcome** — `success`. The audit-first ordering is enforced by the
|
|
107
|
+
[`ui-audit-gate`](../.agent-src/rules/ui-audit-gate.md) rule: any
|
|
108
|
+
non-trivial UI change without `state.ui_audit` halts before design.
|
|
109
|
+
|
|
110
|
+
**Anchored in:** [`docs/ui-track-mental-model.md`](ui-track-mental-model.md) ·
|
|
111
|
+
[`rules/ui-audit-gate.md`](../.agent-src/rules/ui-audit-gate.md) ·
|
|
112
|
+
[`skills/existing-ui-audit/SKILL.md`](../.agent-src/skills/existing-ui-audit/SKILL.md).
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 4. Blocked on ambiguity — `/implement-ticket` halts
|
|
117
|
+
|
|
118
|
+
**Anchor:** [`tests/golden/baseline/GT-2/`](../tests/golden/baseline/GT-2/) ·
|
|
119
|
+
[`tickets/gt-2-ambiguity.json`](../tests/golden/sandbox/tickets/gt-2-ambiguity.json)
|
|
120
|
+
|
|
121
|
+
**Input** — a ticket whose AC list contains a vague entry:
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
GT-2-DIV — divide(a, b)
|
|
125
|
+
AC: ... vague acceptance criteria at position(s) 2 ...
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Trace** — one cycle, exit code `1`:
|
|
129
|
+
|
|
130
|
+
| Cycle | Directive | Effect |
|
|
131
|
+
|---|---|---|
|
|
132
|
+
| c1 | _(none)_ | Engine refuses to plan; surfaces refine prompt |
|
|
133
|
+
|
|
134
|
+
**Halt surface** — the engine does not write a plan, does not edit any
|
|
135
|
+
file, and emits a numbered-options block (verbatim from
|
|
136
|
+
[`GT-2/halt-markers.json`](../tests/golden/baseline/GT-2/halt-markers.json)):
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
> Ticket GT-2-DIV is missing: vague acceptance criteria at position(s) 2.
|
|
140
|
+
> 1. Run `/refine-ticket GT-2-DIV` and re-invoke `/implement-ticket`
|
|
141
|
+
> 2. Provide the missing details in chat — I'll merge them into the ticket
|
|
142
|
+
> 3. Abandon this ticket — too vague to implement
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Outcome** — `halt_unhandled`; the run is recorded as **blocked** in
|
|
146
|
+
the outcome-aware telemetry (`outcomes: ["blocked"]`, see
|
|
147
|
+
[P2 #9](../agents/roadmaps/road-to-1-15-followups.md#phase-9--outcome-aware-telemetry-p2-9)).
|
|
148
|
+
No work is committed, no auto-guess is taken.
|
|
149
|
+
|
|
150
|
+
**Anchored in:** [`rules/ask-when-uncertain.md`](../.agent-src/rules/ask-when-uncertain.md)
|
|
151
|
+
· [`rules/non-destructive-by-default.md`](../.agent-src/rules/non-destructive-by-default.md)
|
|
152
|
+
· [`skills/refine-ticket/SKILL.md`](../.agent-src/skills/refine-ticket/SKILL.md).
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Reproducing these locally
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
python3 -m tests.golden.capture --scenarios GT-1 GT-P1 GT-U2 GT-2
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Each scenario writes a fresh `transcript.json`, `delivery-report.md`,
|
|
163
|
+
and `halt-markers.json` under `tests/golden/baseline/<id>/`. CI diffs
|
|
164
|
+
the regenerated output against the committed baseline; drift fails the
|
|
165
|
+
build via the `roadmap-progress-check` and `golden-replay` tasks.
|
package/docs/getting-started.md
CHANGED
|
@@ -1,23 +1,39 @@
|
|
|
1
1
|
# Getting Started
|
|
2
2
|
|
|
3
|
+
`agent-config` is a stack-agnostic orchestration contract for coding
|
|
4
|
+
agents. The installer detects the project shape (Composer / npm / both /
|
|
5
|
+
neither) and wires the matching glue. **Pick the entrypoint that
|
|
6
|
+
matches the project**, not the language you happen to prefer.
|
|
7
|
+
|
|
3
8
|
## Installation
|
|
4
9
|
|
|
10
|
+
The installer is the same orchestrator across stacks — it reads
|
|
11
|
+
`composer.json` and/or `package.json`, syncs the payload, and generates
|
|
12
|
+
the tool-specific glue. Pick one entrypoint:
|
|
13
|
+
|
|
5
14
|
```bash
|
|
6
|
-
# Composer (PHP
|
|
15
|
+
# Composer-based projects (PHP / Laravel / Symfony / Zend / Laminas)
|
|
7
16
|
composer require --dev event4u/agent-config
|
|
8
17
|
php vendor/bin/install.php
|
|
9
18
|
# Equivalent: bash vendor/event4u/agent-config/scripts/install
|
|
10
19
|
|
|
11
|
-
# npm (
|
|
20
|
+
# npm-based projects (Next.js / React / Node / Vue / plain JS/TS)
|
|
12
21
|
npm install --save-dev @event4u/agent-config
|
|
13
|
-
# Re-run or pick a profile:
|
|
22
|
+
# Postinstall runs the orchestrator. Re-run or pick a profile:
|
|
14
23
|
# bash node_modules/@event4u/agent-config/scripts/install --profile=balanced
|
|
24
|
+
|
|
25
|
+
# Mixed Composer + npm projects (Laravel + Inertia, Symfony + Vue, …)
|
|
26
|
+
# Run both — the orchestrator merges results, no double-write.
|
|
27
|
+
|
|
28
|
+
# Stack-less or polyglot repos (no Composer, no npm)
|
|
29
|
+
git clone https://github.com/event4u-app/agent-config /tmp/agent-config
|
|
30
|
+
bash /tmp/agent-config/scripts/install --target "$PWD"
|
|
15
31
|
```
|
|
16
32
|
|
|
17
33
|
That's it. Your agent now follows your team's standards. The orchestrator
|
|
18
34
|
runs a bash payload sync and a Python bridge generator (Python 3 is
|
|
19
35
|
recommended; without it the payload sync still runs). No Task or Make
|
|
20
|
-
required for end users.
|
|
36
|
+
required for end users — those are contributor-only.
|
|
21
37
|
|
|
22
38
|
## Project CLI — `./agent-config`
|
|
23
39
|
|
|
@@ -99,7 +115,7 @@ Your agent is now:
|
|
|
99
115
|
- **Respecting your codebase** — no conflicting patterns
|
|
100
116
|
- **Following standards** — consistent code quality
|
|
101
117
|
|
|
102
|
-
This is enforced automatically by
|
|
118
|
+
This is enforced automatically by 58 rules. No configuration needed.
|
|
103
119
|
|
|
104
120
|
---
|
|
105
121
|
|
|
@@ -131,13 +147,15 @@ Your agent now understands slash commands:
|
|
|
131
147
|
|---|---|
|
|
132
148
|
| `/commit` | Stage and commit with Conventional Commits |
|
|
133
149
|
| `/create-pr` | Create PR with Jira-linked description |
|
|
134
|
-
| `/fix
|
|
150
|
+
| `/fix ci` | Fetch and fix GitHub Actions failures |
|
|
151
|
+
| `/optimize skills` | Audit skills, find duplicates, run linter |
|
|
152
|
+
| `/feature plan` | Interactively plan a feature |
|
|
135
153
|
| `/quality-fix` | Run and fix all quality checks |
|
|
136
154
|
| `/chat-history` | Inspect the persistent chat-history log |
|
|
137
155
|
| `/chat-history-resume` | Recover context after a crashed or switched session |
|
|
138
156
|
| `/chat-history-clear` | Wipe the chat-history log (with confirmation) |
|
|
139
157
|
|
|
140
|
-
→ [Browse all
|
|
158
|
+
→ [Browse all 95 active commands](../.agent-src/commands/)
|
|
141
159
|
|
|
142
160
|
---
|
|
143
161
|
|
|
@@ -149,8 +167,9 @@ for every profile), the agent keeps a JSONL log of your conversation in
|
|
|
149
167
|
rotates at the size configured in the profile (`128 KB` on `minimal`,
|
|
150
168
|
`256 KB` on `balanced`, `512 KB` on `full`).
|
|
151
169
|
|
|
152
|
-
When a chat opens and finds an existing log, the agent
|
|
153
|
-
4-state ownership check and
|
|
170
|
+
When a chat opens and finds an existing log, the host agent is
|
|
171
|
+
instructed to run a 4-state ownership check and choose the right
|
|
172
|
+
flow:
|
|
154
173
|
|
|
155
174
|
- **match** — this chat already owns the file. Append silently.
|
|
156
175
|
- **foreign** — a different session's file. You get 3 options:
|
|
@@ -173,7 +192,7 @@ See the [`chat-history` rule](../.agent-src/rules/chat-history-ownership.md) and
|
|
|
173
192
|
## Next steps
|
|
174
193
|
|
|
175
194
|
1. **Stay on `minimal`** — use it for a few days, see if the difference is noticeable
|
|
176
|
-
2. **Try commands** — `/commit`, `/create-pr`, `/fix
|
|
195
|
+
2. **Try commands** — `/commit`, `/create-pr`, `/fix ci` are great starting points
|
|
177
196
|
3. **Upgrade when ready** — switch to `balanced` to let the runtime dispatcher execute skills that declare a shell command
|
|
178
197
|
4. **Customize** — add [project overrides](customization.md) for your team's specific patterns
|
|
179
198
|
|
package/docs/github-topics.md
CHANGED
|
@@ -13,8 +13,12 @@ ai-coding
|
|
|
13
13
|
agent-skills
|
|
14
14
|
agent-rules
|
|
15
15
|
governance
|
|
16
|
+
orchestration
|
|
16
17
|
laravel
|
|
17
18
|
php
|
|
19
|
+
nextjs
|
|
20
|
+
nodejs
|
|
21
|
+
typescript
|
|
18
22
|
devcontainer
|
|
19
23
|
augment-agent
|
|
20
24
|
claude-code
|
|
@@ -30,8 +34,9 @@ agentskills-standard
|
|
|
30
34
|
| `agent-skills` | Aligns with the [Agent Skills](https://agentskills.io) community spec |
|
|
31
35
|
| `agent-rules` | Complementary — rules govern behavior, skills provide expertise |
|
|
32
36
|
| `governance` | Differentiates from prompt collections |
|
|
33
|
-
| `
|
|
34
|
-
| `php` |
|
|
37
|
+
| `orchestration` | Captures the core identity — a deterministic orchestration contract / state machine |
|
|
38
|
+
| `laravel`, `php` | Reference-implementation stack — currently the deepest skill density |
|
|
39
|
+
| `nextjs`, `nodejs`, `typescript` | Parallel skill sets for JS/TS surfaces (project-analysis, UI directives) |
|
|
35
40
|
| `devcontainer` | One of our 4 core concerns |
|
|
36
41
|
| `augment-agent`, `claude-code`, `copilot` | Tool-specific discovery |
|
|
37
42
|
| `agentskills-standard` | SKILL.md format is compatible with the agentskills.io spec |
|
|
@@ -53,8 +58,12 @@ gh repo edit event4u-app/agent-config \
|
|
|
53
58
|
--add-topic agent-skills \
|
|
54
59
|
--add-topic agent-rules \
|
|
55
60
|
--add-topic governance \
|
|
61
|
+
--add-topic orchestration \
|
|
56
62
|
--add-topic laravel \
|
|
57
63
|
--add-topic php \
|
|
64
|
+
--add-topic nextjs \
|
|
65
|
+
--add-topic nodejs \
|
|
66
|
+
--add-topic typescript \
|
|
58
67
|
--add-topic devcontainer \
|
|
59
68
|
--add-topic augment-agent \
|
|
60
69
|
--add-topic claude-code \
|
|
@@ -69,7 +78,7 @@ curl -X PUT \
|
|
|
69
78
|
-H "Authorization: Bearer $GITHUB_TOKEN" \
|
|
70
79
|
-H "Accept: application/vnd.github+json" \
|
|
71
80
|
https://api.github.com/repos/event4u-app/agent-config/topics \
|
|
72
|
-
-d '{"names":["ai-coding","agent-skills","agent-rules","governance","laravel","php","devcontainer","augment-agent","claude-code","copilot","agentskills-standard"]}'
|
|
81
|
+
-d '{"names":["ai-coding","agent-skills","agent-rules","governance","orchestration","laravel","php","nextjs","nodejs","typescript","devcontainer","augment-agent","claude-code","copilot","agentskills-standard"]}'
|
|
73
82
|
```
|
|
74
83
|
|
|
75
84
|
## Verify
|