@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/README.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Agent Config — Governed Agent System
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **agent-config is not a runtime, but it ships a deterministic orchestration contract / state machine for host agents.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Give your AI agents an audit-disciplined orchestration contract — testing, Git, CI, code review, and **120+ stack-aware skills** — with quality guardrails built in.
|
|
6
|
+
|
|
7
|
+
> Your agent picks up the project's stack, runs tests, prepares PRs, fixes CI — and follows your team's coding standards while doing it. Stack-aware skill sets ship for PHP (Laravel · Symfony · Zend/Laminas), JavaScript (Next.js · React · Node), and cross-stack concerns (API · testing · security · observability).
|
|
6
8
|
|
|
7
9
|
<p align="center">
|
|
8
|
-
<strong>
|
|
10
|
+
<strong>129 Skills</strong> · <strong>57 Rules</strong> · <strong>69 Commands</strong> · <strong>47 Guidelines</strong> · <strong>8 AI Tools</strong>
|
|
9
11
|
</p>
|
|
10
12
|
|
|
11
13
|
---
|
|
@@ -91,7 +93,7 @@ Install in the same project (dev-only):
|
|
|
91
93
|
npm install --save-dev @event4u/agent-memory
|
|
92
94
|
```
|
|
93
95
|
|
|
94
|
-
→ [Memory contract & retrieval API](
|
|
96
|
+
→ [Memory contract & retrieval API](docs/contracts/agent-memory-contract.md) (beta)
|
|
95
97
|
|
|
96
98
|
---
|
|
97
99
|
|
|
@@ -129,7 +131,7 @@ so you decide — never a silent guess. Persona comes from
|
|
|
129
131
|
(plan-only, skips implementation).
|
|
130
132
|
|
|
131
133
|
→ [Command reference](.agent-src/commands/implement-ticket.md) ·
|
|
132
|
-
[Flow contract](
|
|
134
|
+
[Flow contract](docs/contracts/implement-ticket-flow.md) (beta)
|
|
133
135
|
|
|
134
136
|
### Sibling entrypoint: `/work` (free-form prompt)
|
|
135
137
|
|
|
@@ -156,7 +158,7 @@ to `/implement-ticket`. UI-shaped prompts are routed through the
|
|
|
156
158
|
|
|
157
159
|
→ [Command reference](.agent-src/commands/work.md) ·
|
|
158
160
|
[`refine-prompt` skill](.agent-src/skills/refine-prompt/SKILL.md) ·
|
|
159
|
-
[ADR](
|
|
161
|
+
[ADR](docs/contracts/adr-prompt-driven-execution.md)
|
|
160
162
|
|
|
161
163
|
**Pick which one:** ticket id or pasted ticket payload → `/implement-ticket`.
|
|
162
164
|
Free-form goal, no ticket → `/work`. The two share `.work-state.json`
|
|
@@ -175,7 +177,7 @@ switches the engine to one of three directive sets:
|
|
|
175
177
|
|
|
176
178
|
Four load-bearing properties: (1) **existing-UI audit is a hard gate** —
|
|
177
179
|
no `apply` without audit, enforced at dispatcher AND
|
|
178
|
-
[`ui-audit-
|
|
180
|
+
[`ui-audit-gate`](.agent-src/rules/ui-audit-gate.md) rule;
|
|
179
181
|
(2) **design brief is locked microcopy** — placeholders (`<placeholder>`,
|
|
180
182
|
`Lorem`, `TODO:`) rejected at both ends; (3) **polish has a 2-round
|
|
181
183
|
ceiling**, then halts ship-as-is / abort / hand-off; (4) **a11y precedence**
|
|
@@ -188,9 +190,10 @@ screenshots / findings) via a defined contract. Stack detection routes
|
|
|
188
190
|
`react-shadcn` / `vue` / `plain`; trivial path reclassifies loudly when
|
|
189
191
|
preconditions fail. Halt budget on the happy path is 2.
|
|
190
192
|
|
|
191
|
-
→ [
|
|
192
|
-
[
|
|
193
|
-
[
|
|
193
|
+
→ [Mental model](docs/ui-track-mental-model.md) (1 page — when each set, where it stops, what the agent must never do) ·
|
|
194
|
+
[Flow contract](docs/contracts/ui-track-flow.md) (beta) ·
|
|
195
|
+
[ADR](docs/contracts/adr-product-ui-track.md) ·
|
|
196
|
+
[Stack-extension recipe](docs/contracts/ui-stack-extension.md) (beta)
|
|
194
197
|
|
|
195
198
|
---
|
|
196
199
|
|
|
@@ -203,11 +206,11 @@ description of intent — not a guarantee of output.
|
|
|
203
206
|
| Default behavior | With agent-config (the agent is instructed to) |
|
|
204
207
|
|---|---|
|
|
205
208
|
| Guess and edit blindly | Analyze code before changing it — no blind edits |
|
|
206
|
-
| Drift from project conventions | Follow the project's
|
|
207
|
-
| Skip or invent tests | Write
|
|
208
|
-
| Write generic commit messages | Use Conventional Commits with scope and
|
|
209
|
-
| Skip quality checks | Run PHPStan,
|
|
210
|
-
| Open PRs without context | Produce structured PR descriptions from Jira tickets |
|
|
209
|
+
| Drift from project conventions | Follow the project's coding standards (detected from the stack) |
|
|
210
|
+
| Skip or invent tests | Write tests in the project's framework (Pest, PHPUnit, Vitest, Jest, …) |
|
|
211
|
+
| Write generic commit messages | Use Conventional Commits with scope and ticket links |
|
|
212
|
+
| Skip quality checks | Run the project's quality pipeline (PHPStan/Rector/ECS, ESLint/Prettier/tsc, …) and fix reported errors |
|
|
213
|
+
| Open PRs without context | Produce structured PR descriptions from Jira / Linear / GitHub tickets |
|
|
211
214
|
| Claim "done" without proof | Verify with real execution before claiming "done" |
|
|
212
215
|
|
|
213
216
|
---
|
|
@@ -249,39 +252,35 @@ session is explicitly not.
|
|
|
249
252
|
|
|
250
253
|
Start with **Rules + Skills**. Everything else is optional.
|
|
251
254
|
|
|
252
|
-
| Mode | What's active |
|
|
255
|
+
| Mode | What's active | Runtime process overhead |
|
|
253
256
|
|---|---|---|
|
|
254
|
-
| **Minimal** (default) | Rules, Skills, Commands |
|
|
255
|
-
| **Balanced** | + Runtime
|
|
256
|
-
| **Full** | + Tool
|
|
257
|
+
| **Minimal** (default) | Rules, Skills, Commands | None |
|
|
258
|
+
| **Balanced** | + Runtime Dispatcher for skills that declare a shell command | Low |
|
|
259
|
+
| **Full** | + Tool Adapters (GitHub / Jira read-only, opt-in) | Moderate |
|
|
257
260
|
|
|
258
261
|
Nothing runs automatically without your control. [Configure modes →](docs/customization.md)
|
|
259
262
|
|
|
260
|
-
> **
|
|
261
|
-
>
|
|
262
|
-
>
|
|
263
|
-
>
|
|
264
|
-
>
|
|
263
|
+
> **Stability tiers** — [`STABILITY.md`](docs/contracts/STABILITY.md) for
|
|
264
|
+
> the full matrix. Runtime Dispatcher: **stable** (`php` / `node` handlers
|
|
265
|
+
> scaffold). Work Engine: **beta (beta)** — orchestrator behind `/work`
|
|
266
|
+
> + `/implement-ticket`. Tool Adapters: **experimental**, read-only,
|
|
267
|
+
> behind `full`. `minimal` profile unaffected.
|
|
265
268
|
|
|
266
269
|
---
|
|
267
270
|
|
|
268
271
|
## Who this is for
|
|
269
272
|
|
|
270
|
-
|
|
271
|
-
is most useful out of the box. Skills, rules, and quality-tool integration
|
|
272
|
-
assume a Laravel-style repository (Pest, PHPStan, Rector, ECS, Artisan,
|
|
273
|
-
Composer workflows). You can install it on any project, but:
|
|
273
|
+
`agent-config` ships a **stack-agnostic governance core** (orchestration contract, role modes, command clusters, quality gates, audit-discipline) plus **parallel stack-specific skill sets** at varying depth:
|
|
274
274
|
|
|
275
|
-
| Stack |
|
|
275
|
+
| Stack | Coverage |
|
|
276
276
|
|---|---|
|
|
277
|
-
|
|
|
278
|
-
|
|
|
279
|
-
|
|
|
280
|
-
|
|
|
277
|
+
| Laravel · modern PHP | Skills, rules, project-analysis, quality-tool wiring (Pest · PHPStan · Rector · ECS) |
|
|
278
|
+
| Symfony · Zend / Laminas | Project-analysis skills + shared PHP coder/quality skills |
|
|
279
|
+
| Next.js · React · Node / Express | Project-analysis skills + UI directive set (`react-shadcn`) |
|
|
280
|
+
| Vue · plain HTML | UI directive set (`vue` / `plain`) — analysis skills as they ship |
|
|
281
|
+
| Cross-stack | API design · testing · security · database · Docker · Git · CI · review · threat modeling · observability |
|
|
281
282
|
|
|
282
|
-
|
|
283
|
-
adopt the package outside the primary audience, please open an issue so we
|
|
284
|
-
can prioritize the right skills for extraction.
|
|
283
|
+
**Deepest reference stack today: Laravel.** Skill density covers Pest, PHPStan, Rector, Eloquent, Livewire/Flux, Horizon, Pulse, Reverb, Pennant — the stack the package was first proven on. Other stacks ship in the order they are battle-tested, not second-class. Adopting on a thin stack? Open an issue so we can prioritize the right skills for extraction.
|
|
285
284
|
|
|
286
285
|
---
|
|
287
286
|
|
|
@@ -294,8 +293,8 @@ can prioritize the right skills for extraction.
|
|
|
294
293
|
| [`eloquent`](.agent-src/skills/eloquent/SKILL.md) | Eloquent models, relationships, scopes, eager loading, type safety |
|
|
295
294
|
| [`create-pr`](.agent-src/commands/create-pr.md) | Create GitHub PRs with structured descriptions from Jira tickets |
|
|
296
295
|
| [`commit`](.agent-src/commands/commit.md) | Stage and commit changes following Conventional Commits |
|
|
297
|
-
| [
|
|
298
|
-
| [
|
|
296
|
+
| [`/fix ci`](.agent-src/commands/fix.md) | Fetch CI errors from GitHub Actions and fix them |
|
|
297
|
+
| [`/fix pr-comments`](.agent-src/commands/fix.md) | Fix and reply to all open review comments on a PR |
|
|
299
298
|
| [`quality-fix`](.agent-src/commands/quality-fix.md) | Run PHPStan/Rector/ECS and fix all errors |
|
|
300
299
|
| [`bug-analyzer`](.agent-src/skills/bug-analyzer/SKILL.md) | Root cause analysis from Sentry errors or Jira tickets |
|
|
301
300
|
| [`improve-before-implement`](.agent-src/rules/improve-before-implement.md) | Challenge weak requirements before coding |
|
|
@@ -304,7 +303,7 @@ can prioritize the right skills for extraction.
|
|
|
304
303
|
| [`api-design`](.agent-src/skills/api-design/SKILL.md) | REST conventions, versioning, deprecation |
|
|
305
304
|
| [`database`](.agent-src/skills/database/SKILL.md) | MariaDB optimization, indexing, query performance |
|
|
306
305
|
|
|
307
|
-
→ [
|
|
306
|
+
→ [Public catalog](docs/catalog.md) (all rules, skills, commands, guidelines) · [Skills only](docs/skills-catalog.md) · [llms.txt](llms.txt)
|
|
308
307
|
|
|
309
308
|
---
|
|
310
309
|
|
|
@@ -314,14 +313,16 @@ can prioritize the right skills for extraction.
|
|
|
314
313
|
|---|---|
|
|
315
314
|
| [`/commit`](.agent-src/commands/commit.md) | Stage and commit with Conventional Commits |
|
|
316
315
|
| [`/create-pr`](.agent-src/commands/create-pr.md) | Create PR with Jira-linked description |
|
|
317
|
-
| [`/fix
|
|
318
|
-
| [`/fix
|
|
316
|
+
| [`/fix ci`](.agent-src/commands/fix.md) | Fetch and fix GitHub Actions failures |
|
|
317
|
+
| [`/fix pr-comments`](.agent-src/commands/fix.md) | Fix and reply to review comments |
|
|
318
|
+
| [`/optimize skills`](.agent-src/commands/optimize.md) | Audit skills, find duplicates, run linter |
|
|
319
|
+
| [`/feature plan`](.agent-src/commands/feature.md) | Interactively plan a feature |
|
|
319
320
|
| [`/quality-fix`](.agent-src/commands/quality-fix.md) | Run and fix all quality checks |
|
|
320
321
|
| [`/review-changes`](.agent-src/commands/review-changes.md) | Self-review before creating a PR |
|
|
321
322
|
| [`/jira-ticket`](.agent-src/commands/jira-ticket.md) | Read ticket from branch, implement feature |
|
|
322
323
|
| [`/compress`](.agent-src/commands/compress.md) | Compress skills for token efficiency |
|
|
323
324
|
|
|
324
|
-
→ [Browse all
|
|
325
|
+
→ [Browse all 69 active commands](.agent-src/commands/) <sub>(84 files total — 15 are deprecation shims that redirect to clustered commands)</sub>
|
|
325
326
|
|
|
326
327
|
---
|
|
327
328
|
|
|
@@ -346,7 +347,7 @@ Every developer gets the same behavior. No per-user setup needed.
|
|
|
346
347
|
native slash-commands)
|
|
347
348
|
|
|
348
349
|
> **What this means in practice:** Augment Code and Claude Code get the full
|
|
349
|
-
> package (rules +
|
|
350
|
+
> package (rules + 129 skills + 69 native commands). Cursor, Cline, Windsurf,
|
|
350
351
|
> Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
|
|
351
352
|
> commands are available to them as documentation the agent can read, not as
|
|
352
353
|
> first-class features.
|
|
@@ -377,9 +378,9 @@ builds artefacts you upload or paste into the platform's own surface.
|
|
|
377
378
|
|
|
378
379
|
The Linear digest is split into three layers — workspace (universal
|
|
379
380
|
coding posture), team (framework-specific), personal (empty stub). See
|
|
380
|
-
[`
|
|
381
|
+
[`docs/contracts/linear-ai-three-layers.md`](docs/contracts/linear-ai-three-layers.md) (beta)
|
|
381
382
|
for the rationale and
|
|
382
|
-
[`
|
|
383
|
+
[`docs/contracts/linear-ai-rules-inclusion.md`](docs/contracts/linear-ai-rules-inclusion.md) (beta)
|
|
383
384
|
for the per-rule routing.
|
|
384
385
|
|
|
385
386
|
---
|
|
@@ -404,6 +405,7 @@ for the per-rule routing.
|
|
|
404
405
|
| [**Development**](docs/development.md) | Prerequisites, editing workflow, all `task` commands, project structure |
|
|
405
406
|
| [**Customization**](docs/customization.md) | Overrides, AGENTS.md, agent settings, cost profiles |
|
|
406
407
|
| [**Quality & CI**](docs/quality.md) | Linting, CI pipeline, compression system |
|
|
408
|
+
| [**Migration**](docs/MIGRATION.md) | Per-version upgrade steps (e.g. `implement_ticket → work_engine` in 1.15.0) |
|
|
407
409
|
|
|
408
410
|
Uninstalling: see
|
|
409
411
|
[docs/installation.md#uninstalling](docs/installation.md#uninstalling) —
|
|
@@ -427,7 +429,7 @@ telemetry:
|
|
|
427
429
|
|
|
428
430
|
Reports: `./agent-config telemetry:report`. Full contract,
|
|
429
431
|
privacy/redaction floor, and quartile semantics:
|
|
430
|
-
[`
|
|
432
|
+
[`docs/contracts/artifact-engagement-flow.md`](docs/contracts/artifact-engagement-flow.md) (beta).
|
|
431
433
|
|
|
432
434
|
### Context-aware command suggestion
|
|
433
435
|
|
|
@@ -446,11 +448,9 @@ commands:
|
|
|
446
448
|
```
|
|
447
449
|
|
|
448
450
|
Per-conversation: `/command-suggestion-off` disables the layer until
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
[`
|
|
452
|
-
and
|
|
453
|
-
[`agents/contexts/command-suggestion-flow.md`](agents/contexts/command-suggestion-flow.md).
|
|
451
|
+
re-enabled or the chat ends. Full scoring contract and hardening:
|
|
452
|
+
[`adr-command-suggestion`](docs/contracts/adr-command-suggestion.md),
|
|
453
|
+
[`command-suggestion-flow`](docs/contracts/command-suggestion-flow.md) (beta).
|
|
454
454
|
|
|
455
455
|
---
|
|
456
456
|
|
|
@@ -492,7 +492,6 @@ task lint-skills # Lint skills, rules, commands
|
|
|
492
492
|
**For contributors only** (rebuilding `.augment/` locally):
|
|
493
493
|
|
|
494
494
|
- [Task](https://taskfile.dev/) — runs the CI pipeline (`task ci`).
|
|
495
|
-
- No runtime dependencies — the package ships static markdown files.
|
|
496
495
|
|
|
497
496
|
## License
|
|
498
497
|
|
|
@@ -138,6 +138,63 @@ subagents:
|
|
|
138
138
|
# Integer, default 3. Set to 1 to serialize. Hard cap enforced by runtime.
|
|
139
139
|
max_parallel: 3
|
|
140
140
|
|
|
141
|
+
# --- AI Council (external second-opinion network) ---
|
|
142
|
+
#
|
|
143
|
+
# When enabled, the /council command lets the agent poll independent
|
|
144
|
+
# external models (OpenAI, Anthropic) for a neutral critique of a
|
|
145
|
+
# roadmap, diff, prompt, or file set. Council members never see the
|
|
146
|
+
# host agent's reasoning — only the artefact + a neutral system prompt.
|
|
147
|
+
#
|
|
148
|
+
# Tokens are NEVER stored here. They live in ~/.config/agent-config/
|
|
149
|
+
# <provider>.key (mode 0600), installed via:
|
|
150
|
+
# bash scripts/install_anthropic_key.sh
|
|
151
|
+
# bash scripts/install_openai_key.sh
|
|
152
|
+
#
|
|
153
|
+
# Cost note: every consultation makes real, paid API calls. The
|
|
154
|
+
# autonomy directive does NOT silently spend tokens — the /council
|
|
155
|
+
# command always asks before invoking, even under autonomy: on.
|
|
156
|
+
ai_council:
|
|
157
|
+
# Master switch (true, false). Default false — installing a key is
|
|
158
|
+
# not the same as wanting the agent to spend money on it.
|
|
159
|
+
enabled: false
|
|
160
|
+
|
|
161
|
+
# Default transport mode for every member (overridable per-member
|
|
162
|
+
# below, and per-invocation via `/council mode:<x>`).
|
|
163
|
+
#
|
|
164
|
+
# api = direct SDK call against the provider's API (billable).
|
|
165
|
+
# manual = copy-paste loop, user is the transport (free).
|
|
166
|
+
# playwright = browser automation (Phase 2c, not yet wired).
|
|
167
|
+
#
|
|
168
|
+
# Precedence: invocation flag > per-member mode > global mode > "api".
|
|
169
|
+
mode: "api"
|
|
170
|
+
|
|
171
|
+
# Per-member configuration. Set enabled=true on the providers you want
|
|
172
|
+
# to consult. The model field selects which model receives the query.
|
|
173
|
+
# Optional `mode:` overrides the global setting for that member only.
|
|
174
|
+
members:
|
|
175
|
+
anthropic:
|
|
176
|
+
enabled: false
|
|
177
|
+
model: "claude-sonnet-4-5"
|
|
178
|
+
# mode: "api" # uncomment to override ai_council.mode
|
|
179
|
+
openai:
|
|
180
|
+
enabled: false
|
|
181
|
+
model: "gpt-4o"
|
|
182
|
+
# mode: "manual" # uncomment to override ai_council.mode
|
|
183
|
+
|
|
184
|
+
# Hard cost ceiling per /council invocation. The orchestrator pauses
|
|
185
|
+
# before any member whose projected spend would breach a cap and asks
|
|
186
|
+
# the user to continue. `max_total_usd: 0` disables the USD ceiling
|
|
187
|
+
# (token caps still apply).
|
|
188
|
+
#
|
|
189
|
+
# Prices come from `.agent-prices.md` (gitignored, refreshed weekly
|
|
190
|
+
# by `python3 scripts/update_prices.py`; bootstrapped from
|
|
191
|
+
# scripts/ai_council/_default_prices.py on first run).
|
|
192
|
+
cost_budget:
|
|
193
|
+
max_input_tokens: 50000
|
|
194
|
+
max_output_tokens: 20000
|
|
195
|
+
max_calls: 10
|
|
196
|
+
max_total_usd: 0.50
|
|
197
|
+
|
|
141
198
|
# --- Onboarding ---
|
|
142
199
|
#
|
|
143
200
|
# Tracks whether the initial setup flow (/onboard) has been completed
|
|
@@ -155,7 +212,7 @@ onboarding:
|
|
|
155
212
|
# When the user's free-form prompt matches an eligible slash command,
|
|
156
213
|
# the agent surfaces a numbered-options block with the recommendation
|
|
157
214
|
# plus an always-present "run as-is" option. The suggestion layer
|
|
158
|
-
# never auto-executes — the user picks. See rules/command-suggestion.md.
|
|
215
|
+
# never auto-executes — the user picks. See rules/command-suggestion-policy.md.
|
|
159
216
|
commands:
|
|
160
217
|
suggestion:
|
|
161
218
|
# Master switch (true, false). false = the layer is silent; explicit
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Migration Guide
|
|
2
|
+
|
|
3
|
+
How to move existing checkouts forward when `event4u/agent-config`
|
|
4
|
+
ships breaking layout changes. Each section is self-contained: read
|
|
5
|
+
only the version you are upgrading to.
|
|
6
|
+
|
|
7
|
+
> Symbol legend — 🔄 automatic, ✋ manual, 💡 advisory.
|
|
8
|
+
|
|
9
|
+
## 1.14.x → 1.15.0 — `implement_ticket` → `work_engine`
|
|
10
|
+
|
|
11
|
+
1.15.0 finishes the rename started with PR #29: the orchestration
|
|
12
|
+
package is now `work_engine` and the default state file is
|
|
13
|
+
`.work-state.json`. A back-compat shim keeps `implement_ticket`
|
|
14
|
+
imports working for one minor release; the legacy state filename is
|
|
15
|
+
detected on load and surfaces a one-shot migration hint instead of
|
|
16
|
+
failing silently.
|
|
17
|
+
|
|
18
|
+
### What changed
|
|
19
|
+
|
|
20
|
+
| Surface | 1.14.x | 1.15.0 |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| Orchestration package | `implement_ticket/` | `work_engine/` |
|
|
23
|
+
| Default state file | `.implement-ticket-state.json` | `.work-state.json` |
|
|
24
|
+
| Legacy package import | native | thin shim, removed in 1.16.0 |
|
|
25
|
+
| State schema | v0 (flat `ticket`) | v1 (`input.kind` envelope) |
|
|
26
|
+
|
|
27
|
+
The schema migration itself shipped in 1.14.0 (`migrate_payload`
|
|
28
|
+
already wraps v0 → v1). 1.15.0 only flips the *default* output
|
|
29
|
+
filename and the shipped package name; v0 files on disk are still
|
|
30
|
+
recognised on a clear error path.
|
|
31
|
+
|
|
32
|
+
### Required action
|
|
33
|
+
|
|
34
|
+
✋ **Run the one-shot migration** if your project still has a
|
|
35
|
+
`.implement-ticket-state.json` file:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
python3 -m work_engine.migration.v0_to_v1 .implement-ticket-state.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This:
|
|
42
|
+
|
|
43
|
+
1. Writes `.work-state.json` with the v1 envelope alongside the
|
|
44
|
+
legacy file.
|
|
45
|
+
2. Rotates the v0 file to `.implement-ticket-state.json.bak` (or
|
|
46
|
+
`.bak.1`, `.bak.2`, … if a previous backup is already present —
|
|
47
|
+
no silent overwrites).
|
|
48
|
+
3. Refuses to overwrite an existing `.work-state.json`.
|
|
49
|
+
4. Exits `0` on success, `2` on schema errors.
|
|
50
|
+
|
|
51
|
+
Pass `--no-backup` if you do not want the v0 file kept around, or
|
|
52
|
+
`--destination <path>` for a custom location.
|
|
53
|
+
|
|
54
|
+
🔄 **Detection on load.** If the engine is invoked with
|
|
55
|
+
`--state-file .work-state.json` (or no `--state-file` at all) and
|
|
56
|
+
finds only the legacy file, it stops with:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
error: Found legacy state file .implement-ticket-state.json but no
|
|
60
|
+
.work-state.json. The default state file was renamed in 1.15.0. Run
|
|
61
|
+
`python3 -m work_engine.migration.v0_to_v1 .implement-ticket-state.json`
|
|
62
|
+
to migrate, or pass `--state-file .implement-ticket-state.json` to
|
|
63
|
+
keep using the old name. See docs/MIGRATION.md.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The detection only fires when the requested state file uses the
|
|
67
|
+
canonical name; explicit `--state-file <other>.json` bypasses it,
|
|
68
|
+
so power users with their own naming scheme stay in control.
|
|
69
|
+
|
|
70
|
+
### Optional — keep using the legacy name
|
|
71
|
+
|
|
72
|
+
💡 You do **not** have to migrate immediately. Both of these keep
|
|
73
|
+
working through the 1.15.x cycle:
|
|
74
|
+
|
|
75
|
+
- Pass `--state-file .implement-ticket-state.json` on every CLI
|
|
76
|
+
invocation. The loader reads v0 and v1 transparently; format is
|
|
77
|
+
preserved on save.
|
|
78
|
+
- Keep importing from `implement_ticket` — the shim under
|
|
79
|
+
`templates/scripts/implement_ticket/` re-exports the
|
|
80
|
+
`work_engine` API verbatim. Removed in 1.16.0.
|
|
81
|
+
|
|
82
|
+
The legacy hint is a UX nudge, not a hard cutover.
|
|
83
|
+
|
|
84
|
+
### Rolling back
|
|
85
|
+
|
|
86
|
+
If something goes wrong:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
mv .work-state.json /tmp/work-state-bad.json
|
|
90
|
+
mv .implement-ticket-state.json.bak .implement-ticket-state.json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Then either re-run the migration or pin to 1.14.x until the issue
|
|
94
|
+
is reported. The v0 backup is byte-equal with the input —
|
|
95
|
+
`migrate_file` only renames the source after successfully writing
|
|
96
|
+
the v1 destination.
|
|
97
|
+
|
|
98
|
+
### CI / repository hygiene
|
|
99
|
+
|
|
100
|
+
If your project commits state files (uncommon but supported):
|
|
101
|
+
|
|
102
|
+
- Update `.gitignore` to exclude both `.implement-ticket-state.json`
|
|
103
|
+
and `.work-state.json` if you want them transient.
|
|
104
|
+
- Otherwise, commit the new `.work-state.json` and either delete
|
|
105
|
+
the `.bak` rotation or move it under an archive path — the
|
|
106
|
+
loader never reads `.bak` files.
|
|
107
|
+
|
|
108
|
+
### Reference
|
|
109
|
+
|
|
110
|
+
- Schema and field-by-field semantics:
|
|
111
|
+
[`docs/contracts/implement-ticket-flow.md`](contracts/implement-ticket-flow.md#workstate-v1-schema).
|
|
112
|
+
- Stability level: `work_engine` is **beta** — see
|
|
113
|
+
[`docs/contracts/STABILITY.md`](contracts/STABILITY.md).
|
|
114
|
+
- Source of truth for the migrator:
|
|
115
|
+
[`templates/scripts/work_engine/migration/v0_to_v1.py`](../.agent-src.uncompressed/templates/scripts/work_engine/migration/v0_to_v1.py).
|
|
116
|
+
|
|
117
|
+
## Older versions
|
|
118
|
+
|
|
119
|
+
No formal migration was required before 1.15.0. The pre-1.14.0 v0
|
|
120
|
+
state schema (flat `ticket`, `.implement-ticket-state.json`) is
|
|
121
|
+
documented in `docs/contracts/implement-ticket-flow.md` and is
|
|
122
|
+
covered by the same `v0_to_v1` migrator above.
|
package/docs/architecture.md
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
+
> **agent-config is not a runtime, but it ships a deterministic orchestration contract / state machine for host agents.**
|
|
4
|
+
|
|
3
5
|
## System overview
|
|
4
6
|
|
|
5
7
|
```
|
|
6
|
-
Rules
|
|
7
|
-
Skills
|
|
8
|
-
Runtime
|
|
9
|
-
|
|
8
|
+
Rules → Behavior enforcement (always active) ← stable
|
|
9
|
+
Skills → Execution logic (on-demand expertise) ← stable
|
|
10
|
+
Runtime Dispatcher → Single-skill shell execution (pilot skills) ← stable (mechanism)
|
|
11
|
+
Work Engine → Multi-step orchestration for /work + /implement ← beta
|
|
12
|
+
Tool Adapters → External integrations (GitHub, Jira) ← experimental
|
|
10
13
|
```
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
Stability tiers follow [`docs/contracts/STABILITY.md`](contracts/STABILITY.md):
|
|
16
|
+
|
|
17
|
+
- **stable** = shipped, documented, exercised by the default (`minimal`) profile or by CI on every PR; SemVer-major for breaks.
|
|
18
|
+
- **beta** = shipped and load-bearing for one or more flows, but the surface is expected to evolve; minor-version breaks allowed under a `### Breaking` CHANGELOG note.
|
|
19
|
+
- **experimental** = scaffold or pilot status; breaks allowed in any release.
|
|
15
20
|
|
|
16
21
|
> The previous "observability, feedback, lifecycle" layers were removed in
|
|
17
22
|
> 1.5 — they were scaffolds without production consumers. See the
|
|
@@ -59,10 +64,10 @@ fails on any source-side violation, without producing artifacts.
|
|
|
59
64
|
|
|
60
65
|
| Layer | Count | Purpose |
|
|
61
66
|
|---|---|---|
|
|
62
|
-
| **Skills** |
|
|
63
|
-
| **Rules** |
|
|
64
|
-
| **Commands** |
|
|
65
|
-
| **Guidelines** |
|
|
67
|
+
| **Skills** | 129 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
|
|
68
|
+
| **Rules** | 57 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
|
|
69
|
+
| **Commands** | 84 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
|
|
70
|
+
| **Guidelines** | 47 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
|
|
66
71
|
| **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
|
|
67
72
|
| **Contexts** | 5 | Shared knowledge about the system itself |
|
|
68
73
|
|
|
@@ -79,18 +84,25 @@ fails on any source-side violation, without producing artifacts.
|
|
|
79
84
|
|
|
80
85
|
Ensures: no guessing, analysis before action, real verification, consistent outputs.
|
|
81
86
|
|
|
82
|
-
### 2.
|
|
87
|
+
### 2. Runtime Dispatcher — stable mechanism, pilot coverage
|
|
88
|
+
|
|
89
|
+
> **Scope:** single-skill execution. Resolves a `SKILL.md` with
|
|
90
|
+
> `execution.command` argv, enforces safety constraints, hands off to
|
|
91
|
+
> the matching handler. **Not** a multi-step orchestrator — that is
|
|
92
|
+
> the Work Engine (next section).
|
|
83
93
|
|
|
84
94
|
> **Status:**
|
|
85
|
-
> - **
|
|
86
|
-
>
|
|
87
|
-
> `
|
|
88
|
-
>
|
|
89
|
-
>
|
|
90
|
-
>
|
|
91
|
-
>
|
|
92
|
-
>
|
|
93
|
-
>
|
|
95
|
+
> - **Stable mechanism:** the dispatcher itself
|
|
96
|
+
> (`scripts/runtime_dispatcher.py`), the shell handler
|
|
97
|
+
> (`scripts/runtime_handler.py`), and the `ExecutionResult` shape.
|
|
98
|
+
> `subprocess.run` is invoked with `shell=False` (argv only); the
|
|
99
|
+
> environment is scrubbed to an explicit allowlist.
|
|
100
|
+
> - **Pilot coverage:** two skills ship as live pilots —
|
|
101
|
+
> `lint-skills` and `check-refs` — both run on every PR and appear
|
|
102
|
+
> in the GitHub Step Summary via `scripts/ci_summary.py`.
|
|
103
|
+
> - **Scaffold:** `php` and `node` handlers — the frontmatter accepts
|
|
104
|
+
> them and the registry validates them, but no handler
|
|
105
|
+
> implementation exists yet.
|
|
94
106
|
|
|
95
107
|
Skills opt into runtime by declaring execution metadata:
|
|
96
108
|
|
|
@@ -113,14 +125,49 @@ Invoke a runtime-capable skill end-to-end:
|
|
|
113
125
|
python3 scripts/runtime_dispatcher.py run --skill lint-skills
|
|
114
126
|
```
|
|
115
127
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
Planned scope
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
### 3.
|
|
128
|
+
A typed `ExecutionResult` (exit code, stdout, stderr, duration,
|
|
129
|
+
artifacts) is returned and can be persisted as JSON via
|
|
130
|
+
`--output FILE`.
|
|
131
|
+
|
|
132
|
+
Planned scope: `php` / `node` handlers, tool-registry wiring for
|
|
133
|
+
`allowed_tools`, streaming output.
|
|
134
|
+
|
|
135
|
+
### 3. Work Engine — beta, multi-step orchestration
|
|
136
|
+
|
|
137
|
+
> **Scope:** multi-step phase dispatch for `/work` and
|
|
138
|
+
> `/implement-ticket`. Drives the
|
|
139
|
+
> `refine → score → plan → implement → test → verify → report` loop,
|
|
140
|
+
> persists state in `.work-state.json`, and routes UI-shaped work
|
|
141
|
+
> through the product UI track. Lives at
|
|
142
|
+
> [`templates/scripts/work_engine/`](../.agent-src.uncompressed/templates/scripts/work_engine/);
|
|
143
|
+
> shipped to consumer projects via `scripts/install.py`.
|
|
144
|
+
|
|
145
|
+
> **Status: beta.** The contract (directive sets, halt budgets,
|
|
146
|
+
> envelope shape) has shipped one full SemVer-minor cycle, but the
|
|
147
|
+
> surface is still expected to evolve. Breaks are allowed in
|
|
148
|
+
> minor-version releases under a `### Breaking` CHANGELOG note. See
|
|
149
|
+
> [`docs/contracts/STABILITY.md`](contracts/STABILITY.md).
|
|
150
|
+
|
|
151
|
+
Key responsibilities:
|
|
152
|
+
|
|
153
|
+
- **Directive routing** — `ui` / `ui-trivial` / `mixed` directive
|
|
154
|
+
sets, locked into the contract at
|
|
155
|
+
[`adr-product-ui-track.md`](contracts/adr-product-ui-track.md) (beta).
|
|
156
|
+
- **Halt protocol** — every phase emits a structured halt; the
|
|
157
|
+
agent re-enters with the user's answer, never improvises.
|
|
158
|
+
- **State machine** — `.work-state.json` is the single source of
|
|
159
|
+
truth across resumes; the engine refuses to switch envelope
|
|
160
|
+
mid-flight. Legacy `.implement-ticket-state.json` files are
|
|
161
|
+
detected on load and routed through
|
|
162
|
+
[`docs/MIGRATION.md`](MIGRATION.md).
|
|
163
|
+
- **Hooks** — chat-history, telemetry, and platform hooks fire
|
|
164
|
+
through the engine's hook layer.
|
|
165
|
+
|
|
166
|
+
The Work Engine **uses** the Runtime Dispatcher when a phase needs
|
|
167
|
+
to execute a single skill (e.g. lint, refs check), but the two are
|
|
168
|
+
independent components with separate stability tiers.
|
|
169
|
+
|
|
170
|
+
### 4. Tool Adapters — experimental
|
|
124
171
|
|
|
125
172
|
> **Status: scaffold + read-only GitHub calls.** With a `GITHUB_TOKEN` the
|
|
126
173
|
> GitHub adapter performs real read calls; without one it returns scaffold
|
|
@@ -134,14 +181,16 @@ Controlled integration via adapters:
|
|
|
134
181
|
- Tool registry with safety rules for execution
|
|
135
182
|
- Structured responses with error classification
|
|
136
183
|
|
|
137
|
-
###
|
|
184
|
+
### 5. Cost Control
|
|
138
185
|
|
|
139
186
|
> **Key principle:** Opt-in by default.
|
|
140
187
|
|
|
141
|
-
The
|
|
142
|
-
`full` profile. The
|
|
143
|
-
|
|
144
|
-
|
|
188
|
+
The Runtime Dispatcher and Tool Adapters activate only under the
|
|
189
|
+
`balanced` or `full` profile. The Work Engine activates whenever
|
|
190
|
+
`/work` or `/implement-ticket` is invoked and is independent of the
|
|
191
|
+
cost profile. The default `minimal` profile ships rules, skills, and
|
|
192
|
+
commands and nothing else. All settings and their profile defaults
|
|
193
|
+
are documented in
|
|
145
194
|
[`.agent-src.uncompressed/templates/agent-settings.md`](../.agent-src.uncompressed/templates/agent-settings.md).
|
|
146
195
|
|
|
147
196
|
---
|