@event4u/agent-config 1.13.0 → 1.15.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 +4 -1
- 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 +7 -3
- 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 +6 -1
- package/.agent-src/commands/chat-history-resume.md +7 -2
- package/.agent-src/commands/chat-history.md +7 -2
- package/.agent-src/commands/check-current-md.md +137 -0
- package/.agent-src/commands/commit-in-chunks.md +118 -0
- package/.agent-src/commands/commit.md +4 -0
- package/.agent-src/commands/compress.md +37 -2
- 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 +5 -2
- 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 +33 -0
- package/.agent-src/commands/optimize-agents.md +4 -0
- package/.agent-src/commands/optimize-augmentignore.md +12 -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 +12 -7
- package/.agent-src/commands/review-changes.md +39 -8
- package/.agent-src/commands/review-routing.md +4 -0
- package/.agent-src/commands/roadmap-create.md +18 -0
- package/.agent-src/commands/roadmap-execute.md +14 -1
- package/.agent-src/commands/rule-compliance-audit.md +4 -0
- package/.agent-src/commands/set-cost-profile.md +11 -0
- package/.agent-src/commands/sync-agent-settings.md +12 -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 +6 -3
- 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 +64 -37
- package/.agent-src/rules/autonomous-execution.md +158 -0
- 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 +27 -4
- package/.agent-src/rules/command-suggestion.md +134 -0
- package/.agent-src/rules/commit-policy.md +109 -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 +85 -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 +159 -27
- package/.agent-src/rules/role-mode-adherence.md +1 -1
- package/.agent-src/rules/scope-control.md +42 -1
- package/.agent-src/rules/size-enforcement.md +2 -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 +107 -51
- package/.agent-src/scripts/update_roadmap_progress.py +73 -9
- package/.agent-src/skills/blade-ui/SKILL.md +47 -3
- package/.agent-src/skills/command-routing/SKILL.md +32 -0
- package/.agent-src/skills/command-writing/SKILL.md +52 -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 +202 -0
- package/.agent-src/skills/fe-design/SKILL.md +78 -61
- package/.agent-src/skills/file-editor/SKILL.md +9 -0
- 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 +49 -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 +32 -28
- package/.agent-src/skills/roadmap-management/SKILL.md +24 -11
- package/.agent-src/skills/rule-writing/SKILL.md +23 -1
- package/.agent-src/skills/skill-writing/SKILL.md +3 -5
- package/.agent-src/skills/upstream-contribute/SKILL.md +3 -3
- 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/roadmaps.md +11 -4
- 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 +1 -1
- 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 +195 -0
- package/.agent-src/templates/scripts/work_engine/cli_args.py +116 -0
- package/.agent-src/templates/scripts/{implement_ticket → work_engine}/delivery_state.py +10 -3
- 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 +3 -3
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/memory.py +2 -2
- package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/plan.py +2 -2
- 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 +37 -5
- 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/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/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/input_builders.py +163 -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 +231 -0
- package/.agent-src/templates/scripts/{implement_ticket → work_engine}/persona_policy.py +1 -1
- 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/.agent-src/templates/scripts/work_engine/state_io.py +202 -0
- package/.claude-plugin/marketplace.json +105 -2
- package/AGENTS.md +38 -8
- package/CHANGELOG.md +609 -0
- package/README.md +136 -14
- package/config/agent-settings.template.yml +45 -0
- package/config/gitignore-block.txt +4 -0
- package/docs/MIGRATION.md +122 -0
- package/docs/architecture.md +111 -35
- package/docs/contracts/STABILITY.md +95 -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/rule-interactions.md +107 -0
- package/docs/contracts/rule-interactions.yml +142 -0
- package/docs/contracts/ui-stack-extension.md +236 -0
- package/docs/contracts/ui-track-flow.md +338 -0
- package/docs/development.md +1 -1
- package/docs/getting-started.md +3 -3
- package/docs/installation.md +124 -2
- package/docs/migrations/commands-1.15.0.md +112 -0
- package/docs/showcase.md +204 -0
- package/docs/ui-track-mental-model.md +121 -0
- package/package.json +1 -1
- package/scripts/agent-config +199 -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 +38 -0
- package/scripts/check_public_links.py +185 -0
- package/scripts/check_references.py +1 -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/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/migrate_command_suggestions.py +151 -0
- package/scripts/release.py +297 -64
- package/scripts/schemas/command.schema.json +41 -0
- package/scripts/skill_linter.py +81 -0
- package/scripts/sync_agent_settings.py +42 -12
- package/scripts/update_counts.py +10 -0
- package/templates/consumer-settings/augment-cli-hooks.json +54 -0
- package/templates/consumer-settings/claude-settings.json +55 -1
- package/.agent-src/rules/chat-history.md +0 -171
- 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/docs/installation.md
CHANGED
|
@@ -23,6 +23,23 @@ No Task, no Make, no build tools required for installation.
|
|
|
23
23
|
| **Project-installed** (recommended) | Teams, shared standards | Repository-wide |
|
|
24
24
|
| **Plugin-installed** | Individual users, global use | User-wide |
|
|
25
25
|
|
|
26
|
+
> **All paths on this page are still supported.** The labels
|
|
27
|
+
> (`advanced` / `experimental` / `staged`) describe how prominent the
|
|
28
|
+
> path is in our recommendation order, not its support status.
|
|
29
|
+
> Composer + npm are the default; everything else stays shipped and
|
|
30
|
+
> tested. Nothing on this page is being removed in 1.15.0 — the
|
|
31
|
+
> reorder simply marks which paths get the most maintenance attention
|
|
32
|
+
> and which we keep as fallbacks. See R9 in
|
|
33
|
+
> [`agents/roadmaps/archive/road-to-post-pr29-optimize.md`](../agents/roadmaps/archive/road-to-post-pr29-optimize.md)
|
|
34
|
+
> for the rationale.
|
|
35
|
+
|
|
36
|
+
| Label | Meaning | Examples |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| (no label) | Primary path — first-class, fully supported | Composer, npm, Augment / Claude Code / Copilot CLI plugins |
|
|
39
|
+
| `advanced` | Supported fallback — works, expects familiarity with the toolchain | Git submodule, manual clone, VS Code Git URL |
|
|
40
|
+
| `experimental` | Shipped but evolving — interface may shift between minor releases | Claude.ai Web Skills UI |
|
|
41
|
+
| `staged` | Shipped, narrow surface area — kept for users who already use the platform | Linear AI workspace guidance |
|
|
42
|
+
|
|
26
43
|
---
|
|
27
44
|
|
|
28
45
|
## Project-installed mode (recommended for teams)
|
|
@@ -149,10 +166,24 @@ auggie plugin install agent-config@event4u-agent-config
|
|
|
149
166
|
|
|
150
167
|
### Claude Code
|
|
151
168
|
|
|
169
|
+
Two equivalent paths — pick whichever surface you're already in:
|
|
170
|
+
|
|
152
171
|
```bash
|
|
172
|
+
# From your shell (CLI)
|
|
153
173
|
claude plugin install agent-config@event4u-agent-config
|
|
154
174
|
```
|
|
155
175
|
|
|
176
|
+
```text
|
|
177
|
+
# From inside Claude Code (slash command)
|
|
178
|
+
/plugin marketplace add event4u-app/agent-config
|
|
179
|
+
/plugin install agent-config@event4u-agent-config
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
The slash-command path is the canonical Claude Code Plugin Marketplace
|
|
183
|
+
flow ([reference](https://docs.claude.com/en/docs/claude-code/plugin-marketplaces)).
|
|
184
|
+
It pulls the repo via git-clone and reads the skills directly from
|
|
185
|
+
`.claude/skills/` — no separate ZIP download.
|
|
186
|
+
|
|
156
187
|
### Copilot CLI
|
|
157
188
|
|
|
158
189
|
```bash
|
|
@@ -185,9 +216,100 @@ copilot marketplace add event4u-app/agent-config
|
|
|
185
216
|
|
|
186
217
|
---
|
|
187
218
|
|
|
188
|
-
##
|
|
219
|
+
## Cloud / Hosted agent installation
|
|
220
|
+
|
|
221
|
+
For agents running outside your local machine — Claude.ai Web Skills
|
|
222
|
+
and Linear AI — the package's local installer cannot run. Instead,
|
|
223
|
+
the package ships pre-built artefacts you upload or paste into the
|
|
224
|
+
hosted platform's own configuration surface.
|
|
225
|
+
|
|
226
|
+
These channels are **additional** to project- and plugin-installed
|
|
227
|
+
modes; use them when the agent loop runs on the platform's servers,
|
|
228
|
+
not on your machine.
|
|
229
|
+
|
|
230
|
+
> Both cloud channels remain shipped and tested. The labels reflect
|
|
231
|
+
> recommendation prominence, not support status — see the label table
|
|
232
|
+
> at the top of this page.
|
|
233
|
+
|
|
234
|
+
### Claude.ai Web (Skills UI) — `experimental`
|
|
235
|
+
|
|
236
|
+
> `experimental` — shipped, still tested, but the upload surface and
|
|
237
|
+
> bundle format may shift between minor releases as Claude.ai's Skills
|
|
238
|
+
> UI evolves. Pin to a release tag if you depend on a specific bundle
|
|
239
|
+
> shape.
|
|
240
|
+
|
|
241
|
+
Claude.ai Web supports Skills via manual ZIP upload through the Skills
|
|
242
|
+
UI. The package builds one ZIP per cloud-eligible skill.
|
|
243
|
+
|
|
244
|
+
1. **Build the bundles**
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
task build-cloud-bundles-all
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Output: `dist/cloud/<skill>.zip` per eligible skill. Skills marked
|
|
251
|
+
`cloud_safe: noop` (filesystem-bound, e.g. `chat-history`,
|
|
252
|
+
`file-editor`) are bundled with a stripped no-op variant; T3-H
|
|
253
|
+
skills (hard filesystem dependencies) are excluded by default.
|
|
254
|
+
See [`scripts/audit_cloud_compatibility.py`](../scripts/audit_cloud_compatibility.py)
|
|
255
|
+
for per-skill tier and [`scripts/build_cloud_bundle.py`](../scripts/build_cloud_bundle.py)
|
|
256
|
+
for the gating logic.
|
|
257
|
+
|
|
258
|
+
2. **Upload to Claude.ai**
|
|
259
|
+
|
|
260
|
+
- Open Claude.ai → Skills → Upload Skill
|
|
261
|
+
- Select one bundle from `dist/cloud/`
|
|
262
|
+
- Repeat per skill you want available
|
|
263
|
+
|
|
264
|
+
3. **Verify** — open a fresh Claude.ai conversation and confirm the
|
|
265
|
+
skill appears in the Skills picker.
|
|
266
|
+
|
|
267
|
+
### Linear AI (Codegen, Charlie, …) — `staged`
|
|
268
|
+
|
|
269
|
+
> `staged` — shipped, narrow surface area, kept primarily for users
|
|
270
|
+
> already operating inside Linear. Iteration cadence is slower than
|
|
271
|
+
> the project- and plugin-installed paths; major changes land first
|
|
272
|
+
> on Composer + npm and propagate to the Linear digest in a follow-up.
|
|
273
|
+
|
|
274
|
+
Linear AI agents read free-form guidance from Linear's workspace
|
|
275
|
+
settings; there is no plugin or upload mechanism. The package ships
|
|
276
|
+
a pre-built digest split into three layers, paste each layer into
|
|
277
|
+
the matching Linear field.
|
|
278
|
+
|
|
279
|
+
1. **Build the digest**
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
task build-linear-digest
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Output:
|
|
286
|
+
- `dist/linear/workspace.md` — universal coding posture (T1 rules)
|
|
287
|
+
- `dist/linear/team.md` — framework-specific guidance (Laravel, …)
|
|
288
|
+
- `dist/linear/personal.md` — stub for individual overrides
|
|
289
|
+
|
|
290
|
+
2. **Paste into Linear**
|
|
291
|
+
|
|
292
|
+
- Open Linear → Settings → Agents → Additional guidance
|
|
293
|
+
- Paste `workspace.md` into the workspace-level field
|
|
294
|
+
- Paste `team.md` into your team's field (if framework-specific)
|
|
295
|
+
- Leave `personal.md` empty unless you have personal overrides
|
|
296
|
+
|
|
297
|
+
3. **Per-layer rationale** — see
|
|
298
|
+
[`docs/contracts/linear-ai-three-layers.md`](contracts/linear-ai-three-layers.md)
|
|
299
|
+
for the split rationale and
|
|
300
|
+
[`docs/contracts/linear-ai-rules-inclusion.md`](contracts/linear-ai-rules-inclusion.md)
|
|
301
|
+
for which rules go where.
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Alternative install methods — `advanced`
|
|
189
306
|
|
|
190
|
-
|
|
307
|
+
> `advanced` — supported fallbacks for users comfortable driving the
|
|
308
|
+
> orchestrator directly. They share the same `scripts/install` entry
|
|
309
|
+
> point as Composer and npm; the only difference is how the package
|
|
310
|
+
> source ends up on disk. Pick these when you cannot use Composer or
|
|
311
|
+
> npm (e.g. a polyglot repo without either, or a CI runner that
|
|
312
|
+
> already vendors the package via submodule).
|
|
191
313
|
|
|
192
314
|
### Git Submodule
|
|
193
315
|
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Command migration — 1.15.0
|
|
2
|
+
|
|
3
|
+
> **Audience:** consumers of `event4u/agent-config` upgrading from
|
|
4
|
+
> `1.14.x` to `1.15.0`.
|
|
5
|
+
> **Authoritative spec:** [`docs/contracts/command-clusters.md`](../contracts/command-clusters.md).
|
|
6
|
+
|
|
7
|
+
`1.15.0` collapses 15 atomic commands into 3 verb clusters
|
|
8
|
+
(`fix`, `optimize`, `feature`) to reduce command-palette
|
|
9
|
+
fragmentation. **Old commands keep working through the entire
|
|
10
|
+
1.15.x cycle**; they emit a one-line deprecation warning on
|
|
11
|
+
invocation and are removed in `1.16.0`.
|
|
12
|
+
|
|
13
|
+
## Summary table
|
|
14
|
+
|
|
15
|
+
| Old command | New invocation | Removed in |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `/fix-ci` | `/fix ci` | 1.16.0 |
|
|
18
|
+
| `/fix-pr-comments` | `/fix pr` | 1.16.0 |
|
|
19
|
+
| `/fix-pr-bot-comments` | `/fix pr-bots` | 1.16.0 |
|
|
20
|
+
| `/fix-pr-developer-comments` | `/fix pr-developers` | 1.16.0 |
|
|
21
|
+
| `/fix-portability` | `/fix portability` | 1.16.0 |
|
|
22
|
+
| `/fix-references` | `/fix refs` | 1.16.0 |
|
|
23
|
+
| `/fix-seeder` | `/fix seeder` | 1.16.0 |
|
|
24
|
+
| `/optimize-agents` | `/optimize agents` | 1.16.0 |
|
|
25
|
+
| `/optimize-augmentignore` | `/optimize augmentignore` | 1.16.0 |
|
|
26
|
+
| `/optimize-rtk-filters` | `/optimize rtk` | 1.16.0 |
|
|
27
|
+
| `/optimize-skills` | `/optimize skills` | 1.16.0 |
|
|
28
|
+
| `/feature-explore` | `/feature explore` | 1.16.0 |
|
|
29
|
+
| `/feature-plan` | `/feature plan` | 1.16.0 |
|
|
30
|
+
| `/feature-refactor` | `/feature refactor` | 1.16.0 |
|
|
31
|
+
| `/feature-roadmap` | `/feature roadmap` | 1.16.0 |
|
|
32
|
+
|
|
33
|
+
## What changes for you
|
|
34
|
+
|
|
35
|
+
**Nothing breaks in 1.15.x.** Old slugs continue to work — the agent
|
|
36
|
+
recognises them, dispatches to the new cluster command, and prints
|
|
37
|
+
one warning line at the top of the reply:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
⚠️ /fix-ci is deprecated; use /fix ci instead.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Your existing custom skills, rules, or agents/roadmaps that
|
|
44
|
+
reference old slugs do not need to change in 1.15.x.** Update at
|
|
45
|
+
your own pace.
|
|
46
|
+
|
|
47
|
+
## What to update before 1.16.0
|
|
48
|
+
|
|
49
|
+
Search your project for any direct references to the old slugs and
|
|
50
|
+
swap them for the new invocation:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Find references in agents/, docs/, README, custom rules
|
|
54
|
+
rg -n '/(fix|optimize|feature)-[a-z-]+' \
|
|
55
|
+
agents/ docs/ README.md AGENTS.md .github/ 2>/dev/null
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Common spots:
|
|
59
|
+
|
|
60
|
+
- `agents/roadmaps/*.md` — roadmap steps that name commands
|
|
61
|
+
- `agents/contexts/*.md` — context docs cross-linking commands
|
|
62
|
+
- Custom skills/rules under `.augment/` overrides
|
|
63
|
+
- Internal team docs / runbooks / onboarding pages
|
|
64
|
+
|
|
65
|
+
## Why this changed
|
|
66
|
+
|
|
67
|
+
The atomic-command surface had grown to 77 commands by 1.14.0. Three
|
|
68
|
+
prefix families (`fix-*`, `optimize-*`, `feature-*`) accounted for 15
|
|
69
|
+
of those — same verb, same invocation pattern, only the noun
|
|
70
|
+
differed. Collapsing the families into clusters:
|
|
71
|
+
|
|
72
|
+
- Reduces palette noise (15 → 3 top-level entries).
|
|
73
|
+
- Makes new sub-commands additive (`/fix tests` ships without a new
|
|
74
|
+
top-level slug).
|
|
75
|
+
- Holds the line: `scripts/lint_no_new_atomic_commands.py` fails CI
|
|
76
|
+
if a new atomic command lands without a `cluster:` field declared
|
|
77
|
+
in [`docs/contracts/command-clusters.md`](../contracts/command-clusters.md).
|
|
78
|
+
|
|
79
|
+
## Phase 2 (deferred)
|
|
80
|
+
|
|
81
|
+
A second wave of collapses (`chat-history`, `agents`, `memory`,
|
|
82
|
+
`roadmap`, `module`, `tests`, `context`, `override`, `copilot-agents`,
|
|
83
|
+
`commit`, `judge`, `create-pr`) is scheduled after 1.15.0 ships and
|
|
84
|
+
the deprecation cycle for Phase 1 closes. Tracked in
|
|
85
|
+
[`agents/roadmaps/road-to-governance-cleanup.md`](../../agents/roadmaps/road-to-governance-cleanup.md)
|
|
86
|
+
§ F2.
|
|
87
|
+
|
|
88
|
+
## Related rule split — `chat-history` (post-1.15.0)
|
|
89
|
+
|
|
90
|
+
The monolithic `rules/chat-history.md` was split into three sibling
|
|
91
|
+
`always` rules in the post-1.15.0 optimization phase:
|
|
92
|
+
|
|
93
|
+
- [`chat-history-ownership`](../../.agent-src/rules/chat-history-ownership.md) — sole owner of file I/O + first-turn handshake.
|
|
94
|
+
- [`chat-history-cadence`](../../.agent-src/rules/chat-history-cadence.md) — when to persist (SessionStart / StepEnd / append boundaries).
|
|
95
|
+
- [`chat-history-visibility`](../../.agent-src/rules/chat-history-visibility.md) — heartbeat marker contract for user-facing reporting.
|
|
96
|
+
|
|
97
|
+
Decision record: [`docs/contracts/adr-chat-history-split.md`](../contracts/adr-chat-history-split.md).
|
|
98
|
+
Cross-references in commands and contexts now point to
|
|
99
|
+
`chat-history-ownership` as the entry point.
|
|
100
|
+
|
|
101
|
+
## Rollback
|
|
102
|
+
|
|
103
|
+
If a deprecation warning blocks tooling that screen-scrapes agent
|
|
104
|
+
output, suppress it for the 1.15.x cycle by setting
|
|
105
|
+
`commands.deprecation_warnings: false` in `.agent-settings.yml`.
|
|
106
|
+
The setting disappears in 1.16.0 along with the shims.
|
|
107
|
+
|
|
108
|
+
## See also
|
|
109
|
+
|
|
110
|
+
- [`docs/contracts/command-clusters.md`](../contracts/command-clusters.md) — locked cluster spec.
|
|
111
|
+
- [`docs/contracts/STABILITY.md`](../contracts/STABILITY.md) — public-surface stability tiers.
|
|
112
|
+
- [`agents/roadmaps/archive/road-to-post-pr29-optimize.md`](../../agents/roadmaps/archive/road-to-post-pr29-optimize.md) — P0.8 anchor for this migration.
|
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.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: stable
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# UI Track — Mental Model (1 page)
|
|
6
|
+
|
|
7
|
+
> **Audience:** anyone driving `/work` or `/implement-ticket` on a UI-shaped
|
|
8
|
+
> prompt, or reading code that touches `state.directive_set`.
|
|
9
|
+
> **Not a contract.** For shapes, schemas, and slot wiring see
|
|
10
|
+
> [`ui-track-flow.md`](contracts/ui-track-flow.md) and
|
|
11
|
+
> [`adr-product-ui-track.md`](contracts/adr-product-ui-track.md).
|
|
12
|
+
> **Not a roadmap.** Phased delivery lives in
|
|
13
|
+
> [`road-to-product-ui-track.md`](../agents/roadmaps/archive/road-to-product-ui-track.md)
|
|
14
|
+
> and [`road-to-visual-review-loop.md`](../agents/roadmaps/archive/road-to-visual-review-loop.md).
|
|
15
|
+
> This page is the picture you keep in your head while the engine runs.
|
|
16
|
+
|
|
17
|
+
## The three (+1) directive sets
|
|
18
|
+
|
|
19
|
+
| Set | Shape | Halt budget |
|
|
20
|
+
|---|---|---:|
|
|
21
|
+
| `backend` | `refine → memory → analyze → plan → implement → test → verify → report` | depends on confidence band |
|
|
22
|
+
| `ui` | `audit → design → apply → review → polish → report` | **2** (audit pick + design sign-off) |
|
|
23
|
+
| `ui-trivial` | `refine → apply → test → report` | **0** on the happy path |
|
|
24
|
+
| `mixed` | `refine → memory → analyze → contract → ui → stitch → verify → report` | inherits both |
|
|
25
|
+
|
|
26
|
+
The first three are sibling routes; `mixed` stitches `backend` and `ui`
|
|
27
|
+
in one envelope. The dispatcher picks one and refuses to switch
|
|
28
|
+
mid-flight.
|
|
29
|
+
|
|
30
|
+
## When to pick which
|
|
31
|
+
|
|
32
|
+
| Signal | Set |
|
|
33
|
+
|---|---|
|
|
34
|
+
| No UI keywords, no UI envelope, prompt edits services / migrations / tests / config | `backend` |
|
|
35
|
+
| New component / screen / partial; "improve this dashboard"; "build a settings panel"; major edit to a screen | `ui` |
|
|
36
|
+
| Bounded edit, **provably** ≤ 1 file, ≤ 5 changed lines, no new component, no new state, no new dependency | `ui-trivial` |
|
|
37
|
+
| One prompt that adds a backend endpoint **and** the screen that consumes it | `mixed` |
|
|
38
|
+
|
|
39
|
+
The classifier picks; the agent does not override the pick silently.
|
|
40
|
+
A misclassified `ui-trivial` that grows during edit must reclassify
|
|
41
|
+
**loudly** (stop, restart at `audit`) — never quietly upgrade in place.
|
|
42
|
+
|
|
43
|
+
## What the agent must never do
|
|
44
|
+
|
|
45
|
+
1. **Skip the audit.** No new component, screen, or partial without
|
|
46
|
+
`state.ui_audit` populated (or `greenfield_decision` recorded).
|
|
47
|
+
Defense-in-depth: dispatcher refuses *and* `ui-audit-before-build`
|
|
48
|
+
refuses, even when the engine is not in the loop.
|
|
49
|
+
2. **Render the UI.** The engine never opens a browser, never takes a
|
|
50
|
+
screenshot, never runs axe. Rendering and a11y scanning happen
|
|
51
|
+
out-of-process; the engine consumes the `preview_envelope` /
|
|
52
|
+
`a11y` envelope written by the skill.
|
|
53
|
+
3. **Edit microcopy.** The design brief is **locked**. `apply` reads
|
|
54
|
+
strings verbatim. `<placeholder>`, `lorem`, `todo:`, `tbd`, `xxx`
|
|
55
|
+
are rejected at the producer (design) **and** the consumer (apply).
|
|
56
|
+
4. **Loop polish indefinitely.** Hard ceiling is 2 rounds, +1 with
|
|
57
|
+
the explicit Extend pick (one-shot, never returns). Round 4 is
|
|
58
|
+
rejected on disk regardless of flags.
|
|
59
|
+
5. **Confuse "ship as-is" with "review clean".** `review_clean=False`
|
|
60
|
+
plus `findings=[]` is a malformed envelope, not a green light.
|
|
61
|
+
|
|
62
|
+
## Where each set stops
|
|
63
|
+
|
|
64
|
+
| Set | Stops cleanly when … | Stops with a halt when … |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| `ui` | `report` written; design brief + audit + apply + review + polish all `SUCCESS` | audit ambiguous · greenfield decision missing · design unconfirmed · review dirty at ceiling · a11y violation un-accepted · preview render failed |
|
|
67
|
+
| `ui-trivial` | `report` written; classifier preconditions held throughout | preconditions fail mid-flight → reclassify to `ui` (loud halt) |
|
|
68
|
+
| `mixed` | `stitch` joins both subtrees; `verify` + `report` clean | either subtree halts → mixed waits, never auto-completes the other |
|
|
69
|
+
|
|
70
|
+
## What "audit" actually means
|
|
71
|
+
|
|
72
|
+
A non-empty `state.ui_audit` carrying **at least one of**:
|
|
73
|
+
|
|
74
|
+
- `components_found` — `[{path, name, kind, similarity?}]` from
|
|
75
|
+
[`existing-ui-audit`](../.agent-src/skills/existing-ui-audit/SKILL.md).
|
|
76
|
+
- `greenfield: true` plus `greenfield_decision ∈ {scaffold, bare, external_reference}`.
|
|
77
|
+
- Legacy `components` alias — same shape.
|
|
78
|
+
|
|
79
|
+
Empty dict, `null`, or a dict without those keys is **not** an audit.
|
|
80
|
+
The gate fires; the dispatcher emits `@agent-directive: existing-ui-audit`
|
|
81
|
+
instead of advancing.
|
|
82
|
+
|
|
83
|
+
## What "design locked" actually means
|
|
84
|
+
|
|
85
|
+
The brief carries `layout`, `components`, `states`, `microcopy`,
|
|
86
|
+
`a11y`. State coverage requires `empty`, `loading`, `error`, `success`,
|
|
87
|
+
`disabled`. `apply` does not re-decide microcopy — it copies strings.
|
|
88
|
+
"The button label feels off" is a **new** design pass, not a polish
|
|
89
|
+
fix.
|
|
90
|
+
|
|
91
|
+
## Polish termination — subjective vs objective
|
|
92
|
+
|
|
93
|
+
| Findings at ceiling | Halt branch | User options |
|
|
94
|
+
|---|---|---|
|
|
95
|
+
| Non-a11y only | `polish_ceiling_reached` | ship as-is · abort · hand off |
|
|
96
|
+
| Includes a11y violation | `polish_a11y_blocking` | extend (one-shot, sets `extension_used=True`) · accept (rule ids land in `accepted_violations`) · abort |
|
|
97
|
+
|
|
98
|
+
Pre-existing a11y violations recorded in `state.ui_audit.a11y_baseline`
|
|
99
|
+
stay informational and never block.
|
|
100
|
+
|
|
101
|
+
## Stack dispatch (apply / review / polish)
|
|
102
|
+
|
|
103
|
+
`state.stack.frontend` decides which skill bundle runs:
|
|
104
|
+
|
|
105
|
+
| Stack | Skill bundle |
|
|
106
|
+
|---|---|
|
|
107
|
+
| `blade-livewire-flux` | `flux` + `livewire` + `blade-ui` |
|
|
108
|
+
| `react-shadcn` | `react-shadcn-ui` |
|
|
109
|
+
| `vue` | `ui-apply-vue` |
|
|
110
|
+
| `plain` (or unknown) | `blade-ui` + Tailwind base |
|
|
111
|
+
|
|
112
|
+
The directive set stays `ui`; only the skill changes. Adding a new
|
|
113
|
+
stack ships as a new skill bundle and a recipe — see
|
|
114
|
+
[`ui-stack-extension.md`](contracts/ui-stack-extension.md).
|
|
115
|
+
|
|
116
|
+
## See also
|
|
117
|
+
|
|
118
|
+
- [`adr-product-ui-track.md`](contracts/adr-product-ui-track.md) — *why* this shape.
|
|
119
|
+
- [`ui-track-flow.md`](contracts/ui-track-flow.md) — slot-by-slot contract.
|
|
120
|
+
- [`ui-stack-extension.md`](contracts/ui-stack-extension.md) — adding a stack.
|
|
121
|
+
- [`ui-audit-before-build`](../.agent-src/rules/ui-audit-before-build.md) — the always-on rule that mirrors the dispatcher gate.
|
package/package.json
CHANGED