@event4u/agent-config 1.14.0 → 1.16.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/agent-handoff.md +1 -1
- package/.agent-src/commands/bug-fix.md +3 -3
- package/.agent-src/commands/bug-investigate.md +2 -2
- package/.agent-src/commands/chat-history-checkpoint.md +3 -3
- package/.agent-src/commands/chat-history-clear.md +2 -2
- package/.agent-src/commands/chat-history-resume.md +2 -2
- package/.agent-src/commands/chat-history.md +3 -3
- package/.agent-src/commands/check-current-md.md +44 -33
- package/.agent-src/commands/commit-in-chunks.md +43 -23
- package/.agent-src/commands/compress.md +34 -2
- package/.agent-src/commands/council-design.md +96 -0
- package/.agent-src/commands/council-optimize.md +115 -0
- package/.agent-src/commands/council-pr.md +123 -0
- package/.agent-src/commands/council.md +219 -0
- package/.agent-src/commands/create-pr.md +23 -0
- package/.agent-src/commands/do-and-judge.md +3 -3
- package/.agent-src/commands/do-in-steps.md +4 -4
- 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 +8 -0
- package/.agent-src/commands/feature-explore.md +6 -1
- package/.agent-src/commands/feature-plan.md +33 -2
- package/.agent-src/commands/feature-refactor.md +5 -0
- package/.agent-src/commands/feature-roadmap.md +8 -3
- package/.agent-src/commands/feature.md +58 -0
- package/.agent-src/commands/fix-ci.md +5 -0
- package/.agent-src/commands/fix-portability.md +7 -2
- package/.agent-src/commands/fix-pr-bot-comments.md +5 -0
- package/.agent-src/commands/fix-pr-comments.md +5 -0
- package/.agent-src/commands/fix-pr-developer-comments.md +5 -0
- package/.agent-src/commands/fix-references.md +5 -0
- package/.agent-src/commands/fix-seeder.md +5 -0
- package/.agent-src/commands/fix.md +60 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/judge.md +1 -1
- package/.agent-src/commands/memory-add.md +3 -3
- package/.agent-src/commands/memory-full.md +2 -2
- package/.agent-src/commands/memory-promote.md +2 -2
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/onboard.md +17 -8
- package/.agent-src/commands/optimize-agents.md +6 -1
- package/.agent-src/commands/optimize-augmentignore.md +14 -0
- package/.agent-src/commands/optimize-rtk-filters.md +5 -0
- package/.agent-src/commands/optimize-skills.md +6 -1
- package/.agent-src/commands/optimize.md +54 -0
- package/.agent-src/commands/propose-memory.md +2 -2
- package/.agent-src/commands/refine-ticket.md +9 -7
- package/.agent-src/commands/review-changes.md +61 -9
- package/.agent-src/commands/review-routing.md +1 -1
- package/.agent-src/commands/roadmap-create.md +42 -4
- package/.agent-src/commands/roadmap-execute.md +9 -7
- package/.agent-src/commands/set-cost-profile.md +11 -3
- package/.agent-src/commands/sync-agent-settings.md +11 -2
- package/.agent-src/commands/tests-create.md +1 -1
- package/.agent-src/commands/tests-execute.md +2 -3
- 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/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/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 +2 -2
- package/.agent-src/rules/ask-when-uncertain.md +1 -1
- package/.agent-src/rules/augment-portability.md +56 -37
- 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 +109 -0
- package/.agent-src/rules/chat-history-ownership.md +123 -0
- package/.agent-src/rules/chat-history-visibility.md +96 -0
- package/.agent-src/rules/cli-output-handling.md +1 -1
- package/.agent-src/rules/{command-suggestion.md → command-suggestion-policy.md} +10 -9
- package/.agent-src/rules/commit-conventions.md +1 -1
- package/.agent-src/rules/commit-policy.md +43 -61
- package/.agent-src/rules/context-hygiene.md +3 -3
- package/.agent-src/rules/direct-answers.md +2 -2
- package/.agent-src/rules/docs-sync.md +1 -1
- 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 +41 -96
- package/.agent-src/rules/minimal-safe-diff.md +3 -3
- package/.agent-src/rules/model-recommendation.md +4 -4
- package/.agent-src/rules/no-cheap-questions.md +89 -0
- package/.agent-src/rules/non-destructive-by-default.md +25 -59
- package/.agent-src/rules/onboarding-gate.md +5 -5
- package/.agent-src/rules/review-routing-awareness.md +9 -9
- package/.agent-src/rules/roadmap-progress-sync.md +132 -80
- package/.agent-src/rules/role-mode-adherence.md +3 -3
- package/.agent-src/rules/scope-control.md +65 -46
- package/.agent-src/rules/security-sensitive-stop.md +2 -2
- package/.agent-src/rules/size-enforcement.md +3 -2
- package/.agent-src/rules/think-before-action.md +5 -5
- package/.agent-src/rules/token-efficiency.md +4 -4
- package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +3 -3
- package/.agent-src/rules/user-interaction.md +31 -7
- package/.agent-src/rules/verify-before-complete.md +12 -67
- package/.agent-src/scripts/update_roadmap_progress.py +65 -8
- package/.agent-src/skills/ai-council/SKILL.md +333 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/.agent-src/skills/blade-ui/SKILL.md +30 -11
- 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/command-routing/SKILL.md +1 -1
- package/.agent-src/skills/command-writing/SKILL.md +16 -5
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -1
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
- package/.agent-src/skills/developer-like-execution/SKILL.md +2 -2
- package/.agent-src/skills/existing-ui-audit/SKILL.md +24 -9
- package/.agent-src/skills/fe-design/SKILL.md +20 -15
- package/.agent-src/skills/file-editor/SKILL.md +9 -0
- package/.agent-src/skills/flux/SKILL.md +1 -1
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/livewire/SKILL.md +27 -8
- package/.agent-src/skills/override-management/SKILL.md +2 -2
- package/.agent-src/skills/php-coder/SKILL.md +1 -1
- package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
- package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing-package/SKILL.md +1 -1
- package/.agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/.agent-src/skills/refine-ticket/SKILL.md +30 -24
- package/.agent-src/skills/review-routing/SKILL.md +2 -2
- package/.agent-src/skills/roadmap-management/SKILL.md +22 -16
- package/.agent-src/skills/rule-writing/SKILL.md +1 -1
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/skill-writing/SKILL.md +6 -6
- package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +1 -1
- package/.agent-src/skills/upstream-contribute/SKILL.md +3 -3
- package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +2 -2
- package/.agent-src/templates/agent-settings.md +9 -9
- package/.agent-src/templates/contexts/auth-model.md +1 -1
- package/.agent-src/templates/roadmaps.md +9 -8
- package/.agent-src/templates/scripts/README.md +2 -2
- package/.agent-src/templates/scripts/memory_lookup.py +1 -1
- 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/.agent-src/templates/scripts/work_engine/__init__.py +2 -2
- package/.agent-src/templates/scripts/work_engine/cli.py +64 -461
- package/.agent-src/templates/scripts/work_engine/cli_args.py +116 -0
- package/.agent-src/templates/scripts/work_engine/delivery_state.py +3 -3
- package/.agent-src/templates/scripts/work_engine/directives/backend/__init__.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/implement.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/memory.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/plan.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/report.py +1 -1
- package/.agent-src/templates/scripts/work_engine/dispatcher.py +1 -1
- package/.agent-src/templates/scripts/work_engine/emitters.py +43 -0
- package/.agent-src/templates/scripts/work_engine/errors.py +19 -0
- package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +76 -0
- package/.agent-src/templates/scripts/work_engine/input_builders.py +163 -0
- package/.agent-src/templates/scripts/work_engine/migration/v0_to_v1.py +34 -2
- package/.agent-src/templates/scripts/work_engine/persona_policy.py +1 -1
- package/.agent-src/templates/scripts/work_engine/resolvers/prompt.py +1 -1
- package/.agent-src/templates/scripts/work_engine/state_io.py +202 -0
- package/.claude-plugin/marketplace.json +10 -2
- package/AGENTS.md +16 -12
- package/CHANGELOG.md +206 -9
- package/README.md +51 -52
- package/config/agent-settings.template.yml +58 -1
- package/config/gitignore-block.txt +3 -0
- package/docs/MIGRATION.md +122 -0
- package/docs/architecture.md +83 -34
- package/docs/catalog.md +331 -0
- package/docs/contracts/STABILITY.md +134 -0
- package/docs/contracts/adr-chat-history-split.md +132 -0
- package/docs/contracts/adr-command-suggestion.md +146 -0
- package/docs/contracts/adr-implement-ticket-runtime.md +122 -0
- package/docs/contracts/adr-product-ui-track.md +384 -0
- package/docs/contracts/adr-prompt-driven-execution.md +187 -0
- package/docs/contracts/agent-memory-contract.md +149 -0
- package/docs/contracts/artifact-engagement-flow.md +262 -0
- package/docs/contracts/command-clusters.md +126 -0
- package/docs/contracts/command-suggestion-flow.md +148 -0
- package/docs/contracts/implement-ticket-flow.md +628 -0
- package/docs/contracts/linear-ai-rules-inclusion.md +143 -0
- package/docs/contracts/linear-ai-three-layers.md +131 -0
- package/docs/contracts/load-context-schema.md +186 -0
- package/docs/contracts/rule-interactions.md +107 -0
- package/docs/contracts/rule-interactions.yml +238 -0
- package/docs/contracts/rule-priority-hierarchy.md +87 -0
- package/docs/contracts/ui-stack-extension.md +236 -0
- package/docs/contracts/ui-track-flow.md +338 -0
- package/docs/customization.md +14 -0
- package/docs/end-to-end-walkthroughs.md +165 -0
- package/docs/getting-started.md +27 -9
- package/docs/github-topics.md +12 -3
- 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/installation.md +42 -6
- package/docs/migrations/commands-1.15.0.md +112 -0
- package/docs/showcase.md +9 -4
- package/docs/skills-catalog.md +14 -8
- package/docs/ui-track-mental-model.md +121 -0
- package/llms.txt +13 -7
- package/package.json +1 -1
- package/scripts/agent-config +23 -0
- package/scripts/ai_council/__init__.py +39 -0
- package/scripts/ai_council/_default_prices.py +41 -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/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/build_linear_digest.py +4 -4
- package/scripts/check_always_budget.py +126 -0
- package/scripts/check_augmentignore.py +69 -0
- package/scripts/check_command_count_messaging.py +120 -0
- package/scripts/check_portability.py +57 -0
- package/scripts/check_public_catalog_links.py +122 -0
- package/scripts/check_public_links.py +185 -0
- package/scripts/check_references.py +5 -1
- package/scripts/check_roadmap_trackable.py +111 -0
- package/scripts/command_suggester/cooldown.py +1 -1
- package/scripts/generate_index.py +266 -0
- 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 +179 -0
- package/scripts/lint_rule_interactions.py +149 -0
- package/scripts/memory_lookup.py +1 -1
- package/scripts/release.py +297 -64
- package/scripts/schemas/command.schema.json +20 -0
- package/scripts/schemas/rule.schema.json +10 -0
- package/scripts/skill_linter.py +26 -4
- package/scripts/sync_agent_settings.py +1 -1
- package/scripts/update_counts.py +19 -4
- package/scripts/update_prices.py +124 -0
- package/.agent-src/guidelines/php/git.md +0 -96
- package/.agent-src/rules/chat-history.md +0 -200
- /package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +0 -0
- /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
package/docs/skills-catalog.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Skills Catalog
|
|
2
2
|
|
|
3
|
-
All **
|
|
3
|
+
All **128 skills** available in this package, in alphabetical order.
|
|
4
4
|
Click a skill name to open its SKILL.md and read the full guidance.
|
|
5
5
|
|
|
6
6
|
> **Regenerate:** `python3 scripts/generate_catalog.py`
|
|
@@ -18,7 +18,7 @@ Click a skill name to open its SKILL.md and read the full guidance.
|
|
|
18
18
|
| [`artisan-commands`](../.agent-src/skills/artisan-commands/SKILL.md) | Use when creating or modifying Artisan commands. Covers clear signatures, safe execution flow, helpful output, and project conventions for console tooling. |
|
|
19
19
|
| [`authz-review`](../.agent-src/skills/authz-review/SKILL.md) | Use when reviewing authorization end-to-end — route → gate → policy → query scope → response filter — before changes to permissions, tenants, ownership, or admin flows. |
|
|
20
20
|
| [`aws-infrastructure`](../.agent-src/skills/aws-infrastructure/SKILL.md) | Use when working with AWS resources — ECS Fargate, ECR, EFS, Secrets Manager, gomplate templates, multi-env deployments — even when the user says 'deploy to staging' without naming AWS. |
|
|
21
|
-
| [`blade-ui`](../.agent-src/skills/blade-ui/SKILL.md) |
|
|
21
|
+
| [`blade-ui`](../.agent-src/skills/blade-ui/SKILL.md) | Stack-implementation skill for Laravel Blade — dispatched by `directives/ui/apply.py` (and `review.py` / `polish.py`) when the project's frontend stack is Blade. Covers views, components, partials, layouts, and view logic. |
|
|
22
22
|
| [`blast-radius-analyzer`](../.agent-src/skills/blast-radius-analyzer/SKILL.md) | Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency. |
|
|
23
23
|
| [`bug-analyzer`](../.agent-src/skills/bug-analyzer/SKILL.md) | Use when the user shares a Sentry error, Jira bug ticket, or error description and wants root cause analysis. Also for proactive bug hunting and code audits for hidden bugs. |
|
|
24
24
|
| [`check-refs`](../.agent-src/skills/check-refs/SKILL.md) | Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions. |
|
|
@@ -43,15 +43,17 @@ Click a skill name to open its SKILL.md and read the full guidance.
|
|
|
43
43
|
| [`docker`](../.agent-src/skills/docker/SKILL.md) | Use when working with Docker — Dockerfile edits, docker-compose services, containers, or the dual-container (fast + Xdebug) setup — even when the user just says 'my container won't start'. |
|
|
44
44
|
| [`dto-creator`](../.agent-src/skills/dto-creator/SKILL.md) | Use when the user says "create a DTO", "new data transfer object", or needs to convert request/response data into a typed PHP class. Creates DTOs with SimpleDto base class and attribute mapping. |
|
|
45
45
|
| [`eloquent`](../.agent-src/skills/eloquent/SKILL.md) | Use when writing Eloquent models, relationships, scopes, or queries via Model:: — 'fetch users with their orders'. NOT for PHPStan output, non-Eloquent services, or raw SQL questions. |
|
|
46
|
-
| [`
|
|
46
|
+
| [`"estimate-ticket"`](../.agent-src/skills/"estimate-ticket"/SKILL.md) | Estimate a Jira/Linear ticket — 'estimate PROJ-123', 'wie groß ist das?', 'should we split this?' — size + risk + split + uncertainty, sibling of /refine-ticket, close-prompt. |
|
|
47
|
+
| [`existing-ui-audit`](../.agent-src/skills/existing-ui-audit/SKILL.md) | Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set. |
|
|
48
|
+
| [`fe-design`](../.agent-src/skills/fe-design/SKILL.md) | Reference for frontend-design heuristics — component architecture, layout patterns, form/table design, responsive strategy, a11y, UX principles. Stack-agnostic; cited by directives/ui/design.py. |
|
|
47
49
|
| [`feature-planning`](../.agent-src/skills/feature-planning/SKILL.md) | Use when the user says "plan a feature", "brainstorm", "explore this idea", or wants to go from idea to structured plan and roadmap. |
|
|
48
50
|
| [`file-editor`](../.agent-src/skills/file-editor/SKILL.md) | Use when opening edited files in the user's IDE. Reads settings from .agent-settings.yml to determine IDE and whether auto-open is enabled. |
|
|
49
51
|
| [`finishing-a-development-branch`](../.agent-src/skills/finishing-a-development-branch/SKILL.md) | Use when the feature is implementation-complete and the next step is 'ship it' — verifies, cleans up, and routes to merge/PR/park/discard — even when the user just says 'I'm done, what now?'. |
|
|
50
|
-
| [`flux`](../.agent-src/skills/flux/SKILL.md) |
|
|
52
|
+
| [`flux`](../.agent-src/skills/flux/SKILL.md) | Stack-implementation skill for Laravel Flux — dispatched by `directives/ui/apply.py` (and `review.py` / `polish.py`) when the project uses `livewire/flux`. Covers Flux components, slots, variants, and form primitives. |
|
|
51
53
|
| [`git-workflow`](../.agent-src/skills/git-workflow/SKILL.md) | Use when working with Git — branch naming, commit messages, PR creation, rebasing, or the code review process — even when the user says 'push this' or 'merge the branch' without naming Git. |
|
|
52
54
|
| [`github-ci`](../.agent-src/skills/github-ci/SKILL.md) | Use when working with GitHub Actions — workflow YAML, quality gates, test matrices, deployment triggers, reusable workflows — even when the user just says 'my CI is failing' or 'add a check'. |
|
|
53
55
|
| [`grafana`](../.agent-src/skills/grafana/SKILL.md) | Use when working with Grafana — dashboards, Loki LogQL queries, alerting rules, monitoring panels — even when the user just says 'build me a dashboard' or 'query the logs' without naming Grafana. |
|
|
54
|
-
| [`guideline-writing`](../.agent-src/skills/guideline-writing/SKILL.md) | Use when creating or editing a guideline in
|
|
56
|
+
| [`guideline-writing`](../.agent-src/skills/guideline-writing/SKILL.md) | Use when creating or editing a guideline in docs/guidelines/ — reference material cited by skills, no auto-triggers — even when the user just says 'write up our naming conventions'. |
|
|
55
57
|
| [`jira-integration`](../.agent-src/skills/jira-integration/SKILL.md) | Use when the user says "check Jira", "create ticket", "update issue", or needs JQL queries, ticket transitions, or branch-to-ticket linking. |
|
|
56
58
|
| [`jobs-events`](../.agent-src/skills/jobs-events/SKILL.md) | Use when creating Laravel jobs, queued workflows, events, or listeners. Covers clear responsibilities, safe serialization, and retry/failure handling. |
|
|
57
59
|
| [`judge-bug-hunter`](../.agent-src/skills/judge-bug-hunter/SKILL.md) | Use when a diff needs correctness review — null-safety, edge cases, off-by-one, races, error handling — dispatched by /review-changes, /do-and-judge, /judge, even without 'judge'. |
|
|
@@ -70,9 +72,10 @@ Click a skill name to open its SKILL.md and read the full guidance.
|
|
|
70
72
|
| [`laravel-validation`](../.agent-src/skills/laravel-validation/SKILL.md) | Use when writing validation — Form Requests, rules, custom rule objects, request-boundary design — even when the user just says 'validate this input' or 'check the request' without naming it. |
|
|
71
73
|
| [`learning-to-rule-or-skill`](../.agent-src/skills/learning-to-rule-or-skill/SKILL.md) | Use when a repeated learning, mistake, or successful pattern should be turned into a new rule or skill. Also use after completing a task to capture learnings from the work. |
|
|
72
74
|
| [`lint-skills`](../.agent-src/skills/lint-skills/SKILL.md) | Use when running the package's skill linter against all skills and rules to validate frontmatter, required sections, and execution metadata. |
|
|
73
|
-
| [`livewire`](../.agent-src/skills/livewire/SKILL.md) |
|
|
75
|
+
| [`livewire`](../.agent-src/skills/livewire/SKILL.md) | Stack-implementation skill for Livewire — dispatched by `directives/ui/apply.py` (and `review.py` / `polish.py`) when the project's frontend stack is Livewire. Covers reactive state, events, lifecycle hooks, and component/view separation. |
|
|
74
76
|
| [`logging-monitoring`](../.agent-src/skills/logging-monitoring/SKILL.md) | Use when working with logging or monitoring — Sentry error tracking, Grafana/Loki log aggregation, structured logging channels, or monitoring helpers. |
|
|
75
77
|
| [`mcp`](../.agent-src/skills/mcp/SKILL.md) | Use when working with MCP (Model Context Protocol) servers — their tools, capabilities, and best practices for effective agent workflows. |
|
|
78
|
+
| [`md-language-check`](../.agent-src/skills/md-language-check/SKILL.md) | Use BEFORE saving any .md under .augment/, .agent-src*/, or agents/ — scans umlauts, German function words, and quoted German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone. |
|
|
76
79
|
| [`merge-conflicts`](../.agent-src/skills/merge-conflicts/SKILL.md) | Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow. |
|
|
77
80
|
| [`migration-creator`](../.agent-src/skills/migration-creator/SKILL.md) | Use when the user says "create migration", "add column", or "new table". Creates migrations with correct table prefixes, column naming, and multi-tenant awareness. |
|
|
78
81
|
| [`module-management`](../.agent-src/skills/module-management/SKILL.md) | Use when the user says "create module", "explore module", or works within app/Modules/. Understands module structure, auto-loading, route registration, and namespace conventions. |
|
|
@@ -97,10 +100,13 @@ Click a skill name to open its SKILL.md and read the full guidance.
|
|
|
97
100
|
| [`project-analyzer`](../.agent-src/skills/project-analyzer/SKILL.md) | ONLY when user explicitly requests: full project analysis, tech stack detection, or structured analysis documents for agents/analysis/. NOT for regular feature work. |
|
|
98
101
|
| [`project-docs`](../.agent-src/skills/project-docs/SKILL.md) | Use when looking for project-specific documentation. Knows which docs exist in agents/docs/ and agents/contexts/ and maps work areas to relevant docs. |
|
|
99
102
|
| [`quality-tools`](../.agent-src/skills/quality-tools/SKILL.md) | Use when PHPStan, Rector, or ECS output appears — \"phpstan says mixed\", type errors, \"fix code style\", \"run rector\" — even when Eloquent/Laravel/model code is also mentioned. |
|
|
103
|
+
| [`react-shadcn-ui`](../.agent-src/skills/react-shadcn-ui/SKILL.md) | Use when building React UI on shadcn/ui primitives + Tailwind — the apply/review/polish skill dispatched by `directives/ui/*` for the `react-shadcn` stack. |
|
|
100
104
|
| [`readme-reviewer`](../.agent-src/skills/readme-reviewer/SKILL.md) | Use when reviewing a README for accuracy, usability, and alignment with the actual repository. Detects invented content, broken setup steps, and structural issues. |
|
|
101
105
|
| [`readme-writing`](../.agent-src/skills/readme-writing/SKILL.md) | Use when creating, rewriting, or significantly improving a README based on the actual repository structure, commands, and intended audience. |
|
|
102
106
|
| [`readme-writing-package`](../.agent-src/skills/readme-writing-package/SKILL.md) | Use when creating or rewriting a README for a reusable package or library. Focus on installability, minimal usage example, compatibility, and developer onboarding. |
|
|
103
107
|
| [`receiving-code-review`](../.agent-src/skills/receiving-code-review/SKILL.md) | Use when processing code review feedback (bot or human) before changing anything — triages, verifies, and pushes back with technical reasoning — even when the user just says 'fix the comments'. |
|
|
108
|
+
| [`"refine-prompt"`](../.agent-src/skills/"refine-prompt"/SKILL.md) | Reconstruct a free-form prompt into actionable AC + assumptions + confidence band before the engine plans — '/work \"…\"', 'baue X', 'ist der Prompt klar genug für die Engine?'. |
|
|
109
|
+
| [`"refine-ticket"`](../.agent-src/skills/"refine-ticket"/SKILL.md) | Refine a Jira/Linear ticket before planning — 'refine ticket', 'tighten AC on PROJ-123', 'ist das Ticket klar?' — rewritten ticket, Top-5 risks, persona voices, sub-skills orchestrated, close-prompt. |
|
|
104
110
|
| [`requesting-code-review`](../.agent-src/skills/requesting-code-review/SKILL.md) | Use when asking for a review or creating a PR — self-review first, frame the right context, test plan included — even when the user just says 'open a PR' or 'ready to merge'. |
|
|
105
111
|
| [`review-routing`](../.agent-src/skills/review-routing/SKILL.md) | Use when preparing a PR description, suggesting reviewers, or flagging risk — produces owner-mapped roles plus historical bug-pattern matches from project-local YAML. |
|
|
106
112
|
| [`roadmap-management`](../.agent-src/skills/roadmap-management/SKILL.md) | Use when the user says "create roadmap", "show roadmap", or "execute roadmap". Creates, reads, and manages roadmap files with phase tracking. |
|
|
@@ -115,7 +121,7 @@ Click a skill name to open its SKILL.md and read the full guidance.
|
|
|
115
121
|
| [`skill-reviewer`](../.agent-src/skills/skill-reviewer/SKILL.md) | Use when reviewing, auditing, or optimizing skills — validates against the 7 Skill Killers checklist and produces fix recommendations. |
|
|
116
122
|
| [`skill-writing`](../.agent-src/skills/skill-writing/SKILL.md) | Use when deciding 'should this be a skill or a rule?', creating/improving/reviewing agent skills, SKILL.md frontmatter, or procedure sections — even without saying 'skill-writing'. |
|
|
117
123
|
| [`sql-writing`](../.agent-src/skills/sql-writing/SKILL.md) | Use when writing raw SQL — MariaDB/MySQL syntax, parameterization, raw migrations, seeders with `DB::statement` — even when the user just pastes a query and asks 'why is this slow' without naming SQL. |
|
|
118
|
-
| [`subagent-orchestration`](../.agent-src/skills/subagent-orchestration/SKILL.md) | Use when orchestrating implementer/judge subagents — five modes (do-and-judge, do-in-steps, do-in-parallel, do-competitively, judge-with-debate) —
|
|
124
|
+
| [`subagent-orchestration`](../.agent-src/skills/subagent-orchestration/SKILL.md) | Use when orchestrating implementer/judge subagents — five modes (do-and-judge, do-in-steps, do-in-parallel, do-competitively, judge-with-debate) — models from .agent-settings.yml. |
|
|
119
125
|
| [`systematic-debugging`](../.agent-src/skills/systematic-debugging/SKILL.md) | Use when hitting a bug, test failure, crash, or unexpected behavior — enforces reproduce → isolate → hypothesize → verify before any fix — even when the user just says 'this is broken' or 'quick fix'. |
|
|
120
126
|
| [`technical-specification`](../.agent-src/skills/technical-specification/SKILL.md) | Use when the user says "write a spec", "create RFC", or "document this decision". Writes technical specifications, RFCs, and ADRs with clear structure. |
|
|
121
127
|
| [`terraform`](../.agent-src/skills/terraform/SKILL.md) | Use when writing Terraform — AWS modules, resources, variables, outputs, remote state — even when the user just says 'provision this infra' or 'add an S3 bucket' without naming Terraform. |
|
|
@@ -128,7 +134,7 @@ Click a skill name to open its SKILL.md and read the full guidance.
|
|
|
128
134
|
| [`upstream-contribute`](../.agent-src/skills/upstream-contribute/SKILL.md) | Use when a learning, new skill, rule improvement, or bug fix from a consumer project should be contributed back to the shared agent-config package. |
|
|
129
135
|
| [`using-git-worktrees`](../.agent-src/skills/using-git-worktrees/SKILL.md) | Use when starting parallel work in isolation from the current branch — spawn a git worktree with ignore-safety checks and a clean test baseline — even when the user says 'try this on the side'. |
|
|
130
136
|
| [`"validate-feature-fit"`](../.agent-src/skills/"validate-feature-fit"/SKILL.md) | Validate whether a feature request fits the existing codebase — check for duplicates, contradictions, scope creep, and architectural misfit |
|
|
131
|
-
| [`verify-
|
|
137
|
+
| [`verify-completion-evidence`](../.agent-src/skills/verify-completion-evidence/SKILL.md) | Use when claiming 'done', suggesting a commit, push, or PR — runs the evidence gate so completion claims come from fresh output in this message, not memory or earlier runs. |
|
|
132
138
|
| [`websocket`](../.agent-src/skills/websocket/SKILL.md) | Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'. |
|
|
133
139
|
|
|
134
140
|
---
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: stable
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# UI Track — Mental Model (1 page)
|
|
6
|
+
|
|
7
|
+
> **Audience:** anyone driving `/work` or `/implement-ticket` on a UI-shaped
|
|
8
|
+
> prompt, or reading code that touches `state.directive_set`.
|
|
9
|
+
> **Not a contract.** For shapes, schemas, and slot wiring see
|
|
10
|
+
> [`ui-track-flow.md`](contracts/ui-track-flow.md) and
|
|
11
|
+
> [`adr-product-ui-track.md`](contracts/adr-product-ui-track.md).
|
|
12
|
+
> **Not a roadmap.** Phased delivery lives in
|
|
13
|
+
> [`road-to-product-ui-track.md`](../agents/roadmaps/archive/road-to-product-ui-track.md)
|
|
14
|
+
> and [`road-to-visual-review-loop.md`](../agents/roadmaps/archive/road-to-visual-review-loop.md).
|
|
15
|
+
> This page is the picture you keep in your head while the engine runs.
|
|
16
|
+
|
|
17
|
+
## The three (+1) directive sets
|
|
18
|
+
|
|
19
|
+
| Set | Shape | Halt budget |
|
|
20
|
+
|---|---|---:|
|
|
21
|
+
| `backend` | `refine → memory → analyze → plan → implement → test → verify → report` | depends on confidence band |
|
|
22
|
+
| `ui` | `audit → design → apply → review → polish → report` | **2** (audit pick + design sign-off) |
|
|
23
|
+
| `ui-trivial` | `refine → apply → test → report` | **0** on the happy path |
|
|
24
|
+
| `mixed` | `refine → memory → analyze → contract → ui → stitch → verify → report` | inherits both |
|
|
25
|
+
|
|
26
|
+
The first three are sibling routes; `mixed` stitches `backend` and `ui`
|
|
27
|
+
in one envelope. The dispatcher picks one and refuses to switch
|
|
28
|
+
mid-flight.
|
|
29
|
+
|
|
30
|
+
## When to pick which
|
|
31
|
+
|
|
32
|
+
| Signal | Set |
|
|
33
|
+
|---|---|
|
|
34
|
+
| No UI keywords, no UI envelope, prompt edits services / migrations / tests / config | `backend` |
|
|
35
|
+
| New component / screen / partial; "improve this dashboard"; "build a settings panel"; major edit to a screen | `ui` |
|
|
36
|
+
| Bounded edit, **provably** ≤ 1 file, ≤ 5 changed lines, no new component, no new state, no new dependency | `ui-trivial` |
|
|
37
|
+
| One prompt that adds a backend endpoint **and** the screen that consumes it | `mixed` |
|
|
38
|
+
|
|
39
|
+
The classifier picks; the agent does not override the pick silently.
|
|
40
|
+
A misclassified `ui-trivial` that grows during edit must reclassify
|
|
41
|
+
**loudly** (stop, restart at `audit`) — never quietly upgrade in place.
|
|
42
|
+
|
|
43
|
+
## What the agent must never do
|
|
44
|
+
|
|
45
|
+
1. **Skip the audit.** No new component, screen, or partial without
|
|
46
|
+
`state.ui_audit` populated (or `greenfield_decision` recorded).
|
|
47
|
+
Defense-in-depth: dispatcher refuses *and* `ui-audit-gate`
|
|
48
|
+
refuses, even when the engine is not in the loop.
|
|
49
|
+
2. **Render the UI.** The engine never opens a browser, never takes a
|
|
50
|
+
screenshot, never runs axe. Rendering and a11y scanning happen
|
|
51
|
+
out-of-process; the engine consumes the `preview_envelope` /
|
|
52
|
+
`a11y` envelope written by the skill.
|
|
53
|
+
3. **Edit microcopy.** The design brief is **locked**. `apply` reads
|
|
54
|
+
strings verbatim. `<placeholder>`, `lorem`, `todo:`, `tbd`, `xxx`
|
|
55
|
+
are rejected at the producer (design) **and** the consumer (apply).
|
|
56
|
+
4. **Loop polish indefinitely.** Hard ceiling is 2 rounds, +1 with
|
|
57
|
+
the explicit Extend pick (one-shot, never returns). Round 4 is
|
|
58
|
+
rejected on disk regardless of flags.
|
|
59
|
+
5. **Confuse "ship as-is" with "review clean".** `review_clean=False`
|
|
60
|
+
plus `findings=[]` is a malformed envelope, not a green light.
|
|
61
|
+
|
|
62
|
+
## Where each set stops
|
|
63
|
+
|
|
64
|
+
| Set | Stops cleanly when … | Stops with a halt when … |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| `ui` | `report` written; design brief + audit + apply + review + polish all `SUCCESS` | audit ambiguous · greenfield decision missing · design unconfirmed · review dirty at ceiling · a11y violation un-accepted · preview render failed |
|
|
67
|
+
| `ui-trivial` | `report` written; classifier preconditions held throughout | preconditions fail mid-flight → reclassify to `ui` (loud halt) |
|
|
68
|
+
| `mixed` | `stitch` joins both subtrees; `verify` + `report` clean | either subtree halts → mixed waits, never auto-completes the other |
|
|
69
|
+
|
|
70
|
+
## What "audit" actually means
|
|
71
|
+
|
|
72
|
+
A non-empty `state.ui_audit` carrying **at least one of**:
|
|
73
|
+
|
|
74
|
+
- `components_found` — `[{path, name, kind, similarity?}]` from
|
|
75
|
+
[`existing-ui-audit`](../.agent-src/skills/existing-ui-audit/SKILL.md).
|
|
76
|
+
- `greenfield: true` plus `greenfield_decision ∈ {scaffold, bare, external_reference}`.
|
|
77
|
+
- Legacy `components` alias — same shape.
|
|
78
|
+
|
|
79
|
+
Empty dict, `null`, or a dict without those keys is **not** an audit.
|
|
80
|
+
The gate fires; the dispatcher emits `@agent-directive: existing-ui-audit`
|
|
81
|
+
instead of advancing.
|
|
82
|
+
|
|
83
|
+
## What "design locked" actually means
|
|
84
|
+
|
|
85
|
+
The brief carries `layout`, `components`, `states`, `microcopy`,
|
|
86
|
+
`a11y`. State coverage requires `empty`, `loading`, `error`, `success`,
|
|
87
|
+
`disabled`. `apply` does not re-decide microcopy — it copies strings.
|
|
88
|
+
"The button label feels off" is a **new** design pass, not a polish
|
|
89
|
+
fix.
|
|
90
|
+
|
|
91
|
+
## Polish termination — subjective vs objective
|
|
92
|
+
|
|
93
|
+
| Findings at ceiling | Halt branch | User options |
|
|
94
|
+
|---|---|---|
|
|
95
|
+
| Non-a11y only | `polish_ceiling_reached` | ship as-is · abort · hand off |
|
|
96
|
+
| Includes a11y violation | `polish_a11y_blocking` | extend (one-shot, sets `extension_used=True`) · accept (rule ids land in `accepted_violations`) · abort |
|
|
97
|
+
|
|
98
|
+
Pre-existing a11y violations recorded in `state.ui_audit.a11y_baseline`
|
|
99
|
+
stay informational and never block.
|
|
100
|
+
|
|
101
|
+
## Stack dispatch (apply / review / polish)
|
|
102
|
+
|
|
103
|
+
`state.stack.frontend` decides which skill bundle runs:
|
|
104
|
+
|
|
105
|
+
| Stack | Skill bundle |
|
|
106
|
+
|---|---|
|
|
107
|
+
| `blade-livewire-flux` | `flux` + `livewire` + `blade-ui` |
|
|
108
|
+
| `react-shadcn` | `react-shadcn-ui` |
|
|
109
|
+
| `vue` | `ui-apply-vue` |
|
|
110
|
+
| `plain` (or unknown) | `blade-ui` + Tailwind base |
|
|
111
|
+
|
|
112
|
+
The directive set stays `ui`; only the skill changes. Adding a new
|
|
113
|
+
stack ships as a new skill bundle and a recipe — see
|
|
114
|
+
[`ui-stack-extension.md`](contracts/ui-stack-extension.md).
|
|
115
|
+
|
|
116
|
+
## See also
|
|
117
|
+
|
|
118
|
+
- [`adr-product-ui-track.md`](contracts/adr-product-ui-track.md) — *why* this shape.
|
|
119
|
+
- [`ui-track-flow.md`](contracts/ui-track-flow.md) — slot-by-slot contract.
|
|
120
|
+
- [`ui-stack-extension.md`](contracts/ui-stack-extension.md) — adding a stack.
|
|
121
|
+
- [`ui-audit-gate`](../.agent-src/rules/ui-audit-gate.md) — the always-on rule that mirrors the dispatcher gate.
|
package/llms.txt
CHANGED
|
@@ -16,7 +16,7 @@ api-testing: Use when writing API endpoint tests — integration tests, contract
|
|
|
16
16
|
artisan-commands: Use when creating or modifying Artisan commands. Covers clear signatures, safe execution flow, helpful output, and project conventions for console tooling.
|
|
17
17
|
authz-review: Use when reviewing authorization end-to-end — route → gate → policy → query scope → response filter — before changes to permissions, tenants, ownership, or admin flows.
|
|
18
18
|
aws-infrastructure: Use when working with AWS resources — ECS Fargate, ECR, EFS, Secrets Manager, gomplate templates, multi-env deployments — even when the user says 'deploy to staging' without naming AWS.
|
|
19
|
-
blade-ui:
|
|
19
|
+
blade-ui: Stack-implementation skill for Laravel Blade — dispatched by `directives/ui/apply.py` (and `review.py` / `polish.py`) when the project's frontend stack is Blade. Covers views, components, partials, layouts, and view logic.
|
|
20
20
|
blast-radius-analyzer: Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency.
|
|
21
21
|
bug-analyzer: Use when the user shares a Sentry error, Jira bug ticket, or error description and wants root cause analysis. Also for proactive bug hunting and code audits for hidden bugs.
|
|
22
22
|
check-refs: Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions.
|
|
@@ -41,15 +41,17 @@ developer-like-execution: Use when implementing, debugging, refactoring, or revi
|
|
|
41
41
|
docker: Use when working with Docker — Dockerfile edits, docker-compose services, containers, or the dual-container (fast + Xdebug) setup — even when the user just says 'my container won't start'.
|
|
42
42
|
dto-creator: Use when the user says "create a DTO", "new data transfer object", or needs to convert request/response data into a typed PHP class. Creates DTOs with SimpleDto base class and attribute mapping.
|
|
43
43
|
eloquent: Use when writing Eloquent models, relationships, scopes, or queries via Model:: — 'fetch users with their orders'. NOT for PHPStan output, non-Eloquent services, or raw SQL questions.
|
|
44
|
-
|
|
44
|
+
"estimate-ticket": Estimate a Jira/Linear ticket — 'estimate PROJ-123', 'wie groß ist das?', 'should we split this?' — size + risk + split + uncertainty, sibling of /refine-ticket, close-prompt.
|
|
45
|
+
existing-ui-audit: Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set.
|
|
46
|
+
fe-design: Reference for frontend-design heuristics — component architecture, layout patterns, form/table design, responsive strategy, a11y, UX principles. Stack-agnostic; cited by directives/ui/design.py.
|
|
45
47
|
feature-planning: Use when the user says "plan a feature", "brainstorm", "explore this idea", or wants to go from idea to structured plan and roadmap.
|
|
46
48
|
file-editor: Use when opening edited files in the user's IDE. Reads settings from .agent-settings.yml to determine IDE and whether auto-open is enabled.
|
|
47
49
|
finishing-a-development-branch: Use when the feature is implementation-complete and the next step is 'ship it' — verifies, cleans up, and routes to merge/PR/park/discard — even when the user just says 'I'm done, what now?'.
|
|
48
|
-
flux:
|
|
50
|
+
flux: Stack-implementation skill for Laravel Flux — dispatched by `directives/ui/apply.py` (and `review.py` / `polish.py`) when the project uses `livewire/flux`. Covers Flux components, slots, variants, and form primitives.
|
|
49
51
|
git-workflow: Use when working with Git — branch naming, commit messages, PR creation, rebasing, or the code review process — even when the user says 'push this' or 'merge the branch' without naming Git.
|
|
50
52
|
github-ci: Use when working with GitHub Actions — workflow YAML, quality gates, test matrices, deployment triggers, reusable workflows — even when the user just says 'my CI is failing' or 'add a check'.
|
|
51
53
|
grafana: Use when working with Grafana — dashboards, Loki LogQL queries, alerting rules, monitoring panels — even when the user just says 'build me a dashboard' or 'query the logs' without naming Grafana.
|
|
52
|
-
guideline-writing: Use when creating or editing a guideline in
|
|
54
|
+
guideline-writing: Use when creating or editing a guideline in docs/guidelines/ — reference material cited by skills, no auto-triggers — even when the user just says 'write up our naming conventions'.
|
|
53
55
|
jira-integration: Use when the user says "check Jira", "create ticket", "update issue", or needs JQL queries, ticket transitions, or branch-to-ticket linking.
|
|
54
56
|
jobs-events: Use when creating Laravel jobs, queued workflows, events, or listeners. Covers clear responsibilities, safe serialization, and retry/failure handling.
|
|
55
57
|
judge-bug-hunter: Use when a diff needs correctness review — null-safety, edge cases, off-by-one, races, error handling — dispatched by /review-changes, /do-and-judge, /judge, even without 'judge'.
|
|
@@ -68,9 +70,10 @@ laravel-scheduling: Use when configuring Laravel task scheduling — cron expres
|
|
|
68
70
|
laravel-validation: Use when writing validation — Form Requests, rules, custom rule objects, request-boundary design — even when the user just says 'validate this input' or 'check the request' without naming it.
|
|
69
71
|
learning-to-rule-or-skill: Use when a repeated learning, mistake, or successful pattern should be turned into a new rule or skill. Also use after completing a task to capture learnings from the work.
|
|
70
72
|
lint-skills: Use when running the package's skill linter against all skills and rules to validate frontmatter, required sections, and execution metadata.
|
|
71
|
-
livewire:
|
|
73
|
+
livewire: Stack-implementation skill for Livewire — dispatched by `directives/ui/apply.py` (and `review.py` / `polish.py`) when the project's frontend stack is Livewire. Covers reactive state, events, lifecycle hooks, and component/view separation.
|
|
72
74
|
logging-monitoring: Use when working with logging or monitoring — Sentry error tracking, Grafana/Loki log aggregation, structured logging channels, or monitoring helpers.
|
|
73
75
|
mcp: Use when working with MCP (Model Context Protocol) servers — their tools, capabilities, and best practices for effective agent workflows.
|
|
76
|
+
md-language-check: Use BEFORE saving any .md under .augment/, .agent-src*/, or agents/ — scans umlauts, German function words, and quoted German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone.
|
|
74
77
|
merge-conflicts: Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow.
|
|
75
78
|
migration-creator: Use when the user says "create migration", "add column", or "new table". Creates migrations with correct table prefixes, column naming, and multi-tenant awareness.
|
|
76
79
|
module-management: Use when the user says "create module", "explore module", or works within app/Modules/. Understands module structure, auto-loading, route registration, and namespace conventions.
|
|
@@ -95,10 +98,13 @@ project-analysis-zend-laminas: Use for deep Zend Framework or Laminas project an
|
|
|
95
98
|
project-analyzer: ONLY when user explicitly requests: full project analysis, tech stack detection, or structured analysis documents for agents/analysis/. NOT for regular feature work.
|
|
96
99
|
project-docs: Use when looking for project-specific documentation. Knows which docs exist in agents/docs/ and agents/contexts/ and maps work areas to relevant docs.
|
|
97
100
|
quality-tools: Use when PHPStan, Rector, or ECS output appears — \"phpstan says mixed\", type errors, \"fix code style\", \"run rector\" — even when Eloquent/Laravel/model code is also mentioned.
|
|
101
|
+
react-shadcn-ui: Use when building React UI on shadcn/ui primitives + Tailwind — the apply/review/polish skill dispatched by `directives/ui/*` for the `react-shadcn` stack.
|
|
98
102
|
readme-reviewer: Use when reviewing a README for accuracy, usability, and alignment with the actual repository. Detects invented content, broken setup steps, and structural issues.
|
|
99
103
|
readme-writing: Use when creating, rewriting, or significantly improving a README based on the actual repository structure, commands, and intended audience.
|
|
100
104
|
readme-writing-package: Use when creating or rewriting a README for a reusable package or library. Focus on installability, minimal usage example, compatibility, and developer onboarding.
|
|
101
105
|
receiving-code-review: Use when processing code review feedback (bot or human) before changing anything — triages, verifies, and pushes back with technical reasoning — even when the user just says 'fix the comments'.
|
|
106
|
+
"refine-prompt": Reconstruct a free-form prompt into actionable AC + assumptions + confidence band before the engine plans — '/work \"…\"', 'baue X', 'ist der Prompt klar genug für die Engine?'.
|
|
107
|
+
"refine-ticket": Refine a Jira/Linear ticket before planning — 'refine ticket', 'tighten AC on PROJ-123', 'ist das Ticket klar?' — rewritten ticket, Top-5 risks, persona voices, sub-skills orchestrated, close-prompt.
|
|
102
108
|
requesting-code-review: Use when asking for a review or creating a PR — self-review first, frame the right context, test plan included — even when the user just says 'open a PR' or 'ready to merge'.
|
|
103
109
|
review-routing: Use when preparing a PR description, suggesting reviewers, or flagging risk — produces owner-mapped roles plus historical bug-pattern matches from project-local YAML.
|
|
104
110
|
roadmap-management: Use when the user says "create roadmap", "show roadmap", or "execute roadmap". Creates, reads, and manages roadmap files with phase tracking.
|
|
@@ -113,7 +119,7 @@ skill-management: Use when compressing, decompressing, refactoring, or improving
|
|
|
113
119
|
skill-reviewer: Use when reviewing, auditing, or optimizing skills — validates against the 7 Skill Killers checklist and produces fix recommendations.
|
|
114
120
|
skill-writing: Use when deciding 'should this be a skill or a rule?', creating/improving/reviewing agent skills, SKILL.md frontmatter, or procedure sections — even without saying 'skill-writing'.
|
|
115
121
|
sql-writing: Use when writing raw SQL — MariaDB/MySQL syntax, parameterization, raw migrations, seeders with `DB::statement` — even when the user just pastes a query and asks 'why is this slow' without naming SQL.
|
|
116
|
-
subagent-orchestration: Use when orchestrating implementer/judge subagents — five modes (do-and-judge, do-in-steps, do-in-parallel, do-competitively, judge-with-debate) —
|
|
122
|
+
subagent-orchestration: Use when orchestrating implementer/judge subagents — five modes (do-and-judge, do-in-steps, do-in-parallel, do-competitively, judge-with-debate) — models from .agent-settings.yml.
|
|
117
123
|
systematic-debugging: Use when hitting a bug, test failure, crash, or unexpected behavior — enforces reproduce → isolate → hypothesize → verify before any fix — even when the user just says 'this is broken' or 'quick fix'.
|
|
118
124
|
technical-specification: Use when the user says "write a spec", "create RFC", or "document this decision". Writes technical specifications, RFCs, and ADRs with clear structure.
|
|
119
125
|
terraform: Use when writing Terraform — AWS modules, resources, variables, outputs, remote state — even when the user just says 'provision this infra' or 'add an S3 bucket' without naming Terraform.
|
|
@@ -126,5 +132,5 @@ universal-project-analysis: ONLY when user explicitly requests: full project ana
|
|
|
126
132
|
upstream-contribute: Use when a learning, new skill, rule improvement, or bug fix from a consumer project should be contributed back to the shared agent-config package.
|
|
127
133
|
using-git-worktrees: Use when starting parallel work in isolation from the current branch — spawn a git worktree with ignore-safety checks and a clean test baseline — even when the user says 'try this on the side'.
|
|
128
134
|
"validate-feature-fit": Validate whether a feature request fits the existing codebase — check for duplicates, contradictions, scope creep, and architectural misfit
|
|
129
|
-
verify-
|
|
135
|
+
verify-completion-evidence: Use when claiming 'done', suggesting a commit, push, or PR — runs the evidence gate so completion claims come from fresh output in this message, not memory or earlier runs.
|
|
130
136
|
websocket: Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'.
|
package/package.json
CHANGED
package/scripts/agent-config
CHANGED
|
@@ -48,6 +48,10 @@ Commands:
|
|
|
48
48
|
roadmap:progress-check Fail if agents/roadmaps-progress.md is stale (for CI)
|
|
49
49
|
hooks:install Install the pre-commit roadmap-progress hook
|
|
50
50
|
(use --print to dump it, --force to overwrite an existing hook)
|
|
51
|
+
keys:install-anthropic Install the Anthropic API key for the AI Council
|
|
52
|
+
(interactive, /dev/tty only, writes ~/.config/agent-config/anthropic.key 0600)
|
|
53
|
+
keys:install-openai Install the OpenAI API key for the AI Council
|
|
54
|
+
(interactive, /dev/tty only, writes ~/.config/agent-config/openai.key 0600)
|
|
51
55
|
first-run Guided first-run setup — cost profile, settings, tooling
|
|
52
56
|
implement-ticket Drive the work_engine Python engine on a ticket envelope
|
|
53
57
|
(Option-A loop; called by the /implement-ticket command)
|
|
@@ -78,6 +82,8 @@ Examples:
|
|
|
78
82
|
./agent-config mcp:check
|
|
79
83
|
./agent-config roadmap:progress
|
|
80
84
|
./agent-config hooks:install
|
|
85
|
+
./agent-config keys:install-anthropic
|
|
86
|
+
./agent-config keys:install-openai
|
|
81
87
|
./agent-config first-run
|
|
82
88
|
./agent-config implement-ticket --state-file .work-state.json
|
|
83
89
|
./agent-config work --state-file .work-state.json --prompt-file prompt.txt
|
|
@@ -390,6 +396,21 @@ HELP
|
|
|
390
396
|
echo " To uninstall: rm $target"
|
|
391
397
|
}
|
|
392
398
|
|
|
399
|
+
# Wrap the interactive key installers under a stable CLI entry. The shell
|
|
400
|
+
# scripts themselves enforce /dev/tty, 0600, and atomic write — this is
|
|
401
|
+
# pure routing so consumers never have to know the package layout.
|
|
402
|
+
cmd_keys_install_anthropic() {
|
|
403
|
+
local script
|
|
404
|
+
script="$(resolve_script "scripts/install_anthropic_key.sh")" || return 1
|
|
405
|
+
exec bash "$script" "$@"
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
cmd_keys_install_openai() {
|
|
409
|
+
local script
|
|
410
|
+
script="$(resolve_script "scripts/install_openai_key.sh")" || return 1
|
|
411
|
+
exec bash "$script" "$@"
|
|
412
|
+
}
|
|
413
|
+
|
|
393
414
|
main() {
|
|
394
415
|
local cmd="${1-}"
|
|
395
416
|
[[ $# -gt 0 ]] && shift || true
|
|
@@ -400,6 +421,8 @@ main() {
|
|
|
400
421
|
roadmap:progress) cmd_roadmap_progress "$@" ;;
|
|
401
422
|
roadmap:progress-check) cmd_roadmap_progress_check "$@" ;;
|
|
402
423
|
hooks:install) cmd_hooks_install "$@" ;;
|
|
424
|
+
keys:install-anthropic) cmd_keys_install_anthropic "$@" ;;
|
|
425
|
+
keys:install-openai) cmd_keys_install_openai "$@" ;;
|
|
403
426
|
first-run) cmd_first_run "$@" ;;
|
|
404
427
|
implement-ticket) cmd_implement_ticket "$@" ;;
|
|
405
428
|
work) cmd_work "$@" ;;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""ai_council — external-AI consultation module.
|
|
2
|
+
|
|
3
|
+
The host agent uses this to poll independent models (OpenAI, Anthropic)
|
|
4
|
+
for second opinions on roadmaps, diffs, free-form prompts, or file sets.
|
|
5
|
+
Council members never see the host agent's reasoning — only the artefact
|
|
6
|
+
plus a neutral system prompt asking for an independent critique.
|
|
7
|
+
|
|
8
|
+
Architecture:
|
|
9
|
+
clients.py — ExternalAIClient ABC + concrete OpenAI/Anthropic
|
|
10
|
+
impls + 0600 key loaders (no env-var fallback).
|
|
11
|
+
bundler.py — Context bundling with redaction + size guard.
|
|
12
|
+
orchestrator.py — Parallel fan-out, error normalisation, cost cap.
|
|
13
|
+
prompts.py — Neutrality system-prompt templates per input mode.
|
|
14
|
+
|
|
15
|
+
Trust boundary: this module makes networked, paid calls. Tokens come
|
|
16
|
+
exclusively from ~/.config/agent-config/<provider>.key (mode 0600). The
|
|
17
|
+
module never edits files, never opens PRs, never merges — output is
|
|
18
|
+
text only, advisory.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from scripts.ai_council.clients import (
|
|
22
|
+
AnthropicClient,
|
|
23
|
+
CouncilResponse,
|
|
24
|
+
ExternalAIClient,
|
|
25
|
+
KeyGateError,
|
|
26
|
+
OpenAIClient,
|
|
27
|
+
load_anthropic_key,
|
|
28
|
+
load_openai_key,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
__all__ = [
|
|
32
|
+
"AnthropicClient",
|
|
33
|
+
"CouncilResponse",
|
|
34
|
+
"ExternalAIClient",
|
|
35
|
+
"KeyGateError",
|
|
36
|
+
"OpenAIClient",
|
|
37
|
+
"load_anthropic_key",
|
|
38
|
+
"load_openai_key",
|
|
39
|
+
]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""Shipped baseline prices for the AI Council.
|
|
2
|
+
|
|
3
|
+
This file is the bootstrap source for `.agent-prices.md` when the
|
|
4
|
+
runtime file is missing. It is also the network-fallback source for
|
|
5
|
+
`scripts/update_prices.py` when the upstream feed (LiteLLM) is
|
|
6
|
+
unreachable.
|
|
7
|
+
|
|
8
|
+
Prices are USD per **1 000 000** tokens. Models are identified by the
|
|
9
|
+
exact `model:` string the user puts into `.agent-settings.yml`.
|
|
10
|
+
|
|
11
|
+
Numbers below are a hand-curated snapshot — they will drift. The
|
|
12
|
+
runtime never reads them directly once `.agent-prices.md` exists; the
|
|
13
|
+
weekly refresh and user edits are the live source of truth.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
# YYYY-MM-DD of when this table was last hand-edited. Keep in sync with
|
|
19
|
+
# the test_default_prices freshness assertion if you bump this.
|
|
20
|
+
LAST_UPDATED = "2026-04-29"
|
|
21
|
+
|
|
22
|
+
# (provider, model) -> (input_per_1m_usd, output_per_1m_usd)
|
|
23
|
+
DEFAULT_PRICES: dict[tuple[str, str], tuple[float, float]] = {
|
|
24
|
+
# ── Anthropic ────────────────────────────────────────────────────
|
|
25
|
+
("anthropic", "claude-sonnet-4-5"): (3.00, 15.00),
|
|
26
|
+
("anthropic", "claude-opus-4-1"): (15.00, 75.00),
|
|
27
|
+
("anthropic", "claude-haiku-4-5"): (1.00, 5.00),
|
|
28
|
+
# ── OpenAI ───────────────────────────────────────────────────────
|
|
29
|
+
("openai", "gpt-4o"): (2.50, 10.00),
|
|
30
|
+
("openai", "gpt-4o-mini"): (0.15, 0.60),
|
|
31
|
+
("openai", "o1"): (15.00, 60.00),
|
|
32
|
+
("openai", "o3-mini"): (1.10, 4.40),
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def as_rows() -> list[tuple[str, str, float, float]]:
|
|
37
|
+
"""Return the table sorted (provider, model) for stable Markdown output."""
|
|
38
|
+
return [
|
|
39
|
+
(provider, model, prices[0], prices[1])
|
|
40
|
+
for (provider, model), prices in sorted(DEFAULT_PRICES.items())
|
|
41
|
+
]
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"""One-off council consultation — Phase 0 audit findings on rebalancing roadmap.
|
|
2
|
+
|
|
3
|
+
Validates whether the rebalancing roadmap premise still holds against the
|
|
4
|
+
actual PR #34 diff. Transient script; can be deleted after the consult runs.
|
|
5
|
+
|
|
6
|
+
Invocation:
|
|
7
|
+
.venv/bin/python -m scripts.ai_council._one_off_rebalancing_audit
|
|
8
|
+
"""
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import sys
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
|
|
14
|
+
from scripts.ai_council.clients import AnthropicClient, load_anthropic_key
|
|
15
|
+
from scripts.ai_council.orchestrator import CostBudget, CouncilQuestion, consult, estimate
|
|
16
|
+
from scripts.ai_council.pricing import estimate_cost, load_prices
|
|
17
|
+
from scripts.ai_council.project_context import detect_project_context
|
|
18
|
+
|
|
19
|
+
REPO_ROOT = Path(__file__).resolve().parents[2]
|
|
20
|
+
|
|
21
|
+
ORIGINAL_ASK = (
|
|
22
|
+
"Phase 0 audit of the rebalancing roadmap. The roadmap was written based on "
|
|
23
|
+
"five rounds of external review claiming PR #34 over-deleted implicit "
|
|
24
|
+
"expertise. Validate whether the premise still holds against the actual diff. "
|
|
25
|
+
"Three concrete questions: (1) is the deletion narrative supported by the "
|
|
26
|
+
"numbers? (2) which of the 6 phases are already done or moot? "
|
|
27
|
+
"(3) what is the actual minimum-viable scope still worth executing?"
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
ARTEFACT = """# Phase 0 audit findings - road-to-rebalancing.md
|
|
31
|
+
|
|
32
|
+
## Premise from the roadmap
|
|
33
|
+
|
|
34
|
+
The risk surface is whether implicit expertise (edge cases, decision forks,
|
|
35
|
+
failure modes, anti-patterns) was trimmed alongside the redundancy.
|
|
36
|
+
Rebalancing means restoring intelligence without re-inflating Always-rules.
|
|
37
|
+
|
|
38
|
+
## Actual numbers from the PR #34 diff
|
|
39
|
+
|
|
40
|
+
Scope: git diff origin/main...HEAD, path .agent-src.uncompressed/rules/
|
|
41
|
+
|
|
42
|
+
- 35 files changed: 202 insertions, 204 deletions => net -2 lines total.
|
|
43
|
+
- Largest delta: language-and-tone.md 37 ins / 96 del. The 96 lines were
|
|
44
|
+
EXTRACTED to docs/guidelines/language-and-tone-examples.md (79 lines),
|
|
45
|
+
not deleted. Net knowledge loss: ~17 lines of duplicated phrasing.
|
|
46
|
+
- Second-largest: roadmap-progress-sync.md 26 ins / 33 del - minor.
|
|
47
|
+
- All other rules: <=8 line changes each, mostly renames.
|
|
48
|
+
- ZERO rule files deleted outright.
|
|
49
|
+
|
|
50
|
+
## Phase-by-phase realities
|
|
51
|
+
|
|
52
|
+
### Phase 0 - Removed-Knowledge Audit
|
|
53
|
+
This document IS Phase 0. Findings: 80% redundancy, examples extracted to
|
|
54
|
+
safe layer, zero decision-logic deletions. Phase 0 is now COMPLETE.
|
|
55
|
+
|
|
56
|
+
### Phase 1 - Pilot Context Split (3 rules)
|
|
57
|
+
Candidates: autonomous-execution, minimal-safe-diff, scope-control.
|
|
58
|
+
- autonomous-execution: 8 line delta in PR, no extraction yet.
|
|
59
|
+
- minimal-safe-diff: already auto-trigger; 6 line delta.
|
|
60
|
+
- scope-control: 40 line ADDITION (not deletion) in this PR. Pilot value low.
|
|
61
|
+
|
|
62
|
+
### Phase 2 - load_context: convention + linter
|
|
63
|
+
0 rules use load_context: today. Convention does not exist.
|
|
64
|
+
Genuinely net-new work.
|
|
65
|
+
|
|
66
|
+
### Phase 3 - Guidelines domain folders
|
|
67
|
+
Already done. 47 guidelines, 46 already in domain folders
|
|
68
|
+
(agent-infra/, docs/, e2e/, php/). Only language-and-tone-examples.md
|
|
69
|
+
is flat at root. Phase 3 reduces to deciding where the one flat file goes.
|
|
70
|
+
|
|
71
|
+
### Phase 4 - Golden-Transcript-backed demos under examples/flows/
|
|
72
|
+
Partially shipped. docs/end-to-end-walkthroughs.md (built last cycle)
|
|
73
|
+
already does this with 4 traces anchored to GT-1, GT-P1, GT-U2, GT-2.
|
|
74
|
+
Required cases per roadmap: implement-ticket-demo, work-freeform-demo,
|
|
75
|
+
ui-track-demo, blocked-path-demo (all covered) plus mixed-flow-demo
|
|
76
|
+
(NOT covered yet).
|
|
77
|
+
Net-new: 1 mixed-flow demo + folder move from docs/ to examples/flows/.
|
|
78
|
+
|
|
79
|
+
### Phase 5 - Rule priority hierarchy + interaction matrix
|
|
80
|
+
Partially shipped. docs/contracts/rule-interactions.yml and
|
|
81
|
+
rule-interactions.md exist (13 pairs across 9 rules).
|
|
82
|
+
rule-priority-hierarchy.md does NOT exist.
|
|
83
|
+
|
|
84
|
+
### Phase 6 - Senior-agent behavior tests
|
|
85
|
+
Not started. Net-new work, but only valuable if Phase 1 actually runs
|
|
86
|
+
and produces something to validate.
|
|
87
|
+
|
|
88
|
+
## Question to council
|
|
89
|
+
|
|
90
|
+
Given:
|
|
91
|
+
- The deletion narrative is empirically thin (-2 net lines after extraction).
|
|
92
|
+
- 3 of 6 phases are already done or near-done.
|
|
93
|
+
- Phase 1 pilot value is questionable on the 3 named candidates.
|
|
94
|
+
|
|
95
|
+
Should this roadmap:
|
|
96
|
+
|
|
97
|
+
(A) Close out as substantially-already-done. Execute only the small delta
|
|
98
|
+
(1 mixed-flow demo, move walkthroughs to examples/flows/, add the
|
|
99
|
+
priority-hierarchy doc, add load_context: convention if cheap),
|
|
100
|
+
then archive.
|
|
101
|
+
|
|
102
|
+
(B) Drop Phase 1 pilot - the three named candidates don't show evidence of
|
|
103
|
+
over-deletion. Execute Phase 2 + Phase 4 (1 missing demo + restructure)
|
|
104
|
+
+ Phase 5 (priority-hierarchy doc) only.
|
|
105
|
+
|
|
106
|
+
(C) Original full scope - assume the audit missed something subtle and run
|
|
107
|
+
all 6 phases as written.
|
|
108
|
+
|
|
109
|
+
(D) Other framing - propose a tighter scope based on what the audit shows.
|
|
110
|
+
|
|
111
|
+
Identify blind spots: did the diff miss content moves between branches?
|
|
112
|
+
Are there rules whose implicit expertise lives in non-line-count signal?
|
|
113
|
+
Recommend (A/B/C/D) with rationale.
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def main() -> int:
|
|
118
|
+
api_key = load_anthropic_key()
|
|
119
|
+
client = AnthropicClient(api_key=api_key)
|
|
120
|
+
project = detect_project_context(REPO_ROOT)
|
|
121
|
+
table = load_prices()
|
|
122
|
+
|
|
123
|
+
question = CouncilQuestion(mode="roadmap", user_prompt=ARTEFACT, max_tokens=2048)
|
|
124
|
+
estimates = estimate(question, [client], table, project=project, original_ask=ORIGINAL_ASK)
|
|
125
|
+
print(f"[estimate] ~{estimates[0].input_tokens} in + {estimates[0].output_tokens} out = ${estimates[0].total_usd:.4f}")
|
|
126
|
+
|
|
127
|
+
budget = CostBudget(
|
|
128
|
+
max_input_tokens=50_000, max_output_tokens=20_000,
|
|
129
|
+
max_calls=5, max_total_usd=0.50,
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
print(f"[consult] calling {client.name}/{client.model} ...")
|
|
133
|
+
responses = consult([client], question, budget, table=table, project=project, original_ask=ORIGINAL_ASK)
|
|
134
|
+
if not responses or responses[0].error:
|
|
135
|
+
err = responses[0].error if responses else "no response"
|
|
136
|
+
print(f"[error] {err}", file=sys.stderr)
|
|
137
|
+
return 1
|
|
138
|
+
|
|
139
|
+
r = responses[0]
|
|
140
|
+
actual = estimate_cost(r.provider, r.model, r.input_tokens, r.output_tokens, table)
|
|
141
|
+
print(f"[done] {r.input_tokens} in / {r.output_tokens} out, {r.latency_ms} ms, actual ${actual.total_usd:.4f}")
|
|
142
|
+
print("=" * 72)
|
|
143
|
+
print(r.text)
|
|
144
|
+
print("=" * 72)
|
|
145
|
+
return 0
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
if __name__ == "__main__":
|
|
149
|
+
raise SystemExit(main())
|