@event4u/agent-config 1.12.0 → 1.14.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 +3 -0
- package/.agent-src/commands/agent-status.md +3 -0
- package/.agent-src/commands/agents-audit.md +4 -0
- package/.agent-src/commands/agents-cleanup.md +6 -1
- package/.agent-src/commands/agents-prepare.md +3 -0
- package/.agent-src/commands/analyze-reference-repo.md +4 -0
- package/.agent-src/commands/bug-fix.md +5 -1
- package/.agent-src/commands/bug-investigate.md +4 -0
- package/.agent-src/commands/chat-history-checkpoint.md +126 -0
- package/.agent-src/commands/chat-history-clear.md +5 -0
- package/.agent-src/commands/chat-history-resume.md +5 -0
- package/.agent-src/commands/chat-history.md +5 -0
- package/.agent-src/commands/check-current-md.md +126 -0
- package/.agent-src/commands/commit-in-chunks.md +98 -0
- package/.agent-src/commands/commit.md +4 -0
- package/.agent-src/commands/compress.md +3 -0
- package/.agent-src/commands/context-create.md +4 -0
- package/.agent-src/commands/context-refactor.md +4 -0
- package/.agent-src/commands/copilot-agents-init.md +3 -0
- package/.agent-src/commands/copilot-agents-optimize.md +3 -0
- package/.agent-src/commands/create-pr-description.md +4 -0
- package/.agent-src/commands/create-pr.md +4 -0
- package/.agent-src/commands/do-and-judge.md +4 -1
- package/.agent-src/commands/do-in-steps.md +3 -0
- package/.agent-src/commands/e2e-heal.md +4 -0
- package/.agent-src/commands/e2e-plan.md +4 -0
- package/.agent-src/commands/estimate-ticket.md +4 -1
- package/.agent-src/commands/feature-dev.md +4 -0
- package/.agent-src/commands/feature-explore.md +4 -0
- package/.agent-src/commands/feature-plan.md +4 -0
- package/.agent-src/commands/feature-refactor.md +4 -0
- package/.agent-src/commands/feature-roadmap.md +6 -0
- package/.agent-src/commands/fix-ci.md +4 -0
- package/.agent-src/commands/fix-portability.md +3 -0
- package/.agent-src/commands/fix-pr-bot-comments.md +4 -0
- package/.agent-src/commands/fix-pr-comments.md +4 -0
- package/.agent-src/commands/fix-pr-developer-comments.md +4 -0
- package/.agent-src/commands/fix-references.md +3 -0
- package/.agent-src/commands/fix-seeder.md +4 -0
- package/.agent-src/commands/implement-ticket.md +39 -13
- package/.agent-src/commands/jira-ticket.md +4 -0
- package/.agent-src/commands/judge.md +3 -0
- package/.agent-src/commands/memory-add.md +5 -3
- package/.agent-src/commands/memory-full.md +5 -2
- package/.agent-src/commands/memory-promote.md +7 -6
- package/.agent-src/commands/mode.md +3 -0
- package/.agent-src/commands/module-create.md +4 -0
- package/.agent-src/commands/module-explore.md +4 -0
- package/.agent-src/commands/onboard.md +24 -0
- package/.agent-src/commands/optimize-agents.md +4 -0
- package/.agent-src/commands/optimize-augmentignore.md +3 -0
- package/.agent-src/commands/optimize-rtk-filters.md +3 -0
- package/.agent-src/commands/optimize-skills.md +4 -0
- package/.agent-src/commands/override-create.md +4 -0
- package/.agent-src/commands/override-manage.md +4 -0
- package/.agent-src/commands/package-reset.md +3 -0
- package/.agent-src/commands/package-test.md +3 -0
- package/.agent-src/commands/prepare-for-review.md +4 -0
- package/.agent-src/commands/project-analyze.md +4 -0
- package/.agent-src/commands/project-health.md +4 -0
- package/.agent-src/commands/propose-memory.md +6 -8
- package/.agent-src/commands/quality-fix.md +4 -0
- package/.agent-src/commands/refine-ticket.md +4 -1
- package/.agent-src/commands/review-changes.md +4 -0
- package/.agent-src/commands/review-routing.md +4 -0
- package/.agent-src/commands/roadmap-create.md +7 -0
- package/.agent-src/commands/roadmap-execute.md +12 -1
- package/.agent-src/commands/rule-compliance-audit.md +4 -0
- package/.agent-src/commands/set-cost-profile.md +3 -0
- package/.agent-src/commands/sync-agent-settings.md +3 -0
- package/.agent-src/commands/sync-gitignore.md +3 -0
- package/.agent-src/commands/tests-create.md +4 -0
- package/.agent-src/commands/tests-execute.md +4 -0
- package/.agent-src/commands/threat-model.md +4 -0
- package/.agent-src/commands/update-form-request-messages.md +4 -0
- package/.agent-src/commands/upstream-contribute.md +4 -0
- package/.agent-src/commands/work.md +161 -0
- package/.agent-src/guidelines/agent-infra/engineering-memory-data-format.md +2 -6
- package/.agent-src/guidelines/agent-infra/layered-settings.md +0 -1
- package/.agent-src/guidelines/agent-infra/memory-access.md +0 -7
- package/.agent-src/guidelines/agent-infra/role-contracts.md +2 -4
- package/.agent-src/guidelines/agent-infra/self-improvement-pipeline.md +0 -1
- package/.agent-src/guidelines/php/patterns/strategy.md +180 -2
- package/.agent-src/personas/README.md +0 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +7 -2
- package/.agent-src/rules/artifact-engagement-recording.md +133 -0
- package/.agent-src/rules/ask-when-uncertain.md +18 -13
- package/.agent-src/rules/augment-portability.md +8 -0
- package/.agent-src/rules/autonomous-execution.md +158 -0
- package/.agent-src/rules/chat-history.md +147 -118
- package/.agent-src/rules/cli-output-handling.md +26 -3
- package/.agent-src/rules/command-suggestion.md +133 -0
- package/.agent-src/rules/commit-policy.md +99 -0
- package/.agent-src/rules/direct-answers.md +114 -0
- package/.agent-src/rules/docs-sync.md +36 -0
- package/.agent-src/rules/downstream-changes.md +10 -9
- package/.agent-src/rules/improve-before-implement.md +9 -6
- package/.agent-src/rules/language-and-tone.md +81 -6
- package/.agent-src/rules/non-destructive-by-default.md +117 -0
- package/.agent-src/rules/package-ci-checks.md +4 -0
- package/.agent-src/rules/preservation-guard.md +20 -0
- package/.agent-src/rules/roadmap-progress-sync.md +103 -30
- package/.agent-src/rules/scope-control.md +42 -1
- package/.agent-src/rules/size-enforcement.md +1 -3
- package/.agent-src/rules/skill-quality.md +3 -8
- package/.agent-src/rules/ui-audit-before-build.md +106 -0
- package/.agent-src/rules/user-interaction.md +81 -3
- package/.agent-src/scripts/update_roadmap_progress.py +48 -6
- package/.agent-src/skills/blade-ui/SKILL.md +30 -5
- package/.agent-src/skills/command-routing/SKILL.md +32 -0
- package/.agent-src/skills/command-writing/SKILL.md +41 -2
- package/.agent-src/skills/description-assist/SKILL.md +21 -0
- package/.agent-src/skills/estimate-ticket/SKILL.md +0 -1
- package/.agent-src/skills/existing-ui-audit/SKILL.md +187 -0
- package/.agent-src/skills/fe-design/SKILL.md +72 -60
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +4 -0
- package/.agent-src/skills/flux/SKILL.md +31 -4
- package/.agent-src/skills/guideline-writing/SKILL.md +24 -2
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +51 -9
- package/.agent-src/skills/livewire/SKILL.md +30 -4
- package/.agent-src/skills/md-language-check/SKILL.md +103 -0
- package/.agent-src/skills/php-coder/SKILL.md +24 -0
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +121 -0
- package/.agent-src/skills/refine-prompt/SKILL.md +220 -0
- package/.agent-src/skills/refine-ticket/SKILL.md +2 -4
- package/.agent-src/skills/roadmap-management/SKILL.md +10 -3
- package/.agent-src/skills/rule-writing/SKILL.md +23 -1
- package/.agent-src/skills/skill-writing/SKILL.md +1 -3
- package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/.agent-src/skills/using-git-worktrees/SKILL.md +3 -1
- package/.agent-src/templates/AGENTS.md +24 -6
- package/.agent-src/templates/agent-settings.md +149 -0
- package/.agent-src/templates/github-workflows/roadmap-progress-check.yml +63 -0
- package/.agent-src/templates/hooks/pre-commit-roadmap-progress +60 -0
- package/.agent-src/templates/roadmaps.md +8 -2
- package/.agent-src/templates/scripts/implement_ticket/__init__.py +63 -26
- package/.agent-src/templates/scripts/implement_ticket/__main__.py +8 -2
- package/.agent-src/templates/scripts/memory_lookup.py +382 -21
- package/.agent-src/templates/scripts/memory_status.py +110 -9
- package/.agent-src/templates/scripts/telemetry/__init__.py +42 -0
- package/.agent-src/templates/scripts/telemetry/aggregator.py +154 -0
- package/.agent-src/templates/scripts/telemetry/boundary.py +171 -0
- package/.agent-src/templates/scripts/telemetry/engagement.py +238 -0
- package/.agent-src/templates/scripts/telemetry/report_renderer.py +170 -0
- package/.agent-src/templates/scripts/telemetry/settings.py +112 -0
- package/.agent-src/templates/scripts/telemetry_record.py +166 -0
- package/.agent-src/templates/scripts/telemetry_report.py +161 -0
- package/.agent-src/templates/scripts/telemetry_status.py +142 -0
- package/.agent-src/templates/scripts/work_engine/__init__.py +58 -0
- package/.agent-src/templates/scripts/work_engine/__main__.py +9 -0
- package/.agent-src/templates/scripts/work_engine/cli.py +592 -0
- package/.agent-src/templates/scripts/{implement_ticket → work_engine}/delivery_state.py +7 -0
- package/.agent-src/templates/scripts/work_engine/directives/__init__.py +33 -0
- package/.agent-src/templates/scripts/work_engine/directives/backend/__init__.py +98 -0
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/analyze.py +1 -1
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/implement.py +2 -2
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/memory.py +1 -1
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/plan.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/refine.py +396 -0
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/report.py +36 -4
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/test.py +2 -2
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/verify.py +2 -2
- package/.agent-src/templates/scripts/work_engine/directives/mixed/__init__.py +116 -0
- package/.agent-src/templates/scripts/work_engine/directives/mixed/contract.py +254 -0
- package/.agent-src/templates/scripts/work_engine/directives/mixed/stitch.py +229 -0
- package/.agent-src/templates/scripts/work_engine/directives/mixed/ui.py +231 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui/__init__.py +113 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui/_passthrough.py +44 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui/apply.py +241 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui/audit.py +414 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui/design.py +335 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui/polish.py +510 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui/review.py +468 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/__init__.py +119 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/_skipped.py +37 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/apply.py +165 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/refine.py +66 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/report.py +62 -0
- package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/test.py +115 -0
- package/.agent-src/templates/scripts/work_engine/dispatcher.py +331 -0
- package/.agent-src/templates/scripts/work_engine/hooks/__init__.py +54 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/__init__.py +32 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.py +103 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_append.py +44 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_halt_append.py +42 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_heartbeat.py +50 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_turn_check.py +49 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/directive_set_guard.py +53 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/halt_surface_audit.py +50 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/state_shape_validation.py +52 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/trace.py +84 -0
- package/.agent-src/templates/scripts/work_engine/hooks/context.py +66 -0
- package/.agent-src/templates/scripts/work_engine/hooks/events.py +44 -0
- package/.agent-src/templates/scripts/work_engine/hooks/exceptions.py +79 -0
- package/.agent-src/templates/scripts/work_engine/hooks/registry.py +60 -0
- package/.agent-src/templates/scripts/work_engine/hooks/runner.py +73 -0
- package/.agent-src/templates/scripts/work_engine/hooks/settings.py +141 -0
- package/.agent-src/templates/scripts/work_engine/intent/__init__.py +47 -0
- package/.agent-src/templates/scripts/work_engine/intent/classify.py +280 -0
- package/.agent-src/templates/scripts/work_engine/migration/__init__.py +8 -0
- package/.agent-src/templates/scripts/work_engine/migration/v0_to_v1.py +199 -0
- package/.agent-src/templates/scripts/work_engine/resolvers/__init__.py +22 -0
- package/.agent-src/templates/scripts/work_engine/resolvers/diff.py +106 -0
- package/.agent-src/templates/scripts/work_engine/resolvers/file.py +113 -0
- package/.agent-src/templates/scripts/work_engine/resolvers/prompt.py +90 -0
- package/.agent-src/templates/scripts/work_engine/scoring/__init__.py +14 -0
- package/.agent-src/templates/scripts/work_engine/scoring/confidence.py +300 -0
- package/.agent-src/templates/scripts/work_engine/stack/__init__.py +31 -0
- package/.agent-src/templates/scripts/work_engine/stack/detect.py +187 -0
- package/.agent-src/templates/scripts/work_engine/state.py +641 -0
- package/.claude-plugin/marketplace.json +105 -2
- package/AGENTS.md +36 -8
- package/CHANGELOG.md +558 -0
- package/README.md +146 -4
- package/composer.json +3 -0
- package/config/agent-settings.template.yml +45 -0
- package/config/gitignore-block.txt +4 -0
- package/docs/architecture.md +28 -1
- package/docs/development.md +1 -1
- package/docs/getting-started.md +3 -2
- package/docs/installation.md +86 -0
- package/docs/showcase.md +204 -0
- package/package.json +9 -1
- package/scripts/agent-config +274 -0
- package/scripts/audit_cloud_compatibility.py +288 -0
- package/scripts/build_cloud_bundle.py +458 -0
- package/scripts/build_linear_digest.py +263 -0
- package/scripts/chat_history.py +796 -7
- package/scripts/check_compression.py +139 -0
- package/scripts/check_iron_law_prominence.py +143 -0
- package/scripts/check_md_language.py +159 -0
- package/scripts/check_portability.py +36 -0
- package/scripts/check_reply_consistency.py +140 -0
- package/scripts/command_suggester/__init__.py +51 -0
- package/scripts/command_suggester/cooldown.py +132 -0
- package/scripts/command_suggester/loader.py +70 -0
- package/scripts/command_suggester/match.py +180 -0
- package/scripts/command_suggester/rank.py +120 -0
- package/scripts/command_suggester/render.py +86 -0
- package/scripts/command_suggester/sanitize.py +113 -0
- package/scripts/command_suggester/settings.py +125 -0
- package/scripts/command_suggester/types.py +78 -0
- package/scripts/hooks/augment-chat-history.sh +56 -0
- package/scripts/install-hooks.sh +67 -0
- package/scripts/install.py +150 -33
- package/scripts/lint_marketplace.py +27 -0
- package/scripts/memory_lookup.py +143 -7
- package/scripts/memory_status.py +76 -14
- package/scripts/migrate_command_suggestions.py +151 -0
- package/scripts/postinstall.sh +16 -0
- package/scripts/schemas/command.schema.json +41 -0
- package/scripts/skill_linter.py +67 -0
- package/scripts/sync_agent_settings.py +42 -12
- package/templates/consumer-settings/augment-cli-hooks.json +54 -0
- package/templates/consumer-settings/claude-settings.json +55 -1
- package/.agent-src/templates/scripts/implement_ticket/cli.py +0 -171
- package/.agent-src/templates/scripts/implement_ticket/dispatcher.py +0 -134
- package/.agent-src/templates/scripts/implement_ticket/steps/__init__.py +0 -49
- package/.agent-src/templates/scripts/implement_ticket/steps/refine.py +0 -140
- /package/.agent-src/templates/scripts/{implement_ticket → work_engine}/persona_policy.py +0 -0
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Teach your AI agents Laravel, PHP, testing, Git workflows, and **120+ more skill
|
|
|
5
5
|
> Your agent learns to write Laravel code, run tests, create PRs, fix CI — and follows your team's coding standards while doing it.
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>
|
|
8
|
+
<strong>128 Skills</strong> · <strong>53 Rules</strong> · <strong>77 Commands</strong> · <strong>46 Guidelines</strong> · <strong>8 AI Tools</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
---
|
|
@@ -69,7 +69,29 @@ Install directly in your agent for global, cross-project use:
|
|
|
69
69
|
2. `"Add caching to this"` → watch: agent asks instead of guessing
|
|
70
70
|
3. `"Implement this feature"` → watch: agent respects your codebase
|
|
71
71
|
|
|
72
|
-
→ [Full getting started guide](docs/getting-started.md)
|
|
72
|
+
→ [Full getting started guide](docs/getting-started.md) ·
|
|
73
|
+
[More examples & expected behavior](docs/showcase.md)
|
|
74
|
+
|
|
75
|
+
### Optional: persistent agent memory
|
|
76
|
+
|
|
77
|
+
`agent-config` integrates with [`@event4u/agent-memory`](https://www.npmjs.com/package/@event4u/agent-memory)
|
|
78
|
+
— an MCP-based memory backend that gives agents persistent learnings
|
|
79
|
+
across sessions. It is **strictly optional**:
|
|
80
|
+
|
|
81
|
+
- Not a required dependency (declared as `suggest` in Composer and as an
|
|
82
|
+
optional peer in npm). `agent-config` itself never imports it.
|
|
83
|
+
- Without it, agent skills fall back to **file-based memory** under
|
|
84
|
+
`agents/memory/` and continue to work normally.
|
|
85
|
+
- Recommended for teams that want learnings to survive across machines,
|
|
86
|
+
branches, and chat sessions.
|
|
87
|
+
|
|
88
|
+
Install in the same project (dev-only):
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm install --save-dev @event4u/agent-memory
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
→ [Memory contract & retrieval API](agents/contexts/agent-memory-contract.md)
|
|
73
95
|
|
|
74
96
|
---
|
|
75
97
|
|
|
@@ -109,6 +131,67 @@ so you decide — never a silent guess. Persona comes from
|
|
|
109
131
|
→ [Command reference](.agent-src/commands/implement-ticket.md) ·
|
|
110
132
|
[Flow contract](agents/contexts/implement-ticket-flow.md)
|
|
111
133
|
|
|
134
|
+
### Sibling entrypoint: `/work` (free-form prompt)
|
|
135
|
+
|
|
136
|
+
Same engine, different envelope. Use `/work` when you have a goal
|
|
137
|
+
but no ticket yet:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
/work add a CSV export endpoint to the audit-log controller
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
The first pass scores the prompt on five dimensions
|
|
144
|
+
(`goal_clarity`, `scope_boundary`, `ac_evidence`, `stack_data`,
|
|
145
|
+
`reversibility`) and routes on the resulting band:
|
|
146
|
+
|
|
147
|
+
| Band | Score | Engine action |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| **high** | `≥ 0.8` | Silent proceed — reconstructed AC + assumptions land in the delivery report |
|
|
150
|
+
| **medium** | `0.5–0.79` | Halts with assumptions report; you confirm or edit before plan |
|
|
151
|
+
| **low** | `< 0.5` | Halts with **one** clarifying question on the weakest dimension |
|
|
152
|
+
|
|
153
|
+
After the band gate releases, the rest of the flow is identical
|
|
154
|
+
to `/implement-ticket`. UI-shaped prompts are routed through the
|
|
155
|
+
**product UI track** — see below.
|
|
156
|
+
|
|
157
|
+
→ [Command reference](.agent-src/commands/work.md) ·
|
|
158
|
+
[`refine-prompt` skill](.agent-src/skills/refine-prompt/SKILL.md) ·
|
|
159
|
+
[ADR](agents/contexts/adr-prompt-driven-execution.md)
|
|
160
|
+
|
|
161
|
+
**Pick which one:** ticket id or pasted ticket payload → `/implement-ticket`.
|
|
162
|
+
Free-form goal, no ticket → `/work`. The two share `.work-state.json`
|
|
163
|
+
and refuse to switch envelopes mid-flight.
|
|
164
|
+
|
|
165
|
+
### Product UI track
|
|
166
|
+
|
|
167
|
+
UI-shaped work (build a screen, improve a component, fix microcopy)
|
|
168
|
+
switches the engine to one of three directive sets:
|
|
169
|
+
|
|
170
|
+
| `directive_set` | When | Flow |
|
|
171
|
+
|---|---|---|
|
|
172
|
+
| `ui` | Non-trivial UI surface | `audit → design → apply → review → polish → report` |
|
|
173
|
+
| `ui-trivial` | Bounded edit (≤ 1 file, ≤ 5 changed lines) | `apply → test → report` |
|
|
174
|
+
| `mixed` | Backend + UI | `contract → ui → stitch` |
|
|
175
|
+
|
|
176
|
+
Four load-bearing properties: (1) **existing-UI audit is a hard gate** —
|
|
177
|
+
no `apply` without audit, enforced at dispatcher AND
|
|
178
|
+
[`ui-audit-before-build`](.agent-src/rules/ui-audit-before-build.md) rule;
|
|
179
|
+
(2) **design brief is locked microcopy** — placeholders (`<placeholder>`,
|
|
180
|
+
`Lorem`, `TODO:`) rejected at both ends; (3) **polish has a 2-round
|
|
181
|
+
ceiling**, then halts ship-as-is / abort / hand-off; (4) **a11y precedence**
|
|
182
|
+
— unresolved axe-core / pa11y violations must be fixed or explicitly
|
|
183
|
+
accepted before ship, regardless of round counter (one-shot extension
|
|
184
|
+
allowed). The engine never renders UI itself: rendering happens
|
|
185
|
+
out-of-process, the engine consumes a `preview_envelope` (status /
|
|
186
|
+
screenshots / findings) via a defined contract. Stack detection routes
|
|
187
|
+
(`composer.json` + `package.json`) to `blade-livewire-flux` /
|
|
188
|
+
`react-shadcn` / `vue` / `plain`; trivial path reclassifies loudly when
|
|
189
|
+
preconditions fail. Halt budget on the happy path is 2.
|
|
190
|
+
|
|
191
|
+
→ [Flow contract](agents/contexts/ui-track-flow.md) ·
|
|
192
|
+
[ADR](agents/contexts/adr-product-ui-track.md) ·
|
|
193
|
+
[Stack-extension recipe](agents/contexts/ui-stack-extension.md)
|
|
194
|
+
|
|
112
195
|
---
|
|
113
196
|
|
|
114
197
|
## What your agent is asked to do
|
|
@@ -238,7 +321,7 @@ can prioritize the right skills for extraction.
|
|
|
238
321
|
| [`/jira-ticket`](.agent-src/commands/jira-ticket.md) | Read ticket from branch, implement feature |
|
|
239
322
|
| [`/compress`](.agent-src/commands/compress.md) | Compress skills for token efficiency |
|
|
240
323
|
|
|
241
|
-
→ [Browse all
|
|
324
|
+
→ [Browse all 77 commands](.agent-src/commands/)
|
|
242
325
|
|
|
243
326
|
---
|
|
244
327
|
|
|
@@ -263,7 +346,7 @@ Every developer gets the same behavior. No per-user setup needed.
|
|
|
263
346
|
native slash-commands)
|
|
264
347
|
|
|
265
348
|
> **What this means in practice:** Augment Code and Claude Code get the full
|
|
266
|
-
> package (rules +
|
|
349
|
+
> package (rules + 128 skills + 77 native commands). Cursor, Cline, Windsurf,
|
|
267
350
|
> Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
|
|
268
351
|
> commands are available to them as documentation the agent can read, not as
|
|
269
352
|
> first-class features.
|
|
@@ -282,6 +365,23 @@ Skills use a `SKILL.md` format with YAML frontmatter that is compatible with
|
|
|
282
365
|
the [Agent Skills](https://agentskills.io) community spec and with Claude
|
|
283
366
|
Code's Agent Skills specification.
|
|
284
367
|
|
|
368
|
+
### Cloud / Hosted-agent surfaces (paste-in or upload)
|
|
369
|
+
|
|
370
|
+
For platforms where the package's scripts cannot run, the package
|
|
371
|
+
builds artefacts you upload or paste into the platform's own surface.
|
|
372
|
+
|
|
373
|
+
| Surface | Output | How to install |
|
|
374
|
+
|---|---|---|
|
|
375
|
+
| **Linear AI** (Codegen, Charlie, …) | `dist/linear/{workspace,team,personal}.md` | [Install →](docs/installation.md#linear-ai-codegen-charlie-) |
|
|
376
|
+
| **Claude.ai Web Skills** | `dist/cloud/<skill>.zip` | [Install →](docs/installation.md#claudeai-web-skills-ui) |
|
|
377
|
+
|
|
378
|
+
The Linear digest is split into three layers — workspace (universal
|
|
379
|
+
coding posture), team (framework-specific), personal (empty stub). See
|
|
380
|
+
[`agents/contexts/linear-ai-three-layers.md`](agents/contexts/linear-ai-three-layers.md)
|
|
381
|
+
for the rationale and
|
|
382
|
+
[`agents/contexts/linear-ai-rules-inclusion.md`](agents/contexts/linear-ai-rules-inclusion.md)
|
|
383
|
+
for the per-rule routing.
|
|
384
|
+
|
|
285
385
|
---
|
|
286
386
|
|
|
287
387
|
## Core Principles
|
|
@@ -310,6 +410,48 @@ Uninstalling: see
|
|
|
310
410
|
there is no dedicated uninstall command; removal is a documented manual
|
|
311
411
|
step (package manager + `rm -rf` of generated dirs).
|
|
312
412
|
|
|
413
|
+
### Maintainer telemetry (opt-in, default-off)
|
|
414
|
+
|
|
415
|
+
A local-only artefact-engagement log can be enabled by maintainers to see
|
|
416
|
+
which skills, rules, commands, and guidelines the agent actually consults
|
|
417
|
+
and applies during a `/implement-ticket` or `/work` run. The log is a
|
|
418
|
+
JSONL file under the project root; nothing is uploaded, nothing is shared
|
|
419
|
+
across projects. Default is off; consumers see no prompts.
|
|
420
|
+
|
|
421
|
+
```yaml
|
|
422
|
+
# .agent-settings.yml — opt in only when you want measurement
|
|
423
|
+
telemetry:
|
|
424
|
+
artifact_engagement:
|
|
425
|
+
enabled: true
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
Reports: `./agent-config telemetry:report`. Full contract,
|
|
429
|
+
privacy/redaction floor, and quartile semantics:
|
|
430
|
+
[`agents/contexts/artifact-engagement-flow.md`](agents/contexts/artifact-engagement-flow.md).
|
|
431
|
+
|
|
432
|
+
### Context-aware command suggestion
|
|
433
|
+
|
|
434
|
+
When a user prompt matches a command's purpose ("setze ticket ABC-123 um"
|
|
435
|
+
→ `/implement-ticket`), the agent surfaces matches as a numbered-options
|
|
436
|
+
block with an always-present "run the prompt as-is" escape. **Nothing
|
|
437
|
+
auto-executes** — the user picks every time. Three opt-out paths:
|
|
438
|
+
|
|
439
|
+
```yaml
|
|
440
|
+
# .agent-settings.yml
|
|
441
|
+
commands:
|
|
442
|
+
suggestion:
|
|
443
|
+
enabled: true # global on/off
|
|
444
|
+
blocklist: [] # specific commands never suggested
|
|
445
|
+
confidence_floor: 0.6 # tunable per command in frontmatter
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Per-conversation: `/command-suggestion-off` disables the layer until
|
|
449
|
+
the user re-enables or the chat ends. Full scoring contract and
|
|
450
|
+
hardening list:
|
|
451
|
+
[`agents/contexts/adr-command-suggestion.md`](agents/contexts/adr-command-suggestion.md)
|
|
452
|
+
and
|
|
453
|
+
[`agents/contexts/command-suggestion-flow.md`](agents/contexts/command-suggestion-flow.md).
|
|
454
|
+
|
|
313
455
|
---
|
|
314
456
|
|
|
315
457
|
## Development
|
package/composer.json
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
"require": {
|
|
7
7
|
"php": ">=8.0"
|
|
8
8
|
},
|
|
9
|
+
"suggest": {
|
|
10
|
+
"@event4u/agent-memory": "Optional MCP-based memory backend (npm: @event4u/agent-memory ^1.1.0). Adds persistent agent learnings across sessions. Install with `npm install --save-dev @event4u/agent-memory` if your team wants the memory layer; otherwise agent-config falls back to file-based memory."
|
|
11
|
+
},
|
|
9
12
|
"bin": [
|
|
10
13
|
"bin/install.php",
|
|
11
14
|
"scripts/agent-config"
|
|
@@ -46,6 +46,15 @@ personal:
|
|
|
46
46
|
# Personal preference — each developer decides for themselves.
|
|
47
47
|
pr_comment_bot_icon: false
|
|
48
48
|
|
|
49
|
+
# Autonomous execution — suppress trivial workflow questions (on, off, auto)
|
|
50
|
+
# on = act on the obvious next step; never ask "Step 2 or 3?", "should I commit?", etc.
|
|
51
|
+
# off = ask trivial workflow questions (legacy behavior)
|
|
52
|
+
# auto = behaves like 'off' until the user says "arbeite selbstständig" / "work autonomously"
|
|
53
|
+
# in the conversation, then switches to 'on' for the rest of the chat.
|
|
54
|
+
# Blocking decisions (security, scope expansion, push/merge/branch/PR) are NEVER suppressed.
|
|
55
|
+
# See rules/autonomous-execution.md for the full definition.
|
|
56
|
+
autonomy: auto
|
|
57
|
+
|
|
49
58
|
# --- Project / team preferences ---
|
|
50
59
|
project:
|
|
51
60
|
# Path to the PR template file (relative to project root)
|
|
@@ -96,6 +105,13 @@ chat_history:
|
|
|
96
105
|
# compress = mark for summarization on the next agent turn
|
|
97
106
|
on_overflow: __CHAT_HISTORY_ON_OVERFLOW__
|
|
98
107
|
|
|
108
|
+
# Heartbeat marker visibility (token-cost knob)
|
|
109
|
+
# on = print the 📒 marker every reply (~20 tokens/reply, legacy)
|
|
110
|
+
# off = never print (zero tokens, drift only visible by reading the file)
|
|
111
|
+
# hybrid = print only on drift states (missing/foreign/returning); silent otherwise
|
|
112
|
+
# YAML 1.1 booleanizes bare on/off — both are accepted, no quoting needed.
|
|
113
|
+
heartbeat: hybrid
|
|
114
|
+
|
|
99
115
|
# --- Optional pipelines ---
|
|
100
116
|
pipelines:
|
|
101
117
|
# Skill improvement pipeline (true, false)
|
|
@@ -133,3 +149,32 @@ onboarding:
|
|
|
133
149
|
# Set to true automatically by /onboard at the end. Flip to false if
|
|
134
150
|
# you want to re-run the flow.
|
|
135
151
|
onboarded: false
|
|
152
|
+
|
|
153
|
+
# --- Command suggestion (numbered-options shortcut finder) ---
|
|
154
|
+
#
|
|
155
|
+
# When the user's free-form prompt matches an eligible slash command,
|
|
156
|
+
# the agent surfaces a numbered-options block with the recommendation
|
|
157
|
+
# plus an always-present "run as-is" option. The suggestion layer
|
|
158
|
+
# never auto-executes — the user picks. See rules/command-suggestion.md.
|
|
159
|
+
commands:
|
|
160
|
+
suggestion:
|
|
161
|
+
# Master switch (true, false). false = the layer is silent; explicit
|
|
162
|
+
# /commands still work as today.
|
|
163
|
+
enabled: true
|
|
164
|
+
|
|
165
|
+
# Minimum match score (0.0–1.0) before a suggestion surfaces.
|
|
166
|
+
# 0.6 = default; raise to 0.7 for stricter behaviour, lower to 0.5
|
|
167
|
+
# if too many useful suggestions are being suppressed.
|
|
168
|
+
confidence_floor: 0.6
|
|
169
|
+
|
|
170
|
+
# Cooldown in seconds between re-suggestions of the same
|
|
171
|
+
# (command, evidence) pair. Default 600s = 10m.
|
|
172
|
+
cooldown_seconds: 600
|
|
173
|
+
|
|
174
|
+
# Max number of command suggestions before the as-is option.
|
|
175
|
+
# The as-is option is always extra (so total = max_options + 1).
|
|
176
|
+
max_options: 4
|
|
177
|
+
|
|
178
|
+
# Commands to never suggest. Still work when typed explicitly.
|
|
179
|
+
# Example: ["/refine-ticket", "/work"]
|
|
180
|
+
blocklist: []
|
package/docs/architecture.md
CHANGED
|
@@ -29,8 +29,32 @@ wired up yet.
|
|
|
29
29
|
↓ install.sh (Cursor, Cline, Windsurf, Augment VSCode) / plugin system
|
|
30
30
|
.claude/ .cursor/ .clinerules/ ← Tool-specific symlinks/copies (auto-generated)
|
|
31
31
|
.windsurfrules GEMINI.md
|
|
32
|
+
↓ scripts/build_cloud_bundle.py (Phase 1 — cloud distribution)
|
|
33
|
+
dist/cloud/<skill>.zip ← Anthropic Skills bundles (Claude.ai Web / Skills API)
|
|
32
34
|
```
|
|
33
35
|
|
|
36
|
+
### Cloud-bundle pipeline
|
|
37
|
+
|
|
38
|
+
`task build-cloud-bundles-all` produces one ZIP per skill at
|
|
39
|
+
`dist/cloud/<skill>.zip`, ready for upload to Claude.ai Web (Settings →
|
|
40
|
+
Customize → Skills) or the Anthropic Skills API. Per-skill behavior
|
|
41
|
+
follows the cloud-tier classification from `scripts/audit_cloud_compatibility.py`:
|
|
42
|
+
|
|
43
|
+
| Tier | Bundle action |
|
|
44
|
+
|-------|-------------------------------------------------------------------|
|
|
45
|
+
| T1 | Bundle as-is — pure guidance, sandbox-safe |
|
|
46
|
+
| T2 | Bundle with prepended sandbox note + package-internal path-swap |
|
|
47
|
+
| T3-S | Same as T2; optional script calls degrade gracefully on cloud |
|
|
48
|
+
| T3-H | **Skipped** — Phase 2 cloud-aware variant required before bundling |
|
|
49
|
+
|
|
50
|
+
Cloud-side caps enforced by the builder: `description` ≤ 200 chars
|
|
51
|
+
(Claude.ai Web) with a 1024-char hard cap (Anthropic spec). The sandbox
|
|
52
|
+
note explains to the agent that `.agent-src/`, `agents/`, and `task …`
|
|
53
|
+
references are descriptive — the host has no filesystem access.
|
|
54
|
+
|
|
55
|
+
CI gate: `task ci-cloud-bundle` runs the builder in `--check` mode and
|
|
56
|
+
fails on any source-side violation, without producing artifacts.
|
|
57
|
+
|
|
34
58
|
## What's inside
|
|
35
59
|
|
|
36
60
|
| Layer | Count | Purpose |
|
|
@@ -134,10 +158,13 @@ documented in
|
|
|
134
158
|
| **Cline** | ✅ | — | — | — | install.sh (symlinks) |
|
|
135
159
|
| **Windsurf** | ✅ | — | — | — | install.sh (concatenated) |
|
|
136
160
|
| **Gemini CLI** | ✅ | — | — | — | install.sh (symlink → AGENTS.md) |
|
|
161
|
+
| **Claude.ai Web / Skills API** | — | ✅ | — | — | `task build-cloud-bundles-all` → `dist/cloud/<skill>.zip` |
|
|
137
162
|
|
|
138
163
|
Skills use a `SKILL.md` format with YAML frontmatter, compatible with the
|
|
139
164
|
[Agent Skills](https://agentskills.io) community spec and with Claude Code's
|
|
140
|
-
Agent Skills specification.
|
|
165
|
+
Agent Skills specification. Cloud bundles produced by
|
|
166
|
+
`scripts/build_cloud_bundle.py` follow the same format with cloud-side
|
|
167
|
+
adjustments (description budget, sandbox note, package-internal path-swap).
|
|
141
168
|
|
|
142
169
|
---
|
|
143
170
|
|
package/docs/development.md
CHANGED
|
@@ -109,7 +109,7 @@ task tool-validate # Validate tool declarations
|
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
111
|
task install -- --target <dir> # Run the installer orchestrator on a target
|
|
112
|
-
task install-hooks # Install git hooks (pre-push sync check)
|
|
112
|
+
task install-hooks # Install git hooks (pre-commit marketplace lint, pre-push sync check, chat-history bridges)
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
---
|
package/docs/getting-started.md
CHANGED
|
@@ -28,6 +28,7 @@ so you can run a few package scripts without installing `go-task`,
|
|
|
28
28
|
```bash
|
|
29
29
|
./agent-config mcp:render # sync MCP server config into .cursor/ and .windsurf/
|
|
30
30
|
./agent-config roadmap:progress # regenerate agents/roadmaps-progress.md
|
|
31
|
+
./agent-config hooks:install # install pre-commit roadmap-progress hook (opt-in)
|
|
31
32
|
./agent-config first-run # guided setup
|
|
32
33
|
./agent-config help # full command list
|
|
33
34
|
```
|
|
@@ -98,7 +99,7 @@ Your agent is now:
|
|
|
98
99
|
- **Respecting your codebase** — no conflicting patterns
|
|
99
100
|
- **Following standards** — consistent code quality
|
|
100
101
|
|
|
101
|
-
This is enforced automatically by
|
|
102
|
+
This is enforced automatically by 53 rules. No configuration needed.
|
|
102
103
|
|
|
103
104
|
---
|
|
104
105
|
|
|
@@ -136,7 +137,7 @@ Your agent now understands slash commands:
|
|
|
136
137
|
| `/chat-history-resume` | Recover context after a crashed or switched session |
|
|
137
138
|
| `/chat-history-clear` | Wipe the chat-history log (with confirmation) |
|
|
138
139
|
|
|
139
|
-
→ [Browse all
|
|
140
|
+
→ [Browse all 77 commands](../.agent-src/commands/)
|
|
140
141
|
|
|
141
142
|
---
|
|
142
143
|
|
package/docs/installation.md
CHANGED
|
@@ -149,10 +149,24 @@ auggie plugin install agent-config@event4u-agent-config
|
|
|
149
149
|
|
|
150
150
|
### Claude Code
|
|
151
151
|
|
|
152
|
+
Two equivalent paths — pick whichever surface you're already in:
|
|
153
|
+
|
|
152
154
|
```bash
|
|
155
|
+
# From your shell (CLI)
|
|
153
156
|
claude plugin install agent-config@event4u-agent-config
|
|
154
157
|
```
|
|
155
158
|
|
|
159
|
+
```text
|
|
160
|
+
# From inside Claude Code (slash command)
|
|
161
|
+
/plugin marketplace add event4u-app/agent-config
|
|
162
|
+
/plugin install agent-config@event4u-agent-config
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
The slash-command path is the canonical Claude Code Plugin Marketplace
|
|
166
|
+
flow ([reference](https://docs.claude.com/en/docs/claude-code/plugin-marketplaces)).
|
|
167
|
+
It pulls the repo via git-clone and reads the skills directly from
|
|
168
|
+
`.claude/skills/` — no separate ZIP download.
|
|
169
|
+
|
|
156
170
|
### Copilot CLI
|
|
157
171
|
|
|
158
172
|
```bash
|
|
@@ -185,6 +199,78 @@ copilot marketplace add event4u-app/agent-config
|
|
|
185
199
|
|
|
186
200
|
---
|
|
187
201
|
|
|
202
|
+
## Cloud / Hosted agent installation
|
|
203
|
+
|
|
204
|
+
For agents running outside your local machine — Claude.ai Web Skills
|
|
205
|
+
and Linear AI — the package's local installer cannot run. Instead,
|
|
206
|
+
the package ships pre-built artefacts you upload or paste into the
|
|
207
|
+
hosted platform's own configuration surface.
|
|
208
|
+
|
|
209
|
+
These channels are **additional** to project- and plugin-installed
|
|
210
|
+
modes; use them when the agent loop runs on the platform's servers,
|
|
211
|
+
not on your machine.
|
|
212
|
+
|
|
213
|
+
### Claude.ai Web (Skills UI)
|
|
214
|
+
|
|
215
|
+
Claude.ai Web supports Skills via manual ZIP upload through the Skills
|
|
216
|
+
UI. The package builds one ZIP per cloud-eligible skill.
|
|
217
|
+
|
|
218
|
+
1. **Build the bundles**
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
task build-cloud-bundles-all
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Output: `dist/cloud/<skill>.zip` per eligible skill. Skills marked
|
|
225
|
+
`cloud_safe: noop` (filesystem-bound, e.g. `chat-history`,
|
|
226
|
+
`file-editor`) are bundled with a stripped no-op variant; T3-H
|
|
227
|
+
skills (hard filesystem dependencies) are excluded by default.
|
|
228
|
+
See [`scripts/audit_cloud_compatibility.py`](../scripts/audit_cloud_compatibility.py)
|
|
229
|
+
for per-skill tier and [`scripts/build_cloud_bundle.py`](../scripts/build_cloud_bundle.py)
|
|
230
|
+
for the gating logic.
|
|
231
|
+
|
|
232
|
+
2. **Upload to Claude.ai**
|
|
233
|
+
|
|
234
|
+
- Open Claude.ai → Skills → Upload Skill
|
|
235
|
+
- Select one bundle from `dist/cloud/`
|
|
236
|
+
- Repeat per skill you want available
|
|
237
|
+
|
|
238
|
+
3. **Verify** — open a fresh Claude.ai conversation and confirm the
|
|
239
|
+
skill appears in the Skills picker.
|
|
240
|
+
|
|
241
|
+
### Linear AI (Codegen, Charlie, …)
|
|
242
|
+
|
|
243
|
+
Linear AI agents read free-form guidance from Linear's workspace
|
|
244
|
+
settings; there is no plugin or upload mechanism. The package ships
|
|
245
|
+
a pre-built digest split into three layers, paste each layer into
|
|
246
|
+
the matching Linear field.
|
|
247
|
+
|
|
248
|
+
1. **Build the digest**
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
task build-linear-digest
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Output:
|
|
255
|
+
- `dist/linear/workspace.md` — universal coding posture (T1 rules)
|
|
256
|
+
- `dist/linear/team.md` — framework-specific guidance (Laravel, …)
|
|
257
|
+
- `dist/linear/personal.md` — stub for individual overrides
|
|
258
|
+
|
|
259
|
+
2. **Paste into Linear**
|
|
260
|
+
|
|
261
|
+
- Open Linear → Settings → Agents → Additional guidance
|
|
262
|
+
- Paste `workspace.md` into the workspace-level field
|
|
263
|
+
- Paste `team.md` into your team's field (if framework-specific)
|
|
264
|
+
- Leave `personal.md` empty unless you have personal overrides
|
|
265
|
+
|
|
266
|
+
3. **Per-layer rationale** — see
|
|
267
|
+
[`agents/contexts/linear-ai-three-layers.md`](../agents/contexts/linear-ai-three-layers.md)
|
|
268
|
+
for the split rationale and
|
|
269
|
+
[`agents/contexts/linear-ai-rules-inclusion.md`](../agents/contexts/linear-ai-rules-inclusion.md)
|
|
270
|
+
for which rules go where.
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
188
274
|
## Alternative install methods
|
|
189
275
|
|
|
190
276
|
These are fallbacks when the recommended paths above don't work.
|
package/docs/showcase.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Showcase — see the package in action
|
|
2
|
+
|
|
3
|
+
Five copy-paste prompts that demonstrate what `event4u/agent-config`
|
|
4
|
+
actually changes about an agent's behavior. Each example pairs a
|
|
5
|
+
**prompt** with the **expected behavior** and the **rule or skill
|
|
6
|
+
file** the behavior is anchored in — so every claim here is traceable
|
|
7
|
+
back to a file you can read.
|
|
8
|
+
|
|
9
|
+
These are not transcripts. They describe what a compliant agent does
|
|
10
|
+
(and refuses to do) when the package is installed. If your agent
|
|
11
|
+
does something else, the rule is either not loaded or being violated
|
|
12
|
+
— either is reproducible and fixable.
|
|
13
|
+
|
|
14
|
+
> Not installed yet? → [Installation](installation.md) ·
|
|
15
|
+
> Settings reference → [`.agent-settings.yml` template](../.agent-src/templates/agent-settings.md)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 1. Autonomy on vs. off — same prompt, two outcomes
|
|
20
|
+
|
|
21
|
+
Prove that `personal.autonomy` actually suppresses trivial workflow
|
|
22
|
+
questions.
|
|
23
|
+
|
|
24
|
+
**Setup:** open `.agent-settings.yml`, set `personal.autonomy: on`
|
|
25
|
+
(then later `off` for the second run).
|
|
26
|
+
|
|
27
|
+
**Prompt** (run twice, once per setting):
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
Roadmap "phase-1.md" hat 4 Steps. Arbeite Schritt für Schritt durch.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Expected behavior — `autonomy: on`:**
|
|
34
|
+
|
|
35
|
+
- Agent picks the next unchecked step itself, no "Step 2 oder 3?"
|
|
36
|
+
- Runs it, marks `[x]`, moves on.
|
|
37
|
+
- Only stops on blocking decisions: scope expansion, security-sensitive
|
|
38
|
+
paths, ambiguous requirements (those still get asked, autonomy
|
|
39
|
+
doesn't override them).
|
|
40
|
+
- Never asks about committing — see Example 2.
|
|
41
|
+
|
|
42
|
+
**Expected behavior — `autonomy: off`:**
|
|
43
|
+
|
|
44
|
+
- Agent confirms each step before executing.
|
|
45
|
+
- Surfaces "Soll ich jetzt Step 2 starten?" and waits.
|
|
46
|
+
|
|
47
|
+
**Anchored in:** [`.agent-src/rules/autonomous-execution.md`](../.agent-src/rules/autonomous-execution.md)
|
|
48
|
+
(trivial vs. blocking decisions, opt-in detection).
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 2. Explicit commit grant — never automatic, never asked
|
|
53
|
+
|
|
54
|
+
Prove that committing is gated by **explicit instruction**, never
|
|
55
|
+
inferred from "we reached a clean stopping point".
|
|
56
|
+
|
|
57
|
+
**Setup:** any state with uncommitted changes; `personal.autonomy: on`.
|
|
58
|
+
|
|
59
|
+
**Prompt A** (no commit grant):
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
Implementiere Feature X und teste es.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Expected behavior:**
|
|
66
|
+
|
|
67
|
+
- Agent implements, runs tests, reports done.
|
|
68
|
+
- Does **not** commit. Does **not** ask "soll ich committen?".
|
|
69
|
+
|
|
70
|
+
**Prompt B** (explicit grant):
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
Implementiere Feature X, teste es, und commit das Ergebnis.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Expected behavior:**
|
|
77
|
+
|
|
78
|
+
- Agent implements, tests, **then commits** in logical chunks
|
|
79
|
+
(Conventional Commits format, no confirmation per chunk).
|
|
80
|
+
|
|
81
|
+
**Same pattern applies to push, merge, branch creation, PR ops, tags**
|
|
82
|
+
— allowed on explicit instruction, never automatic, never asked. The
|
|
83
|
+
agent doesn't volunteer "soll ich pushen?"; you say "push das" or
|
|
84
|
+
nothing happens.
|
|
85
|
+
|
|
86
|
+
**Anchored in:** [`.agent-src/rules/commit-policy.md`](../.agent-src/rules/commit-policy.md)
|
|
87
|
+
(four exceptions, never-ask iron law) ·
|
|
88
|
+
[`.agent-src/rules/scope-control.md`](../.agent-src/rules/scope-control.md)
|
|
89
|
+
(git operations permission gate).
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 3. Vague request — agent asks instead of guessing
|
|
94
|
+
|
|
95
|
+
Prove that ambiguous requirements trigger a clarifying question with
|
|
96
|
+
numbered options, not a guess.
|
|
97
|
+
|
|
98
|
+
**Prompt:**
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
Add caching to this.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Expected behavior:**
|
|
105
|
+
|
|
106
|
+
- Agent does **not** pick a cache driver, scope, or invalidation
|
|
107
|
+
strategy on its own.
|
|
108
|
+
- Surfaces numbered options:
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
> 1. Redis — durchgehend, geteilt zwischen Workern
|
|
112
|
+
> 2. Array — Request-lokal, kein externes System
|
|
113
|
+
> 3. File — persistent ohne Redis-Dependency
|
|
114
|
+
|
|
115
|
+
**Empfehlung: 1 — Redis** — …
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- Recommendation line is mandatory (single-source iron law: exactly
|
|
119
|
+
one numbered recommendation, no inline `(recommended)` tag).
|
|
120
|
+
|
|
121
|
+
**Anchored in:** [`.agent-src/rules/ask-when-uncertain.md`](../.agent-src/rules/ask-when-uncertain.md)
|
|
122
|
+
(vague-request trigger table) ·
|
|
123
|
+
[`.agent-src/rules/user-interaction.md`](../.agent-src/rules/user-interaction.md)
|
|
124
|
+
(numbered-options + recommendation iron law).
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 4. "done" without verification — agent refuses
|
|
129
|
+
|
|
130
|
+
Prove that completion claims need **fresh evidence in this message**,
|
|
131
|
+
not "tests should pass".
|
|
132
|
+
|
|
133
|
+
**Setup:** any code change pending in the working tree.
|
|
134
|
+
|
|
135
|
+
**Prompt:**
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
Bist du fertig? Dann sag es und wir mergen.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Expected behavior:**
|
|
142
|
+
|
|
143
|
+
- Agent does **not** say "done", "ready", or "should be fine".
|
|
144
|
+
- Runs the targeted test command for the change in this turn.
|
|
145
|
+
- Runs the quality pipeline (PHPStan / linter / type-checker — whatever
|
|
146
|
+
the project uses) in this turn.
|
|
147
|
+
- Only after both produce green output does the agent claim
|
|
148
|
+
completion, and the claim cites the command output by reference.
|
|
149
|
+
- If verification fails, the agent reports the failure verbatim and
|
|
150
|
+
does not mask it with "kleinere Issues, behebe ich gleich".
|
|
151
|
+
|
|
152
|
+
**Bypass:** `break-glass: true` (production incident) narrows the
|
|
153
|
+
gate to a targeted test + smoke check + explicit list of skipped
|
|
154
|
+
validations — never skips it entirely.
|
|
155
|
+
|
|
156
|
+
**Anchored in:** [`.agent-src/rules/verify-before-complete.md`](../.agent-src/rules/verify-before-complete.md)
|
|
157
|
+
(iron law, claim → command mapping, break-glass reduction).
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 5. `/work "baue X"` — refine loop instead of blind code
|
|
162
|
+
|
|
163
|
+
Prove that free-form prompts go through a refinement step (acceptance
|
|
164
|
+
criteria, assumptions, confidence band) before the engine plans.
|
|
165
|
+
|
|
166
|
+
**Prompt:**
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
/work "baue eine API die User-Daten exportiert"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Expected behavior:**
|
|
173
|
+
|
|
174
|
+
- Agent does **not** start writing routes, controllers, or migrations.
|
|
175
|
+
- Reconstructs the prompt into:
|
|
176
|
+
- **Acceptance criteria** — what "done" looks like (e.g. "GET
|
|
177
|
+
/api/users/export returns CSV", "auth required", "rate-limited").
|
|
178
|
+
- **Assumptions** — what was inferred (format = CSV? scope = own
|
|
179
|
+
user only? all users for admins?).
|
|
180
|
+
- **Confidence band** — high / medium / low, with the gaps named.
|
|
181
|
+
- On low confidence, agent **blocks** and asks before any
|
|
182
|
+
implementation.
|
|
183
|
+
- Only on high (or user-confirmed medium) confidence does the engine
|
|
184
|
+
proceed to plan → implement → test → verify → report.
|
|
185
|
+
|
|
186
|
+
**Anchored in:** [`.agent-src/commands/work.md`](../.agent-src/commands/work.md)
|
|
187
|
+
(Option-A loop, confidence-band gate, no auto-git) ·
|
|
188
|
+
[`.agent-src/skills/refine-prompt/SKILL.md`](../.agent-src/skills/refine-prompt/SKILL.md)
|
|
189
|
+
(AC + assumption reconstruction).
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## More
|
|
194
|
+
|
|
195
|
+
The five examples above cover the load-bearing iron laws. The full
|
|
196
|
+
rule set lives in [`.agent-src/rules/`](../.agent-src/rules/) (browse
|
|
197
|
+
the `description:` line in each file's frontmatter to see when it
|
|
198
|
+
auto-triggers); the full skill catalog is in
|
|
199
|
+
[`docs/skills-catalog.md`](skills-catalog.md).
|
|
200
|
+
|
|
201
|
+
**Suggesting an example?** Open a PR adding a new section here. Same
|
|
202
|
+
shape: setup → prompt → expected behavior → anchor file. Keep claims
|
|
203
|
+
traceable; don't ship transcripts that drift the moment a rule
|
|
204
|
+
changes.
|