@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/README.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Agent Config — Governed Agent System
|
|
2
2
|
|
|
3
|
+
> **agent-config is not a runtime, but it ships a deterministic orchestration contract / state machine for host agents.**
|
|
4
|
+
|
|
3
5
|
Teach your AI agents Laravel, PHP, testing, Git workflows, and **120+ more skills** — with quality guardrails built in.
|
|
4
6
|
|
|
5
7
|
> Your agent learns to write Laravel code, run tests, create PRs, fix CI — and follows your team's coding standards while doing it.
|
|
6
8
|
|
|
7
9
|
<p align="center">
|
|
8
|
-
<strong>
|
|
10
|
+
<strong>128 Skills</strong> · <strong>55 Rules</strong> · <strong>77 Commands</strong> · <strong>46 Guidelines</strong> · <strong>8 AI Tools</strong>
|
|
9
11
|
</p>
|
|
10
12
|
|
|
11
13
|
---
|
|
@@ -69,7 +71,8 @@ Install directly in your agent for global, cross-project use:
|
|
|
69
71
|
2. `"Add caching to this"` → watch: agent asks instead of guessing
|
|
70
72
|
3. `"Implement this feature"` → watch: agent respects your codebase
|
|
71
73
|
|
|
72
|
-
→ [Full getting started guide](docs/getting-started.md)
|
|
74
|
+
→ [Full getting started guide](docs/getting-started.md) ·
|
|
75
|
+
[More examples & expected behavior](docs/showcase.md)
|
|
73
76
|
|
|
74
77
|
### Optional: persistent agent memory
|
|
75
78
|
|
|
@@ -90,7 +93,7 @@ Install in the same project (dev-only):
|
|
|
90
93
|
npm install --save-dev @event4u/agent-memory
|
|
91
94
|
```
|
|
92
95
|
|
|
93
|
-
→ [Memory contract & retrieval API](
|
|
96
|
+
→ [Memory contract & retrieval API](docs/contracts/agent-memory-contract.md) (beta)
|
|
94
97
|
|
|
95
98
|
---
|
|
96
99
|
|
|
@@ -128,7 +131,69 @@ so you decide — never a silent guess. Persona comes from
|
|
|
128
131
|
(plan-only, skips implementation).
|
|
129
132
|
|
|
130
133
|
→ [Command reference](.agent-src/commands/implement-ticket.md) ·
|
|
131
|
-
[Flow contract](
|
|
134
|
+
[Flow contract](docs/contracts/implement-ticket-flow.md) (beta)
|
|
135
|
+
|
|
136
|
+
### Sibling entrypoint: `/work` (free-form prompt)
|
|
137
|
+
|
|
138
|
+
Same engine, different envelope. Use `/work` when you have a goal
|
|
139
|
+
but no ticket yet:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
/work add a CSV export endpoint to the audit-log controller
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
The first pass scores the prompt on five dimensions
|
|
146
|
+
(`goal_clarity`, `scope_boundary`, `ac_evidence`, `stack_data`,
|
|
147
|
+
`reversibility`) and routes on the resulting band:
|
|
148
|
+
|
|
149
|
+
| Band | Score | Engine action |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
| **high** | `≥ 0.8` | Silent proceed — reconstructed AC + assumptions land in the delivery report |
|
|
152
|
+
| **medium** | `0.5–0.79` | Halts with assumptions report; you confirm or edit before plan |
|
|
153
|
+
| **low** | `< 0.5` | Halts with **one** clarifying question on the weakest dimension |
|
|
154
|
+
|
|
155
|
+
After the band gate releases, the rest of the flow is identical
|
|
156
|
+
to `/implement-ticket`. UI-shaped prompts are routed through the
|
|
157
|
+
**product UI track** — see below.
|
|
158
|
+
|
|
159
|
+
→ [Command reference](.agent-src/commands/work.md) ·
|
|
160
|
+
[`refine-prompt` skill](.agent-src/skills/refine-prompt/SKILL.md) ·
|
|
161
|
+
[ADR](docs/contracts/adr-prompt-driven-execution.md)
|
|
162
|
+
|
|
163
|
+
**Pick which one:** ticket id or pasted ticket payload → `/implement-ticket`.
|
|
164
|
+
Free-form goal, no ticket → `/work`. The two share `.work-state.json`
|
|
165
|
+
and refuse to switch envelopes mid-flight.
|
|
166
|
+
|
|
167
|
+
### Product UI track
|
|
168
|
+
|
|
169
|
+
UI-shaped work (build a screen, improve a component, fix microcopy)
|
|
170
|
+
switches the engine to one of three directive sets:
|
|
171
|
+
|
|
172
|
+
| `directive_set` | When | Flow |
|
|
173
|
+
|---|---|---|
|
|
174
|
+
| `ui` | Non-trivial UI surface | `audit → design → apply → review → polish → report` |
|
|
175
|
+
| `ui-trivial` | Bounded edit (≤ 1 file, ≤ 5 changed lines) | `apply → test → report` |
|
|
176
|
+
| `mixed` | Backend + UI | `contract → ui → stitch` |
|
|
177
|
+
|
|
178
|
+
Four load-bearing properties: (1) **existing-UI audit is a hard gate** —
|
|
179
|
+
no `apply` without audit, enforced at dispatcher AND
|
|
180
|
+
[`ui-audit-before-build`](.agent-src/rules/ui-audit-before-build.md) rule;
|
|
181
|
+
(2) **design brief is locked microcopy** — placeholders (`<placeholder>`,
|
|
182
|
+
`Lorem`, `TODO:`) rejected at both ends; (3) **polish has a 2-round
|
|
183
|
+
ceiling**, then halts ship-as-is / abort / hand-off; (4) **a11y precedence**
|
|
184
|
+
— unresolved axe-core / pa11y violations must be fixed or explicitly
|
|
185
|
+
accepted before ship, regardless of round counter (one-shot extension
|
|
186
|
+
allowed). The engine never renders UI itself: rendering happens
|
|
187
|
+
out-of-process, the engine consumes a `preview_envelope` (status /
|
|
188
|
+
screenshots / findings) via a defined contract. Stack detection routes
|
|
189
|
+
(`composer.json` + `package.json`) to `blade-livewire-flux` /
|
|
190
|
+
`react-shadcn` / `vue` / `plain`; trivial path reclassifies loudly when
|
|
191
|
+
preconditions fail. Halt budget on the happy path is 2.
|
|
192
|
+
|
|
193
|
+
→ [Mental model](docs/ui-track-mental-model.md) (1 page — when each set, where it stops, what the agent must never do) ·
|
|
194
|
+
[Flow contract](docs/contracts/ui-track-flow.md) (beta) ·
|
|
195
|
+
[ADR](docs/contracts/adr-product-ui-track.md) ·
|
|
196
|
+
[Stack-extension recipe](docs/contracts/ui-stack-extension.md) (beta)
|
|
132
197
|
|
|
133
198
|
---
|
|
134
199
|
|
|
@@ -190,16 +255,16 @@ Start with **Rules + Skills**. Everything else is optional.
|
|
|
190
255
|
| Mode | What's active | Token overhead |
|
|
191
256
|
|---|---|---|
|
|
192
257
|
| **Minimal** (default) | Rules, Skills, Commands | Zero |
|
|
193
|
-
| **Balanced** | + Runtime
|
|
194
|
-
| **Full** | + Tool
|
|
258
|
+
| **Balanced** | + Runtime Dispatcher for skills that declare a shell command | Low |
|
|
259
|
+
| **Full** | + Tool Adapters (GitHub / Jira read-only, opt-in) | Moderate |
|
|
195
260
|
|
|
196
261
|
Nothing runs automatically without your control. [Configure modes →](docs/customization.md)
|
|
197
262
|
|
|
198
|
-
> **
|
|
199
|
-
>
|
|
200
|
-
>
|
|
201
|
-
>
|
|
202
|
-
>
|
|
263
|
+
> **Stability tiers** — [`STABILITY.md`](docs/contracts/STABILITY.md) for
|
|
264
|
+
> the full matrix. Runtime Dispatcher: **stable** (`php` / `node` handlers
|
|
265
|
+
> scaffold). Work Engine: **beta (beta)** — orchestrator behind `/work`
|
|
266
|
+
> + `/implement-ticket`. Tool Adapters: **experimental**, read-only,
|
|
267
|
+
> behind `full`. `minimal` profile unaffected.
|
|
203
268
|
|
|
204
269
|
---
|
|
205
270
|
|
|
@@ -259,7 +324,7 @@ can prioritize the right skills for extraction.
|
|
|
259
324
|
| [`/jira-ticket`](.agent-src/commands/jira-ticket.md) | Read ticket from branch, implement feature |
|
|
260
325
|
| [`/compress`](.agent-src/commands/compress.md) | Compress skills for token efficiency |
|
|
261
326
|
|
|
262
|
-
→ [Browse all
|
|
327
|
+
→ [Browse all 77 commands](.agent-src/commands/)
|
|
263
328
|
|
|
264
329
|
---
|
|
265
330
|
|
|
@@ -284,7 +349,7 @@ Every developer gets the same behavior. No per-user setup needed.
|
|
|
284
349
|
native slash-commands)
|
|
285
350
|
|
|
286
351
|
> **What this means in practice:** Augment Code and Claude Code get the full
|
|
287
|
-
> package (rules +
|
|
352
|
+
> package (rules + 128 skills + 77 native commands). Cursor, Cline, Windsurf,
|
|
288
353
|
> Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
|
|
289
354
|
> commands are available to them as documentation the agent can read, not as
|
|
290
355
|
> first-class features.
|
|
@@ -303,6 +368,23 @@ Skills use a `SKILL.md` format with YAML frontmatter that is compatible with
|
|
|
303
368
|
the [Agent Skills](https://agentskills.io) community spec and with Claude
|
|
304
369
|
Code's Agent Skills specification.
|
|
305
370
|
|
|
371
|
+
### Cloud / Hosted-agent surfaces (paste-in or upload)
|
|
372
|
+
|
|
373
|
+
For platforms where the package's scripts cannot run, the package
|
|
374
|
+
builds artefacts you upload or paste into the platform's own surface.
|
|
375
|
+
|
|
376
|
+
| Surface | Output | How to install |
|
|
377
|
+
|---|---|---|
|
|
378
|
+
| **Linear AI** (Codegen, Charlie, …) | `dist/linear/{workspace,team,personal}.md` | [Install →](docs/installation.md#linear-ai-codegen-charlie-) |
|
|
379
|
+
| **Claude.ai Web Skills** | `dist/cloud/<skill>.zip` | [Install →](docs/installation.md#claudeai-web-skills-ui) |
|
|
380
|
+
|
|
381
|
+
The Linear digest is split into three layers — workspace (universal
|
|
382
|
+
coding posture), team (framework-specific), personal (empty stub). See
|
|
383
|
+
[`docs/contracts/linear-ai-three-layers.md`](docs/contracts/linear-ai-three-layers.md) (beta)
|
|
384
|
+
for the rationale and
|
|
385
|
+
[`docs/contracts/linear-ai-rules-inclusion.md`](docs/contracts/linear-ai-rules-inclusion.md) (beta)
|
|
386
|
+
for the per-rule routing.
|
|
387
|
+
|
|
306
388
|
---
|
|
307
389
|
|
|
308
390
|
## Core Principles
|
|
@@ -325,12 +407,53 @@ Code's Agent Skills specification.
|
|
|
325
407
|
| [**Development**](docs/development.md) | Prerequisites, editing workflow, all `task` commands, project structure |
|
|
326
408
|
| [**Customization**](docs/customization.md) | Overrides, AGENTS.md, agent settings, cost profiles |
|
|
327
409
|
| [**Quality & CI**](docs/quality.md) | Linting, CI pipeline, compression system |
|
|
410
|
+
| [**Migration**](docs/MIGRATION.md) | Per-version upgrade steps (e.g. `implement_ticket → work_engine` in 1.15.0) |
|
|
328
411
|
|
|
329
412
|
Uninstalling: see
|
|
330
413
|
[docs/installation.md#uninstalling](docs/installation.md#uninstalling) —
|
|
331
414
|
there is no dedicated uninstall command; removal is a documented manual
|
|
332
415
|
step (package manager + `rm -rf` of generated dirs).
|
|
333
416
|
|
|
417
|
+
### Maintainer telemetry (opt-in, default-off)
|
|
418
|
+
|
|
419
|
+
A local-only artefact-engagement log can be enabled by maintainers to see
|
|
420
|
+
which skills, rules, commands, and guidelines the agent actually consults
|
|
421
|
+
and applies during a `/implement-ticket` or `/work` run. The log is a
|
|
422
|
+
JSONL file under the project root; nothing is uploaded, nothing is shared
|
|
423
|
+
across projects. Default is off; consumers see no prompts.
|
|
424
|
+
|
|
425
|
+
```yaml
|
|
426
|
+
# .agent-settings.yml — opt in only when you want measurement
|
|
427
|
+
telemetry:
|
|
428
|
+
artifact_engagement:
|
|
429
|
+
enabled: true
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
Reports: `./agent-config telemetry:report`. Full contract,
|
|
433
|
+
privacy/redaction floor, and quartile semantics:
|
|
434
|
+
[`docs/contracts/artifact-engagement-flow.md`](docs/contracts/artifact-engagement-flow.md) (beta).
|
|
435
|
+
|
|
436
|
+
### Context-aware command suggestion
|
|
437
|
+
|
|
438
|
+
When a user prompt matches a command's purpose ("setze ticket ABC-123 um"
|
|
439
|
+
→ `/implement-ticket`), the agent surfaces matches as a numbered-options
|
|
440
|
+
block with an always-present "run the prompt as-is" escape. **Nothing
|
|
441
|
+
auto-executes** — the user picks every time. Three opt-out paths:
|
|
442
|
+
|
|
443
|
+
```yaml
|
|
444
|
+
# .agent-settings.yml
|
|
445
|
+
commands:
|
|
446
|
+
suggestion:
|
|
447
|
+
enabled: true # global on/off
|
|
448
|
+
blocklist: [] # specific commands never suggested
|
|
449
|
+
confidence_floor: 0.6 # tunable per command in frontmatter
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
Per-conversation: `/command-suggestion-off` disables the layer until
|
|
453
|
+
re-enabled or the chat ends. Full scoring contract and hardening:
|
|
454
|
+
[`adr-command-suggestion`](docs/contracts/adr-command-suggestion.md),
|
|
455
|
+
[`command-suggestion-flow`](docs/contracts/command-suggestion-flow.md) (beta).
|
|
456
|
+
|
|
334
457
|
---
|
|
335
458
|
|
|
336
459
|
## Development
|
|
@@ -371,7 +494,6 @@ task lint-skills # Lint skills, rules, commands
|
|
|
371
494
|
**For contributors only** (rebuilding `.augment/` locally):
|
|
372
495
|
|
|
373
496
|
- [Task](https://taskfile.dev/) — runs the CI pipeline (`task ci`).
|
|
374
|
-
- No runtime dependencies — the package ships static markdown files.
|
|
375
497
|
|
|
376
498
|
## License
|
|
377
499
|
|
|
@@ -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: []
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Migration Guide
|
|
2
|
+
|
|
3
|
+
How to move existing checkouts forward when `event4u/agent-config`
|
|
4
|
+
ships breaking layout changes. Each section is self-contained: read
|
|
5
|
+
only the version you are upgrading to.
|
|
6
|
+
|
|
7
|
+
> Symbol legend — 🔄 automatic, ✋ manual, 💡 advisory.
|
|
8
|
+
|
|
9
|
+
## 1.14.x → 1.15.0 — `implement_ticket` → `work_engine`
|
|
10
|
+
|
|
11
|
+
1.15.0 finishes the rename started with PR #29: the orchestration
|
|
12
|
+
package is now `work_engine` and the default state file is
|
|
13
|
+
`.work-state.json`. A back-compat shim keeps `implement_ticket`
|
|
14
|
+
imports working for one minor release; the legacy state filename is
|
|
15
|
+
detected on load and surfaces a one-shot migration hint instead of
|
|
16
|
+
failing silently.
|
|
17
|
+
|
|
18
|
+
### What changed
|
|
19
|
+
|
|
20
|
+
| Surface | 1.14.x | 1.15.0 |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| Orchestration package | `implement_ticket/` | `work_engine/` |
|
|
23
|
+
| Default state file | `.implement-ticket-state.json` | `.work-state.json` |
|
|
24
|
+
| Legacy package import | native | thin shim, removed in 1.16.0 |
|
|
25
|
+
| State schema | v0 (flat `ticket`) | v1 (`input.kind` envelope) |
|
|
26
|
+
|
|
27
|
+
The schema migration itself shipped in 1.14.0 (`migrate_payload`
|
|
28
|
+
already wraps v0 → v1). 1.15.0 only flips the *default* output
|
|
29
|
+
filename and the shipped package name; v0 files on disk are still
|
|
30
|
+
recognised on a clear error path.
|
|
31
|
+
|
|
32
|
+
### Required action
|
|
33
|
+
|
|
34
|
+
✋ **Run the one-shot migration** if your project still has a
|
|
35
|
+
`.implement-ticket-state.json` file:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
python3 -m work_engine.migration.v0_to_v1 .implement-ticket-state.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This:
|
|
42
|
+
|
|
43
|
+
1. Writes `.work-state.json` with the v1 envelope alongside the
|
|
44
|
+
legacy file.
|
|
45
|
+
2. Rotates the v0 file to `.implement-ticket-state.json.bak` (or
|
|
46
|
+
`.bak.1`, `.bak.2`, … if a previous backup is already present —
|
|
47
|
+
no silent overwrites).
|
|
48
|
+
3. Refuses to overwrite an existing `.work-state.json`.
|
|
49
|
+
4. Exits `0` on success, `2` on schema errors.
|
|
50
|
+
|
|
51
|
+
Pass `--no-backup` if you do not want the v0 file kept around, or
|
|
52
|
+
`--destination <path>` for a custom location.
|
|
53
|
+
|
|
54
|
+
🔄 **Detection on load.** If the engine is invoked with
|
|
55
|
+
`--state-file .work-state.json` (or no `--state-file` at all) and
|
|
56
|
+
finds only the legacy file, it stops with:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
error: Found legacy state file .implement-ticket-state.json but no
|
|
60
|
+
.work-state.json. The default state file was renamed in 1.15.0. Run
|
|
61
|
+
`python3 -m work_engine.migration.v0_to_v1 .implement-ticket-state.json`
|
|
62
|
+
to migrate, or pass `--state-file .implement-ticket-state.json` to
|
|
63
|
+
keep using the old name. See docs/MIGRATION.md.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The detection only fires when the requested state file uses the
|
|
67
|
+
canonical name; explicit `--state-file <other>.json` bypasses it,
|
|
68
|
+
so power users with their own naming scheme stay in control.
|
|
69
|
+
|
|
70
|
+
### Optional — keep using the legacy name
|
|
71
|
+
|
|
72
|
+
💡 You do **not** have to migrate immediately. Both of these keep
|
|
73
|
+
working through the 1.15.x cycle:
|
|
74
|
+
|
|
75
|
+
- Pass `--state-file .implement-ticket-state.json` on every CLI
|
|
76
|
+
invocation. The loader reads v0 and v1 transparently; format is
|
|
77
|
+
preserved on save.
|
|
78
|
+
- Keep importing from `implement_ticket` — the shim under
|
|
79
|
+
`templates/scripts/implement_ticket/` re-exports the
|
|
80
|
+
`work_engine` API verbatim. Removed in 1.16.0.
|
|
81
|
+
|
|
82
|
+
The legacy hint is a UX nudge, not a hard cutover.
|
|
83
|
+
|
|
84
|
+
### Rolling back
|
|
85
|
+
|
|
86
|
+
If something goes wrong:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
mv .work-state.json /tmp/work-state-bad.json
|
|
90
|
+
mv .implement-ticket-state.json.bak .implement-ticket-state.json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Then either re-run the migration or pin to 1.14.x until the issue
|
|
94
|
+
is reported. The v0 backup is byte-equal with the input —
|
|
95
|
+
`migrate_file` only renames the source after successfully writing
|
|
96
|
+
the v1 destination.
|
|
97
|
+
|
|
98
|
+
### CI / repository hygiene
|
|
99
|
+
|
|
100
|
+
If your project commits state files (uncommon but supported):
|
|
101
|
+
|
|
102
|
+
- Update `.gitignore` to exclude both `.implement-ticket-state.json`
|
|
103
|
+
and `.work-state.json` if you want them transient.
|
|
104
|
+
- Otherwise, commit the new `.work-state.json` and either delete
|
|
105
|
+
the `.bak` rotation or move it under an archive path — the
|
|
106
|
+
loader never reads `.bak` files.
|
|
107
|
+
|
|
108
|
+
### Reference
|
|
109
|
+
|
|
110
|
+
- Schema and field-by-field semantics:
|
|
111
|
+
[`docs/contracts/implement-ticket-flow.md`](contracts/implement-ticket-flow.md#workstate-v1-schema).
|
|
112
|
+
- Stability level: `work_engine` is **beta** — see
|
|
113
|
+
[`docs/contracts/STABILITY.md`](contracts/STABILITY.md).
|
|
114
|
+
- Source of truth for the migrator:
|
|
115
|
+
[`templates/scripts/work_engine/migration/v0_to_v1.py`](../.agent-src.uncompressed/templates/scripts/work_engine/migration/v0_to_v1.py).
|
|
116
|
+
|
|
117
|
+
## Older versions
|
|
118
|
+
|
|
119
|
+
No formal migration was required before 1.15.0. The pre-1.14.0 v0
|
|
120
|
+
state schema (flat `ticket`, `.implement-ticket-state.json`) is
|
|
121
|
+
documented in `docs/contracts/implement-ticket-flow.md` and is
|
|
122
|
+
covered by the same `v0_to_v1` migrator above.
|
package/docs/architecture.md
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
+
> **agent-config is not a runtime, but it ships a deterministic orchestration contract / state machine for host agents.**
|
|
4
|
+
|
|
3
5
|
## System overview
|
|
4
6
|
|
|
5
7
|
```
|
|
6
|
-
Rules
|
|
7
|
-
Skills
|
|
8
|
-
Runtime
|
|
9
|
-
|
|
8
|
+
Rules → Behavior enforcement (always active) ← stable
|
|
9
|
+
Skills → Execution logic (on-demand expertise) ← stable
|
|
10
|
+
Runtime Dispatcher → Single-skill shell execution (pilot skills) ← stable (mechanism)
|
|
11
|
+
Work Engine → Multi-step orchestration for /work + /implement ← beta
|
|
12
|
+
Tool Adapters → External integrations (GitHub, Jira) ← experimental
|
|
10
13
|
```
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
Stability tiers follow [`docs/contracts/STABILITY.md`](contracts/STABILITY.md):
|
|
16
|
+
|
|
17
|
+
- **stable** = shipped, documented, exercised by the default (`minimal`) profile or by CI on every PR; SemVer-major for breaks.
|
|
18
|
+
- **beta** = shipped and load-bearing for one or more flows, but the surface is expected to evolve; minor-version breaks allowed under a `### Breaking` CHANGELOG note.
|
|
19
|
+
- **experimental** = scaffold or pilot status; breaks allowed in any release.
|
|
15
20
|
|
|
16
21
|
> The previous "observability, feedback, lifecycle" layers were removed in
|
|
17
22
|
> 1.5 — they were scaffolds without production consumers. See the
|
|
@@ -29,16 +34,40 @@ wired up yet.
|
|
|
29
34
|
↓ install.sh (Cursor, Cline, Windsurf, Augment VSCode) / plugin system
|
|
30
35
|
.claude/ .cursor/ .clinerules/ ← Tool-specific symlinks/copies (auto-generated)
|
|
31
36
|
.windsurfrules GEMINI.md
|
|
37
|
+
↓ scripts/build_cloud_bundle.py (Phase 1 — cloud distribution)
|
|
38
|
+
dist/cloud/<skill>.zip ← Anthropic Skills bundles (Claude.ai Web / Skills API)
|
|
32
39
|
```
|
|
33
40
|
|
|
41
|
+
### Cloud-bundle pipeline
|
|
42
|
+
|
|
43
|
+
`task build-cloud-bundles-all` produces one ZIP per skill at
|
|
44
|
+
`dist/cloud/<skill>.zip`, ready for upload to Claude.ai Web (Settings →
|
|
45
|
+
Customize → Skills) or the Anthropic Skills API. Per-skill behavior
|
|
46
|
+
follows the cloud-tier classification from `scripts/audit_cloud_compatibility.py`:
|
|
47
|
+
|
|
48
|
+
| Tier | Bundle action |
|
|
49
|
+
|-------|-------------------------------------------------------------------|
|
|
50
|
+
| T1 | Bundle as-is — pure guidance, sandbox-safe |
|
|
51
|
+
| T2 | Bundle with prepended sandbox note + package-internal path-swap |
|
|
52
|
+
| T3-S | Same as T2; optional script calls degrade gracefully on cloud |
|
|
53
|
+
| T3-H | **Skipped** — Phase 2 cloud-aware variant required before bundling |
|
|
54
|
+
|
|
55
|
+
Cloud-side caps enforced by the builder: `description` ≤ 200 chars
|
|
56
|
+
(Claude.ai Web) with a 1024-char hard cap (Anthropic spec). The sandbox
|
|
57
|
+
note explains to the agent that `.agent-src/`, `agents/`, and `task …`
|
|
58
|
+
references are descriptive — the host has no filesystem access.
|
|
59
|
+
|
|
60
|
+
CI gate: `task ci-cloud-bundle` runs the builder in `--check` mode and
|
|
61
|
+
fails on any source-side violation, without producing artifacts.
|
|
62
|
+
|
|
34
63
|
## What's inside
|
|
35
64
|
|
|
36
65
|
| Layer | Count | Purpose |
|
|
37
66
|
|---|---|---|
|
|
38
|
-
| **Skills** |
|
|
39
|
-
| **Rules** |
|
|
40
|
-
| **Commands** |
|
|
41
|
-
| **Guidelines** |
|
|
67
|
+
| **Skills** | 128 | On-demand expertise — Laravel, testing, Docker, API design, security, ... |
|
|
68
|
+
| **Rules** | 55 | Always-active constraints — coding standards, scope control, verification |
|
|
69
|
+
| **Commands** | 77 | Slash-command workflows — `/commit`, `/create-pr`, `/fix-ci`, `/compress`, ... |
|
|
70
|
+
| **Guidelines** | 46 | Coding guidelines by language — PHP patterns, Eloquent, Playwright, ... |
|
|
42
71
|
| **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
|
|
43
72
|
| **Contexts** | 5 | Shared knowledge about the system itself |
|
|
44
73
|
|
|
@@ -55,18 +84,25 @@ wired up yet.
|
|
|
55
84
|
|
|
56
85
|
Ensures: no guessing, analysis before action, real verification, consistent outputs.
|
|
57
86
|
|
|
58
|
-
### 2.
|
|
87
|
+
### 2. Runtime Dispatcher — stable mechanism, pilot coverage
|
|
88
|
+
|
|
89
|
+
> **Scope:** single-skill execution. Resolves a `SKILL.md` with
|
|
90
|
+
> `execution.command` argv, enforces safety constraints, hands off to
|
|
91
|
+
> the matching handler. **Not** a multi-step orchestrator — that is
|
|
92
|
+
> the Work Engine (next section).
|
|
59
93
|
|
|
60
94
|
> **Status:**
|
|
61
|
-
> - **
|
|
62
|
-
>
|
|
63
|
-
> `
|
|
64
|
-
>
|
|
65
|
-
>
|
|
66
|
-
>
|
|
67
|
-
>
|
|
68
|
-
>
|
|
69
|
-
>
|
|
95
|
+
> - **Stable mechanism:** the dispatcher itself
|
|
96
|
+
> (`scripts/runtime_dispatcher.py`), the shell handler
|
|
97
|
+
> (`scripts/runtime_handler.py`), and the `ExecutionResult` shape.
|
|
98
|
+
> `subprocess.run` is invoked with `shell=False` (argv only); the
|
|
99
|
+
> environment is scrubbed to an explicit allowlist.
|
|
100
|
+
> - **Pilot coverage:** two skills ship as live pilots —
|
|
101
|
+
> `lint-skills` and `check-refs` — both run on every PR and appear
|
|
102
|
+
> in the GitHub Step Summary via `scripts/ci_summary.py`.
|
|
103
|
+
> - **Scaffold:** `php` and `node` handlers — the frontmatter accepts
|
|
104
|
+
> them and the registry validates them, but no handler
|
|
105
|
+
> implementation exists yet.
|
|
70
106
|
|
|
71
107
|
Skills opt into runtime by declaring execution metadata:
|
|
72
108
|
|
|
@@ -89,14 +125,49 @@ Invoke a runtime-capable skill end-to-end:
|
|
|
89
125
|
python3 scripts/runtime_dispatcher.py run --skill lint-skills
|
|
90
126
|
```
|
|
91
127
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Planned scope
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
### 3.
|
|
128
|
+
A typed `ExecutionResult` (exit code, stdout, stderr, duration,
|
|
129
|
+
artifacts) is returned and can be persisted as JSON via
|
|
130
|
+
`--output FILE`.
|
|
131
|
+
|
|
132
|
+
Planned scope: `php` / `node` handlers, tool-registry wiring for
|
|
133
|
+
`allowed_tools`, streaming output.
|
|
134
|
+
|
|
135
|
+
### 3. Work Engine — beta, multi-step orchestration
|
|
136
|
+
|
|
137
|
+
> **Scope:** multi-step phase dispatch for `/work` and
|
|
138
|
+
> `/implement-ticket`. Drives the
|
|
139
|
+
> `refine → score → plan → implement → test → verify → report` loop,
|
|
140
|
+
> persists state in `.work-state.json`, and routes UI-shaped work
|
|
141
|
+
> through the product UI track. Lives at
|
|
142
|
+
> [`templates/scripts/work_engine/`](../.agent-src.uncompressed/templates/scripts/work_engine/);
|
|
143
|
+
> shipped to consumer projects via `scripts/install.py`.
|
|
144
|
+
|
|
145
|
+
> **Status: beta.** The contract (directive sets, halt budgets,
|
|
146
|
+
> envelope shape) has shipped one full SemVer-minor cycle, but the
|
|
147
|
+
> surface is still expected to evolve. Breaks are allowed in
|
|
148
|
+
> minor-version releases under a `### Breaking` CHANGELOG note. See
|
|
149
|
+
> [`docs/contracts/STABILITY.md`](contracts/STABILITY.md).
|
|
150
|
+
|
|
151
|
+
Key responsibilities:
|
|
152
|
+
|
|
153
|
+
- **Directive routing** — `ui` / `ui-trivial` / `mixed` directive
|
|
154
|
+
sets, locked into the contract at
|
|
155
|
+
[`adr-product-ui-track.md`](contracts/adr-product-ui-track.md) (beta).
|
|
156
|
+
- **Halt protocol** — every phase emits a structured halt; the
|
|
157
|
+
agent re-enters with the user's answer, never improvises.
|
|
158
|
+
- **State machine** — `.work-state.json` is the single source of
|
|
159
|
+
truth across resumes; the engine refuses to switch envelope
|
|
160
|
+
mid-flight. Legacy `.implement-ticket-state.json` files are
|
|
161
|
+
detected on load and routed through
|
|
162
|
+
[`docs/MIGRATION.md`](MIGRATION.md).
|
|
163
|
+
- **Hooks** — chat-history, telemetry, and platform hooks fire
|
|
164
|
+
through the engine's hook layer.
|
|
165
|
+
|
|
166
|
+
The Work Engine **uses** the Runtime Dispatcher when a phase needs
|
|
167
|
+
to execute a single skill (e.g. lint, refs check), but the two are
|
|
168
|
+
independent components with separate stability tiers.
|
|
169
|
+
|
|
170
|
+
### 4. Tool Adapters — experimental
|
|
100
171
|
|
|
101
172
|
> **Status: scaffold + read-only GitHub calls.** With a `GITHUB_TOKEN` the
|
|
102
173
|
> GitHub adapter performs real read calls; without one it returns scaffold
|
|
@@ -110,14 +181,16 @@ Controlled integration via adapters:
|
|
|
110
181
|
- Tool registry with safety rules for execution
|
|
111
182
|
- Structured responses with error classification
|
|
112
183
|
|
|
113
|
-
###
|
|
184
|
+
### 5. Cost Control
|
|
114
185
|
|
|
115
186
|
> **Key principle:** Opt-in by default.
|
|
116
187
|
|
|
117
|
-
The
|
|
118
|
-
`full` profile. The
|
|
119
|
-
|
|
120
|
-
|
|
188
|
+
The Runtime Dispatcher and Tool Adapters activate only under the
|
|
189
|
+
`balanced` or `full` profile. The Work Engine activates whenever
|
|
190
|
+
`/work` or `/implement-ticket` is invoked and is independent of the
|
|
191
|
+
cost profile. The default `minimal` profile ships rules, skills, and
|
|
192
|
+
commands and nothing else. All settings and their profile defaults
|
|
193
|
+
are documented in
|
|
121
194
|
[`.agent-src.uncompressed/templates/agent-settings.md`](../.agent-src.uncompressed/templates/agent-settings.md).
|
|
122
195
|
|
|
123
196
|
---
|
|
@@ -134,10 +207,13 @@ documented in
|
|
|
134
207
|
| **Cline** | ✅ | — | — | — | install.sh (symlinks) |
|
|
135
208
|
| **Windsurf** | ✅ | — | — | — | install.sh (concatenated) |
|
|
136
209
|
| **Gemini CLI** | ✅ | — | — | — | install.sh (symlink → AGENTS.md) |
|
|
210
|
+
| **Claude.ai Web / Skills API** | — | ✅ | — | — | `task build-cloud-bundles-all` → `dist/cloud/<skill>.zip` |
|
|
137
211
|
|
|
138
212
|
Skills use a `SKILL.md` format with YAML frontmatter, compatible with the
|
|
139
213
|
[Agent Skills](https://agentskills.io) community spec and with Claude Code's
|
|
140
|
-
Agent Skills specification.
|
|
214
|
+
Agent Skills specification. Cloud bundles produced by
|
|
215
|
+
`scripts/build_cloud_bundle.py` follow the same format with cloud-side
|
|
216
|
+
adjustments (description budget, sandbox note, package-internal path-swap).
|
|
141
217
|
|
|
142
218
|
---
|
|
143
219
|
|