@event4u/agent-config 1.9.1 → 1.12.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 +15 -0
- package/.agent-src/commands/chat-history-clear.md +98 -0
- package/.agent-src/commands/chat-history-resume.md +178 -0
- package/.agent-src/commands/chat-history.md +102 -0
- package/.agent-src/commands/compress.md +9 -9
- package/.agent-src/commands/copilot-agents-init.md +1 -1
- package/.agent-src/commands/fix-portability.md +2 -2
- package/.agent-src/commands/fix-pr-bot-comments.md +1 -1
- package/.agent-src/commands/fix-pr-developer-comments.md +1 -1
- package/.agent-src/commands/fix-references.md +2 -2
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/onboard.md +171 -0
- package/.agent-src/commands/roadmap-create.md +7 -2
- package/.agent-src/commands/roadmap-execute.md +2 -2
- package/.agent-src/commands/set-cost-profile.md +101 -0
- package/.agent-src/commands/sync-agent-settings.md +122 -0
- package/.agent-src/commands/sync-gitignore.md +104 -0
- package/.agent-src/commands/tests-execute.md +6 -6
- package/.agent-src/commands/upstream-contribute.md +5 -4
- package/.agent-src/contexts/augment-infrastructure.md +2 -2
- package/.agent-src/contexts/override-system.md +1 -1
- package/.agent-src/contexts/subagent-configuration.md +3 -3
- package/.agent-src/guidelines/agent-infra/layered-settings.md +48 -5
- package/.agent-src/rules/ask-when-uncertain.md +56 -3
- package/.agent-src/rules/augment-portability.md +52 -1
- package/.agent-src/rules/augment-source-of-truth.md +10 -10
- package/.agent-src/rules/chat-history.md +171 -0
- package/.agent-src/rules/docker-commands.md +5 -7
- package/.agent-src/rules/docs-sync.md +13 -9
- package/.agent-src/rules/improve-before-implement.md +2 -0
- package/.agent-src/rules/onboarding-gate.md +94 -0
- package/.agent-src/rules/package-ci-checks.md +6 -5
- package/.agent-src/rules/roadmap-progress-sync.md +24 -13
- package/.agent-src/rules/size-enforcement.md +1 -1
- package/.agent-src/rules/skill-quality.md +1 -1
- package/.agent-src/rules/think-before-action.md +1 -0
- package/.agent-src/scripts/update_roadmap_progress.py +26 -9
- package/.agent-src/skills/check-refs/SKILL.md +1 -1
- package/.agent-src/skills/command-routing/SKILL.md +1 -1
- package/.agent-src/skills/command-writing/SKILL.md +4 -3
- package/.agent-src/skills/file-editor/SKILL.md +2 -2
- package/.agent-src/skills/guideline-writing/SKILL.md +4 -3
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
- package/.agent-src/skills/lint-skills/SKILL.md +1 -1
- package/.agent-src/skills/roadmap-management/SKILL.md +13 -10
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +20 -30
- package/.agent-src/skills/rule-writing/SKILL.md +5 -5
- package/.agent-src/skills/terragrunt/SKILL.md +0 -8
- package/.agent-src/skills/upstream-contribute/SKILL.md +5 -4
- package/.agent-src/templates/agent-settings.md +86 -34
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +296 -0
- package/CONTRIBUTING.md +89 -40
- package/README.md +3 -3
- package/composer.json +2 -1
- package/config/agent-settings.template.yml +45 -6
- package/config/gitignore-block.txt +24 -0
- package/config/profiles/balanced.ini +5 -0
- package/config/profiles/full.ini +5 -0
- package/config/profiles/minimal.ini +5 -0
- package/docs/customization.md +30 -4
- package/docs/getting-started.md +52 -3
- package/docs/mcp.md +15 -4
- package/package.json +13 -2
- package/scripts/agent-config +155 -0
- package/scripts/chat_history.py +519 -0
- package/scripts/check_portability.py +151 -1
- package/scripts/install.py +55 -3
- package/scripts/install.sh +50 -21
- package/scripts/mcp_render.py +30 -16
- package/scripts/release.py +588 -0
- package/scripts/sync_agent_settings.py +211 -0
- package/scripts/sync_gitignore.py +226 -0
- package/templates/agent-config-wrapper.sh +47 -0
- package/.agent-src/commands/config-agent-settings.md +0 -126
- package/.agent-src/skills/eloquent/evals/last-run.json +0 -99
package/CONTRIBUTING.md
CHANGED
|
@@ -118,51 +118,100 @@ the policy is interpreted as follows:
|
|
|
118
118
|
| **Minor** (x.X.0) | New skills, rules, commands, or guidelines. New tool support. New installer flags. New `.agent-settings.yml` keys with safe defaults. |
|
|
119
119
|
| **Patch** (x.x.X) | Wording fixes and improvements in existing skills, linter fixes, CI changes, documentation updates, internal refactors with no user-visible effect. |
|
|
120
120
|
|
|
121
|
-
Release notes live in [`CHANGELOG.md`](CHANGELOG.md) and are generated
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
Release notes live in [`CHANGELOG.md`](CHANGELOG.md) and are generated by
|
|
122
|
+
`scripts/release.py` from [Conventional Commits](#commit-conventions) since
|
|
123
|
+
the last tag. Contributors do **not** edit the changelog by hand; writing
|
|
124
|
+
clean commit subjects is how notes are authored.
|
|
125
125
|
|
|
126
126
|
### Release process
|
|
127
127
|
|
|
128
|
-
Releases are
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
128
|
+
Releases are driven by a single command that owns the entire pipeline from
|
|
129
|
+
version bump to npm publish:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
task release # auto-detect bump from commits (default)
|
|
133
|
+
task release:major # force a major bump
|
|
134
|
+
task release:minor # force a minor bump
|
|
135
|
+
task release:patch # force a patch bump
|
|
136
|
+
task release:version -- 2.0.0 # pin an exact X.Y.Z target
|
|
137
|
+
task release -- --dry-run # preview only, no git/gh mutations
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
All five tasks wrap [`scripts/release.py`](scripts/release.py). `task
|
|
141
|
+
release` auto-detects the bump level from Conventional Commits since the
|
|
142
|
+
last tag (`feat!:` / `BREAKING CHANGE:` → major, `feat:` → minor,
|
|
143
|
+
`fix:` / `perf:` → patch; no-signal history falls through to patch).
|
|
144
|
+
The `release:major` / `:minor` / `:patch` variants force a specific bump
|
|
145
|
+
level when the commit history disagrees with what you actually want to
|
|
146
|
+
ship, and `release:version` pins an exact target (e.g. to jump past a
|
|
147
|
+
yanked version). All variants share the same pipeline:
|
|
148
|
+
|
|
149
|
+
1. **Preflight** — asserts the invocation is on `main` with a clean tree,
|
|
150
|
+
in sync with `origin/main`, that `gh` is authenticated, and that the
|
|
151
|
+
target tag does not already exist.
|
|
152
|
+
2. **Plan + preview** — computes the target version, parses Conventional
|
|
153
|
+
Commits since the last tag, renders the CHANGELOG section, and prints
|
|
154
|
+
everything for review.
|
|
155
|
+
3. **Confirm** — a single `y/N` prompt (skippable with `--yes`).
|
|
156
|
+
4. **Branch + bump** — creates `release/X.Y.Z`, bumps `package.json` and
|
|
157
|
+
`.claude-plugin/marketplace.json`, prepends the rendered section to
|
|
158
|
+
`CHANGELOG.md`.
|
|
159
|
+
5. **Commit + push + PR** — commits as `release: X.Y.Z`, pushes the
|
|
160
|
+
branch, opens the release PR via `gh pr create`.
|
|
161
|
+
6. **Wait for checks** — `gh pr checks --watch --required` (skippable with
|
|
162
|
+
`--no-wait`).
|
|
163
|
+
7. **Merge** — `gh pr merge --merge --delete-branch` (merge-commit
|
|
164
|
+
strategy, required for the tag to land on a main commit).
|
|
165
|
+
8. **Tag main** — fast-forwards `main`, tags the merge commit, pushes the
|
|
166
|
+
tag. This is what triggers [`publish-npm.yml`](.github/workflows/publish-npm.yml):
|
|
167
|
+
the workflow listens on bare-numeric tag pushes, verifies the tag
|
|
168
|
+
matches `package.json.version`, and runs `npm publish` against
|
|
169
|
+
https://registry.npmjs.org with
|
|
170
|
+
[npm provenance](https://docs.npmjs.com/generating-provenance-statements).
|
|
171
|
+
9. **GitHub Release** — `gh release create X.Y.Z` with the rendered
|
|
172
|
+
changelog body as notes.
|
|
173
|
+
|
|
174
|
+
The override tasks (`release:major` / `:minor` / `:patch`) exist for the
|
|
175
|
+
cases where commit signal alone doesn't capture the release intent —
|
|
176
|
+
e.g. shipping a major without a formal breaking-change commit, or
|
|
177
|
+
downgrading a `feat:` release to patch because the feature was
|
|
178
|
+
effectively internal. The preview always shows which level was chosen
|
|
179
|
+
and what the rendered CHANGELOG looks like, so there's no surprise at
|
|
180
|
+
merge time.
|
|
181
|
+
|
|
182
|
+
[`release-guard.yml`](.github/workflows/release-guard.yml) still runs on
|
|
183
|
+
every tag push and fails loudly if `package.json.version` or
|
|
184
|
+
`.claude-plugin/marketplace.json.metadata.version` disagree with the tag —
|
|
185
|
+
an independent cross-check that stays in place regardless of how the tag
|
|
186
|
+
was produced.
|
|
187
|
+
|
|
188
|
+
#### Previewing without side effects
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
task release -- --dry-run
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
This runs the preflight + plan and prints the preview, but stops before
|
|
195
|
+
creating the branch. Use it to sanity-check the rendered CHANGELOG or to
|
|
196
|
+
see which bump level matches your commits.
|
|
197
|
+
|
|
198
|
+
#### npm authentication
|
|
199
|
+
|
|
200
|
+
`publish-npm.yml` authenticates to npm via
|
|
201
|
+
[OIDC Trusted Publishing](https://docs.npmjs.com/trusted-publishers) — no
|
|
202
|
+
`NPM_TOKEN` secret is required. The trust link is configured on the package
|
|
203
|
+
settings page on npmjs.com and bound to:
|
|
158
204
|
|
|
159
|
-
|
|
205
|
+
- Repository: `event4u-app/agent-config`
|
|
206
|
+
- Workflow filename: `publish-npm.yml`
|
|
160
207
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
208
|
+
The workflow declares `id-token: write` so GitHub Actions can mint a
|
|
209
|
+
short-lived OIDC ID token with claims about the run (repo, workflow, ref).
|
|
210
|
+
`npm publish` sends that token to the registry, which verifies the claims
|
|
211
|
+
against the trust link and — on match — authorizes the publish and records
|
|
212
|
+
a provenance attestation. If the workflow file is renamed or moved, the
|
|
213
|
+
trust link on npm must be updated accordingly or the publish step will
|
|
214
|
+
fail.
|
|
166
215
|
|
|
167
216
|
## License of contributions
|
|
168
217
|
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Teach your AI agents Laravel, PHP, testing, Git workflows, and **120+ more skill
|
|
|
5
5
|
> Your agent learns to write Laravel code, run tests, create PRs, fix CI — and follows your team's coding standards while doing it.
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>124 Skills</strong> · <strong>
|
|
8
|
+
<strong>124 Skills</strong> · <strong>46 Rules</strong> · <strong>73 Commands</strong> · <strong>46 Guidelines</strong> · <strong>8 AI Tools</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
---
|
|
@@ -238,7 +238,7 @@ can prioritize the right skills for extraction.
|
|
|
238
238
|
| [`/jira-ticket`](.agent-src/commands/jira-ticket.md) | Read ticket from branch, implement feature |
|
|
239
239
|
| [`/compress`](.agent-src/commands/compress.md) | Compress skills for token efficiency |
|
|
240
240
|
|
|
241
|
-
→ [Browse all
|
|
241
|
+
→ [Browse all 73 commands](.agent-src/commands/)
|
|
242
242
|
|
|
243
243
|
---
|
|
244
244
|
|
|
@@ -263,7 +263,7 @@ Every developer gets the same behavior. No per-user setup needed.
|
|
|
263
263
|
native slash-commands)
|
|
264
264
|
|
|
265
265
|
> **What this means in practice:** Augment Code and Claude Code get the full
|
|
266
|
-
> package (rules + 124 skills +
|
|
266
|
+
> package (rules + 124 skills + 73 native commands). Cursor, Cline, Windsurf,
|
|
267
267
|
> Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
|
|
268
268
|
> commands are available to them as documentation the agent can read, not as
|
|
269
269
|
> first-class features.
|
package/composer.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Agent Settings
|
|
2
2
|
# This file is generated by scripts/install.py from
|
|
3
3
|
# config/agent-settings.template.yml. It holds personal and project-wide
|
|
4
|
-
# preferences. Run /
|
|
5
|
-
#
|
|
4
|
+
# preferences. Run /onboard for first-run setup; for later edits, change
|
|
5
|
+
# values here directly or ask the agent (it follows the merge rules in
|
|
6
|
+
# .augment/guidelines/agent-infra/layered-settings.md).
|
|
6
7
|
|
|
7
8
|
# --- Cost profile ---
|
|
8
9
|
#
|
|
@@ -41,11 +42,12 @@ personal:
|
|
|
41
42
|
# false = silently investigate, only report the conclusion
|
|
42
43
|
play_by_play: false
|
|
43
44
|
|
|
44
|
-
# --- Project / team preferences ---
|
|
45
|
-
project:
|
|
46
45
|
# Prefix PR comment replies with a bot icon 🤖 (true, false)
|
|
46
|
+
# Personal preference — each developer decides for themselves.
|
|
47
47
|
pr_comment_bot_icon: false
|
|
48
48
|
|
|
49
|
+
# --- Project / team preferences ---
|
|
50
|
+
project:
|
|
49
51
|
# Path to the PR template file (relative to project root)
|
|
50
52
|
pr_template: .github/pull_request_template.md
|
|
51
53
|
|
|
@@ -71,12 +73,37 @@ eloquent:
|
|
|
71
73
|
# magic_properties = use $model->column_name (Laravel default)
|
|
72
74
|
access_style: getters_setters
|
|
73
75
|
|
|
76
|
+
# --- Chat history (crash recovery) ---
|
|
77
|
+
#
|
|
78
|
+
# Persistent JSONL log at .agent-chat-history (project root, git-ignored).
|
|
79
|
+
# Keeps a durable record of the conversation so a crashed or switched
|
|
80
|
+
# agent session can be resumed. See scripts/chat_history.py for the API.
|
|
81
|
+
chat_history:
|
|
82
|
+
# Log chat events to disk (true, false)
|
|
83
|
+
enabled: true
|
|
84
|
+
|
|
85
|
+
# Logging granularity
|
|
86
|
+
# per_turn = one entry per user↔agent turn (lightest)
|
|
87
|
+
# per_phase = one entry per workflow phase
|
|
88
|
+
# per_tool = one entry per tool call (most verbose)
|
|
89
|
+
frequency: __CHAT_HISTORY_FREQUENCY__
|
|
90
|
+
|
|
91
|
+
# Max file size in KB before overflow handling kicks in (integer)
|
|
92
|
+
max_size_kb: __CHAT_HISTORY_MAX_SIZE_KB__
|
|
93
|
+
|
|
94
|
+
# Overflow behavior
|
|
95
|
+
# rotate = drop oldest entries to stay under max_size_kb
|
|
96
|
+
# compress = mark for summarization on the next agent turn
|
|
97
|
+
on_overflow: __CHAT_HISTORY_ON_OVERFLOW__
|
|
98
|
+
|
|
74
99
|
# --- Optional pipelines ---
|
|
75
100
|
pipelines:
|
|
76
101
|
# Skill improvement pipeline (true, false)
|
|
77
|
-
# true = after meaningful tasks, propose learning capture and improvements
|
|
102
|
+
# true = after meaningful tasks, propose learning capture and improvements (default)
|
|
78
103
|
# false = silent, no post-task analysis
|
|
79
|
-
|
|
104
|
+
# Included by every cost_profile except `custom`. Flip to false here if you
|
|
105
|
+
# want a silent agent; `custom` profile ignores this default entirely.
|
|
106
|
+
skill_improvement: true
|
|
80
107
|
|
|
81
108
|
# --- Subagent orchestration ---
|
|
82
109
|
#
|
|
@@ -94,3 +121,15 @@ subagents:
|
|
|
94
121
|
# Maximum number of parallel subagent invocations
|
|
95
122
|
# Integer, default 3. Set to 1 to serialize. Hard cap enforced by runtime.
|
|
96
123
|
max_parallel: 3
|
|
124
|
+
|
|
125
|
+
# --- Onboarding ---
|
|
126
|
+
#
|
|
127
|
+
# Tracks whether the initial setup flow (/onboard) has been completed
|
|
128
|
+
# for this developer on this project. When false, the onboarding-gate
|
|
129
|
+
# rule prompts the user to run /onboard before starting normal work.
|
|
130
|
+
# Missing entirely = legacy project (treated as onboarded).
|
|
131
|
+
onboarding:
|
|
132
|
+
# Has the developer completed /onboard? (true, false)
|
|
133
|
+
# Set to true automatically by /onboard at the end. Flip to false if
|
|
134
|
+
# you want to re-run the flow.
|
|
135
|
+
onboarded: false
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Agent config — symlinked from vendor (auto-managed)
|
|
2
|
+
.augment/skills/
|
|
3
|
+
.augment/commands/
|
|
4
|
+
.augment/guidelines/
|
|
5
|
+
.augment/templates/
|
|
6
|
+
.augment/contexts/
|
|
7
|
+
.augment/scripts/
|
|
8
|
+
.augment/README.md
|
|
9
|
+
|
|
10
|
+
# Agent config — NOT ignored (real copies, may contain project overrides)
|
|
11
|
+
# .augment/rules/
|
|
12
|
+
|
|
13
|
+
# Agent config — CLI wrapper (auto-generated on every install)
|
|
14
|
+
/agent-config
|
|
15
|
+
|
|
16
|
+
# Agent config — personal settings (written by the installer)
|
|
17
|
+
.agent-settings.yml
|
|
18
|
+
.agent-settings
|
|
19
|
+
.agent-settings.backup.key-value
|
|
20
|
+
|
|
21
|
+
# Agent config — persistent chat history (crash recovery, never commit)
|
|
22
|
+
.agent-chat-history
|
|
23
|
+
.agent-chat-history.bak
|
|
24
|
+
.agent-chat-history.*.bak
|
|
@@ -8,3 +8,8 @@
|
|
|
8
8
|
; See docs/customization.md for the full profile description.
|
|
9
9
|
|
|
10
10
|
cost_profile=balanced
|
|
11
|
+
|
|
12
|
+
; Chat history (crash recovery) — balanced = phase-level traceability
|
|
13
|
+
chat_history_frequency=per_phase
|
|
14
|
+
chat_history_max_size_kb=256
|
|
15
|
+
chat_history_on_overflow=rotate
|
package/config/profiles/full.ini
CHANGED
|
@@ -8,3 +8,8 @@
|
|
|
8
8
|
; config/agent-settings.template.ini to produce the user's .agent-settings.
|
|
9
9
|
|
|
10
10
|
cost_profile=minimal
|
|
11
|
+
|
|
12
|
+
; Chat history (crash recovery) — minimal = lightest footprint
|
|
13
|
+
chat_history_frequency=per_turn
|
|
14
|
+
chat_history_max_size_kb=128
|
|
15
|
+
chat_history_on_overflow=rotate
|
package/docs/customization.md
CHANGED
|
@@ -52,20 +52,46 @@ those sections.
|
|
|
52
52
|
| `personal.play_by_play` | `false` | Share intermediate findings during analysis |
|
|
53
53
|
| `personal.open_edited_files` | `false` | Open edited files in IDE |
|
|
54
54
|
| `personal.ide` | *(empty)* | IDE for file opening (`cursor`, `code`, `phpstorm`) |
|
|
55
|
-
| `pipelines.skill_improvement` | `
|
|
55
|
+
| `pipelines.skill_improvement` | `true` | Post-task learning capture. Included in every profile except `custom`. |
|
|
56
|
+
| `chat_history.enabled` | `true` | Persistent JSONL log at `.agent-chat-history` for crash recovery. |
|
|
57
|
+
| `chat_history.frequency` | per profile | Logging granularity: `per_turn`, `per_phase`, or `per_tool` (see matrix below). |
|
|
58
|
+
| `chat_history.max_size_kb` | per profile | Max file size before overflow handling (see matrix below). |
|
|
59
|
+
| `chat_history.on_overflow` | per profile | `rotate` drops oldest, `compress` marks for summarization (see matrix below). |
|
|
60
|
+
| `onboarding.onboarded` | `false` | Whether `/onboard` has run. The `onboarding-gate` rule prompts for `/onboard` while this is `false`. |
|
|
56
61
|
|
|
57
62
|
### Cost profiles
|
|
58
63
|
|
|
59
64
|
| Profile | Description |
|
|
60
65
|
|---|---|
|
|
61
|
-
| `minimal` |
|
|
62
|
-
| `balanced` | + Runtime dispatcher for skills that declare a shell command. |
|
|
63
|
-
| `full` | + Tool adapters (GitHub / Jira, read-only, opt-in). |
|
|
66
|
+
| `minimal` | Rules, skills, and commands only. **Includes the learning loop.** Default. |
|
|
67
|
+
| `balanced` | `minimal` + Runtime dispatcher for skills that declare a shell command. |
|
|
68
|
+
| `full` | `balanced` + Tool adapters (GitHub / Jira, read-only, opt-in). |
|
|
64
69
|
| `custom` | Ignore profile — every matrix value must be set explicitly. |
|
|
65
70
|
|
|
71
|
+
All profiles except `custom` ship with `pipelines.skill_improvement: true`,
|
|
72
|
+
so the agent captures learnings after meaningful tasks by default. Set it
|
|
73
|
+
to `false` in `.agent-settings.yml` to silence post-task analysis without
|
|
74
|
+
changing the profile.
|
|
75
|
+
|
|
66
76
|
The authoritative matrix of all matrix-controlled settings lives in
|
|
67
77
|
[`.agent-src.uncompressed/templates/agent-settings.md`](../.agent-src.uncompressed/templates/agent-settings.md).
|
|
68
78
|
|
|
79
|
+
### Chat-history defaults per profile
|
|
80
|
+
|
|
81
|
+
`scripts/install.py` fills these placeholders from
|
|
82
|
+
[`config/profiles/*.ini`](../config/profiles) when it writes
|
|
83
|
+
`.agent-settings.yml`. Edit the values afterwards if you want different
|
|
84
|
+
behavior — the per-profile table is just the initial default.
|
|
85
|
+
|
|
86
|
+
| Setting | `minimal` | `balanced` | `full` |
|
|
87
|
+
|---|---|---|---|
|
|
88
|
+
| `chat_history.enabled` | `true` | `true` | `true` |
|
|
89
|
+
| `chat_history.frequency` | `per_turn` | `per_phase` | `per_tool` |
|
|
90
|
+
| `chat_history.max_size_kb` | `128` | `256` | `512` |
|
|
91
|
+
| `chat_history.on_overflow` | `rotate` | `rotate` | `compress` |
|
|
92
|
+
|
|
93
|
+
`custom` ignores these defaults — set every value explicitly.
|
|
94
|
+
|
|
69
95
|
---
|
|
70
96
|
|
|
71
97
|
## Project documentation
|
package/docs/getting-started.md
CHANGED
|
@@ -19,11 +19,28 @@ runs a bash payload sync and a Python bridge generator (Python 3 is
|
|
|
19
19
|
recommended; without it the payload sync still runs). No Task or Make
|
|
20
20
|
required for end users.
|
|
21
21
|
|
|
22
|
+
## Project CLI — `./agent-config`
|
|
23
|
+
|
|
24
|
+
The installer writes `./agent-config` into your project root (gitignored)
|
|
25
|
+
so you can run a few package scripts without installing `go-task`,
|
|
26
|
+
`make`, or other build tools:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
./agent-config mcp:render # sync MCP server config into .cursor/ and .windsurf/
|
|
30
|
+
./agent-config roadmap:progress # regenerate agents/roadmaps-progress.md
|
|
31
|
+
./agent-config first-run # guided setup
|
|
32
|
+
./agent-config help # full command list
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The wrapper is regenerated on every `npm install` / `composer install`
|
|
36
|
+
and delegates to the copy under `node_modules/@event4u/agent-config/`
|
|
37
|
+
or `vendor/event4u/agent-config/`.
|
|
38
|
+
|
|
22
39
|
## First Run
|
|
23
40
|
|
|
24
41
|
Open your agent and try the 3 tests below. That's it — no additional tools needed.
|
|
25
42
|
|
|
26
|
-
**Optional:** For a guided walkthrough, run
|
|
43
|
+
**Optional:** For a guided walkthrough, run `./agent-config first-run`.
|
|
27
44
|
|
|
28
45
|
---
|
|
29
46
|
|
|
@@ -81,7 +98,7 @@ Your agent is now:
|
|
|
81
98
|
- **Respecting your codebase** — no conflicting patterns
|
|
82
99
|
- **Following standards** — consistent code quality
|
|
83
100
|
|
|
84
|
-
This is enforced automatically by
|
|
101
|
+
This is enforced automatically by 46 rules. No configuration needed.
|
|
85
102
|
|
|
86
103
|
---
|
|
87
104
|
|
|
@@ -115,8 +132,40 @@ Your agent now understands slash commands:
|
|
|
115
132
|
| `/create-pr` | Create PR with Jira-linked description |
|
|
116
133
|
| `/fix-ci` | Fetch and fix GitHub Actions failures |
|
|
117
134
|
| `/quality-fix` | Run and fix all quality checks |
|
|
135
|
+
| `/chat-history` | Inspect the persistent chat-history log |
|
|
136
|
+
| `/chat-history-resume` | Recover context after a crashed or switched session |
|
|
137
|
+
| `/chat-history-clear` | Wipe the chat-history log (with confirmation) |
|
|
138
|
+
|
|
139
|
+
→ [Browse all 73 commands](../.agent-src/commands/)
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Crash recovery — `.agent-chat-history`
|
|
144
|
+
|
|
145
|
+
When `chat_history.enabled: true` in `.agent-settings.yml` (on by default
|
|
146
|
+
for every profile), the agent keeps a JSONL log of your conversation in
|
|
147
|
+
`.agent-chat-history` at the project root. The file is git-ignored and
|
|
148
|
+
rotates at the size configured in the profile (`128 KB` on `minimal`,
|
|
149
|
+
`256 KB` on `balanced`, `512 KB` on `full`).
|
|
150
|
+
|
|
151
|
+
When a chat opens and finds an existing log, the agent runs a
|
|
152
|
+
4-state ownership check and chooses the right flow:
|
|
153
|
+
|
|
154
|
+
- **match** — this chat already owns the file. Append silently.
|
|
155
|
+
- **foreign** — a different session's file. You get 3 options:
|
|
156
|
+
Resume (adopt), New start (archive + init), Ignore (skip logging).
|
|
157
|
+
- **returning** — this chat once owned the file, but another session
|
|
158
|
+
took over in between. You get 3 options: Merge (your history in front
|
|
159
|
+
of the foreign entries), Replace (wipe foreign entries, keep yours
|
|
160
|
+
only), Continue (just leave the file and append from now on).
|
|
161
|
+
- **missing** — no file yet. Init and proceed.
|
|
162
|
+
|
|
163
|
+
Run `/chat-history-resume` to walk through the prompts explicitly, or
|
|
164
|
+
let the agent ask on the first turn of a new chat. All merge/replace/
|
|
165
|
+
resume paths read the on-disk entries into context before any write.
|
|
118
166
|
|
|
119
|
-
|
|
167
|
+
See the [`chat-history` rule](../.agent-src/rules/chat-history.md) and
|
|
168
|
+
[`scripts/chat_history.py`](../scripts/chat_history.py) for the mechanics.
|
|
120
169
|
|
|
121
170
|
---
|
|
122
171
|
|
package/docs/mcp.md
CHANGED
|
@@ -48,13 +48,24 @@ values literal, or resolve them from the environment.
|
|
|
48
48
|
|
|
49
49
|
## Usage
|
|
50
50
|
|
|
51
|
+
**Consumer projects** — use the `./agent-config` CLI installed into the
|
|
52
|
+
project root:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
./agent-config mcp:render # write in-project targets
|
|
56
|
+
./agent-config mcp:render --claude-desktop # also write user-scope Claude Desktop
|
|
57
|
+
./agent-config mcp:check # dry-run; exit 1 if targets are stale
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Package maintainers** — the same commands are available through Taskfile:
|
|
61
|
+
|
|
51
62
|
```bash
|
|
52
|
-
task mcp:render
|
|
53
|
-
task mcp:render -- --claude-desktop
|
|
54
|
-
task mcp:check
|
|
63
|
+
task mcp:render
|
|
64
|
+
task mcp:render -- --claude-desktop
|
|
65
|
+
task mcp:check
|
|
55
66
|
```
|
|
56
67
|
|
|
57
|
-
Or invoke the script directly:
|
|
68
|
+
Or invoke the script directly (maintainer workflow, inside the package repo):
|
|
58
69
|
|
|
59
70
|
```bash
|
|
60
71
|
python3 scripts/mcp_render.py [--source PATH] [--claude-desktop] [--check]
|
package/package.json
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event4u/agent-config",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Shared agent configuration
|
|
3
|
+
"version": "1.12.0",
|
|
4
|
+
"description": "Shared agent configuration \u2014 skills, rules, commands, guidelines, and templates for AI coding tools",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/event4u-app/agent-config.git"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/event4u-app/agent-config/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/event4u-app/agent-config#readme",
|
|
7
15
|
"files": [
|
|
8
16
|
".agent-src/",
|
|
9
17
|
".augment-plugin/",
|
|
@@ -21,6 +29,9 @@
|
|
|
21
29
|
"composer.json",
|
|
22
30
|
"llms.txt"
|
|
23
31
|
],
|
|
32
|
+
"bin": {
|
|
33
|
+
"agent-config": "scripts/agent-config"
|
|
34
|
+
},
|
|
24
35
|
"scripts": {
|
|
25
36
|
"postinstall": "bash scripts/postinstall.sh"
|
|
26
37
|
},
|