@event4u/agent-config 1.35.0 → 1.36.1

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.
@@ -0,0 +1,216 @@
1
+ ---
2
+ name: memory-consolidation
3
+ description: "Use when consolidating session signals into curated memory — four-phase loop ORIENT → GATHER → CONSOLIDATE → PRUNE. Triggers on 'mine my sessions', 'consolidate memory', 'review intake signals'."
4
+ status: active
5
+ tier: senior
6
+ source: package
7
+ domain: engineering
8
+ context_spine: [repo]
9
+ ---
10
+
11
+ # memory-consolidation
12
+
13
+ ## When to use
14
+
15
+ - Intake JSONL has accumulated unreviewed signals and `/memory:load` shows the inline-review block.
16
+ - A pattern recurred across recent sessions (correction, preference, decision, repeat-bug) and is at risk of being forgotten by the next fresh chat.
17
+ - Before closing out a multi-day implementation, capture project-scoped facts so the next agent does not re-discover them.
18
+
19
+ Do NOT use for one-off code review notes (those belong in PR comments,
20
+ not memory), for user-attribute facts like name or IDE preference (the
21
+ `onboard` flow owns those), or for transient TODOs (use the task list).
22
+
23
+ ## Cognition cluster
24
+
25
+ - **Mental model 5 — Signal vs. noise.** A consolidation pass that
26
+ promotes 30 entries from a 50-message session is noise; the Pareto
27
+ cut is roughly 3–5 promote-worthy signals per cycle. See
28
+ [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 5.
29
+ - **Mental model 12 — Defense in depth.** Date-discipline, tag
30
+ intersection, and per-invocation transcript-access confirmation are
31
+ three independent guards; any one alone fails open. See § 12.
32
+
33
+ ## Procedure
34
+
35
+ The loop is four sequential phases. Each phase has one exit gate; do
36
+ not advance until the gate is green.
37
+
38
+ ### Phase 1 — ORIENT (review scope and assess adapter)
39
+
40
+ 1. Confirm scope: which project, which time window, which transcript
41
+ source. Default window: last 14 days. The agent must read the
42
+ user's last chat message for an explicit `--since` override before
43
+ defaulting.
44
+ 2. Inspect the current curated state: list files under
45
+ `agents/memory/` and check the most recent `last_validated`
46
+ timestamps. Identify which schemas are stale before mining adds
47
+ noise.
48
+ 3. Review the **repo** slot of the [context-spine](../../../docs/contracts/context-spine.md)
49
+ for project boundaries (modules, owners, sensitive paths). If empty,
50
+ note the gap in the consolidation report; do not invent.
51
+ 4. Resolve the `TranscriptAdapter` for the current host (see Adapter
52
+ contract below). If no adapter matches, stop and route the user to
53
+ `/memory:propose` for manual signal entry. Do **not** synthesize.
54
+
55
+ **Exit gate:** scope, window, adapter all named. If any one is
56
+ missing, stop.
57
+
58
+ ### Phase 2 — GATHER SIGNAL
59
+
60
+ 1. Stream transcript turns through the four signal regex families:
61
+ - **Correction:** `actually|wrong|stop doing|don't do|that's not what|nicht so`.
62
+ - **Preference:** `prefer|always|never|standard|i want|ich will`.
63
+ - **Decision:** `let's go with|decided|we'll use|entschieden`.
64
+ - **Pattern (recurring):** the same file path or symbol appears in
65
+ ≥ 3 turns within 24 hours.
66
+ 2. For each match, extract a **normalised fact** — strip personal
67
+ pronouns, IDE chrome, timestamps, and turn-id. The fact must be
68
+ project-scoped (refers to a file, module, command, or invariant)
69
+ not user-scoped (refers to *me*, *Matze*, *my IDE*).
70
+ 3. Drop user-attribute matches. If the fact cannot survive the
71
+ normalisation, discard it. The miner is a strict gate.
72
+
73
+ **Exit gate:** ≤ 5 normalised facts per cycle. More than 5 means the
74
+ miner is too loose; tighten patterns and re-run before promoting.
75
+
76
+ ### Phase 3 — CONSOLIDATE
77
+
78
+ 1. Tag each fact via the schema-routing table:
79
+
80
+ | Tag | Schema |
81
+ |---|---|
82
+ | `convention` | `agents/memory/conventions.yml` |
83
+ | `invariant` | `agents/memory/domain-invariants.yml` |
84
+ | `gotcha` | `agents/memory/operational-gotchas.yml` |
85
+ | `pattern` | `agents/memory/recurring-patterns.yml` |
86
+
87
+ A fact may carry **two** tags; the promoter resolves via tag
88
+ intersection, not by file extension. See
89
+ [`docs/contracts/agent-memory-contract.md`](../../../docs/contracts/agent-memory-contract.md)
90
+ for the curated YAML schemas.
91
+
92
+ 2. Append each fact as one JSONL line to
93
+ `agents/memory/intake/<primary-tag>.jsonl` with required fields
94
+ per the contract: `ts`, `type`, `key`, `observation`, `source:
95
+ agent`, `session_id`, plus the new optional `tags: [<one>, <two>]`.
96
+ 3. Default to `--preview` mode: render the JSONL block to stdout and
97
+ stop. Only `--commit-intake` writes the file.
98
+
99
+ **Exit gate:** every fact carries ≥ 1 tag and a JSONL-shape that
100
+ validates against the contract.
101
+
102
+ ### Phase 4 — PRUNE & INDEX
103
+
104
+ 1. After promotion (handled by `/memory:promote`, not this skill),
105
+ archive the consumed JSONL lines into
106
+ `agents/memory/intake/.archive/YYYY-Www.jsonl` — week-bucketed,
107
+ not day-bucketed (defeats session-context inference attacks).
108
+ 2. If a curated entry's `last_validated` field is older than 90 days
109
+ AND no signal in the last 30 days touched its `key`, mark it
110
+ stale in the consolidation report — but do **not** auto-delete.
111
+ Pruning is a human-confirmed action.
112
+
113
+ **Exit gate:** report cites ≥ 0 promotions, ≥ 0 stale flags, 0
114
+ auto-deletes.
115
+
116
+ ## TranscriptAdapter contract
117
+
118
+ The miner is host-agnostic by design. A `TranscriptAdapter` for host
119
+ `X` ships:
120
+
121
+ - **Discover:** function returning the absolute path(s) of session
122
+ transcripts for the active project, scoped to the `--since` window.
123
+ Phase 1 ships the Claude-Code adapter only; absent adapter →
124
+ `not-supported-on-this-host`.
125
+ - **Iterate:** generator yielding turn objects with `{role, ts,
126
+ text}`. Adapter strips IDE chrome and tool-call boilerplate before
127
+ yielding.
128
+ - **Redact:** function applied to every yielded text — drops user
129
+ names, file paths outside the repo root, and any personal
130
+ identifier the consumer project lists in
131
+ `.agent-settings.yml` under `memory.redact_patterns`.
132
+
133
+ Phase 1 implementation lives in
134
+ `/memory:mine-session` (single host: Claude Code,
135
+ `~/.claude/projects/*/sessions/*.jsonl`). Phase 3 of the
136
+ adoption roadmap adds a second host adapter; the contract above is
137
+ documented now so the second implementation is not a vacuum design.
138
+
139
+ ## Related Skills
140
+
141
+ **WHEN to use this**
142
+
143
+ - Intake JSONL has > 10 unreviewed signals.
144
+ - A correction / preference recurred across ≥ 3 sessions.
145
+ - Closing out a multi-day implementation.
146
+
147
+ **WHEN NOT to use this**
148
+
149
+ - One-off PR review notes — comment on the PR.
150
+ - User-attribute facts (name, IDE) — those belong to the
151
+ [`onboard`](../../commands/onboard.md) flow, not curated memory.
152
+ - Transient TODOs — use the task-list tools.
153
+ - A single bug fix that does not generalise — fix the bug, do not
154
+ memorise it.
155
+
156
+ ## When the agent should load this
157
+
158
+ - "Mine my recent sessions for memory signals."
159
+ - "Consolidate the intake stream into curated entries."
160
+ - "What did we decide about X across the last week?"
161
+ - "Review unreviewed memory signals before I switch projects."
162
+ - "Run a memory consolidation cycle."
163
+
164
+ ## Output
165
+
166
+ 1. **Consolidation report** — Markdown block printed to stdout: scope
167
+ (project, window, host), signal counts per class, list of
168
+ normalised facts with tag and target schema, stale-flag list. No
169
+ side effects in `--preview` mode.
170
+ 2. **Intake JSONL appendix** — only with `--commit-intake`: appended
171
+ lines to `agents/memory/intake/<tag>.jsonl`. Lines validate
172
+ against the contract.
173
+ 3. **Archive bucket** — only after `/memory:promote` runs and lifts
174
+ the lines into curated YAML: appends to
175
+ `agents/memory/intake/.archive/YYYY-Www.jsonl`. Week-bucketed.
176
+
177
+ ## Gotcha
178
+
179
+ - Mining without `--confirm-transcript-access` reads zero turns and
180
+ prints an opt-in hint. The flag is per-invocation, not persistent.
181
+ - The miner is a strict gate. > 5 normalised facts per cycle means
182
+ the regex set is too loose, not that the session was rich.
183
+ - A fact tagged `gotcha + invariant` lands in the `gotcha` JSONL
184
+ (primary tag); the promoter reads tag intersection to decide the
185
+ curated YAML target.
186
+ - Date-discipline: the `check_memory.py` linter rejects
187
+ `yesterday|today|tomorrow|last/next/this week|month|year` in curated
188
+ YAML without an `YYYY-MM-DD` anchor within ±20 chars. Re-anchor
189
+ before commit.
190
+
191
+ ## Do NOT
192
+
193
+ - Do NOT auto-trigger this skill on session end. The flow is manual,
194
+ per-invocation, and confirmed.
195
+ - Do NOT vendor patterns or text from `grandamenium/dream-skill` —
196
+ the upstream lacks a `LICENSE`. Concept and procedure structure are
197
+ the only adoption surface.
198
+ - Do NOT promote a normalised fact whose `key` falls outside the
199
+ repo root or names another consumer project.
200
+ - Do NOT delete a stale curated entry without explicit user
201
+ confirmation. Stale-flag is the most this skill emits.
202
+
203
+ ## Runnable example
204
+
205
+ After a 4-day refactor of `app/Services/PaymentGateway`, run a
206
+ consolidation cycle:
207
+
208
+ - `/memory:mine-session --since 2026-05-06 --confirm-transcript-access --preview`.
209
+ - Miner surfaces 4 facts: 1 correction (`PaymentGateway::charge` must
210
+ not throw on idempotency replays — `convention`), 1 decision
211
+ (`Stripe webhook signing key lives in `config/services.php` only —
212
+ `gotcha`), 2 patterns (`PaymentGatewayTest` flakes when seeded data
213
+ carries timestamps in microseconds — `pattern + gotcha`).
214
+ - Report cites 0 stale flags. Re-run with `--commit-intake` after
215
+ spot-checking the 4 facts.
216
+ - Hand off to `/memory:promote` for the curated-YAML write.
@@ -43,15 +43,20 @@ Templates for roadmap files stored in `agents/roadmaps/` or `app/Modules/{Module
43
43
  or budget-invariant changes; multi-round council, file-ownership
44
44
  matrices, > 600 lines. Enforced by `task lint-roadmap-complexity`.
45
45
  Standard: [`docs/contracts/roadmap-complexity-standard.md`](../docs/contracts/roadmap-complexity-standard.md).
46
- 16. **No time-boxed plates, no visible-horizon sections.** Roadmaps describe
47
- scope and phase ordering, not week-by-week commitments. No
48
- `## Horizon (N-week visible plate)` sections, "Inside / outside the
49
- plate" framings, `In-plate?` columns, or `**Out-of-plate.**` /
50
- `**Out-of-horizon.**` / `(out-of-horizon, gated on Phase N)` suffixes.
51
- AI execution does not operate on calendar plates; scope ordering and
52
- dependency gates suffice. Pacing is the user's call, decided per turn
53
- never encoded into the plan. Enforced by `task lint-roadmap-complexity`
54
- (plate-token detection).
46
+ 16. **Time-boxed plates / visible-horizon sections opt-in via
47
+ `roadmap.horizon_weeks` in `.agent-settings.yml`.** Default is `0`
48
+ (off): roadmaps describe scope and phase ordering, not week-by-week
49
+ commitments. With the default, do **not** add `## Horizon (N-week
50
+ visible plate)` sections, "Inside / outside the plate" framings,
51
+ `In-plate?` columns in decision tables, or `**Out-of-plate.**` /
52
+ `**Out-of-horizon.**` / `(out-of-horizon, gated on Phase N)`
53
+ suffixes on steps or phase headers. AI execution does not operate
54
+ on calendar plates by default; scope ordering and dependency gates
55
+ are sufficient. Pacing is the user's call, decided per turn —
56
+ never encoded into the plan unless they have explicitly set
57
+ `horizon_weeks` to a positive integer. Enforced by
58
+ `task lint-roadmap-complexity` (plate-token detection skipped when
59
+ `horizon_weeks > 0`).
55
60
 
56
61
  ---
57
62
 
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
9
- "version": "1.35.0"
9
+ "version": "1.36.1"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -160,7 +160,9 @@
160
160
  "./.claude/skills/md-language-check",
161
161
  "./.claude/skills/memory",
162
162
  "./.claude/skills/memory-add",
163
+ "./.claude/skills/memory-consolidation",
163
164
  "./.claude/skills/memory-load",
165
+ "./.claude/skills/memory-mine-session",
164
166
  "./.claude/skills/memory-promote",
165
167
  "./.claude/skills/memory-propose",
166
168
  "./.claude/skills/merge-conflicts",
package/CHANGELOG.md CHANGED
@@ -318,6 +318,48 @@ our recommendation order, not its support status.
318
318
  users" tension without removing any path that an existing user
319
319
  might rely on.
320
320
 
321
+ ## [1.36.1](https://github.com/event4u-app/agent-config/compare/1.36.0...1.36.1) (2026-05-10)
322
+
323
+ ### Refactoring
324
+
325
+ * **scope-control:** extract roadmap-shape, kernel-rule-edits, fenced-step detail to scope-mechanics ([e52c834](https://github.com/event4u-app/agent-config/commit/e52c834a672e6f24b1b7c1608e481b7f45a46054))
326
+
327
+ ### Chores
328
+
329
+ * **generate-tools:** regenerate .windsurfrules for scope-control extraction ([ee7664e](https://github.com/event4u-app/agent-config/commit/ee7664ee6cd0ec5aacdf95b5e4ec1000e01a0121))
330
+
331
+ Tests: 2621 (+0 since 1.36.0)
332
+
333
+ ## [1.36.0](https://github.com/event4u-app/agent-config/compare/1.35.0...1.36.0) (2026-05-10)
334
+
335
+ ### Features
336
+
337
+ * **commands:** tier-0 surfacing on /memory:load and ts_week on /memory:promote ([85f4b63](https://github.com/event4u-app/agent-config/commit/85f4b63dc792488ba60af4da2b09d4fcaa58506c))
338
+ * **memory:** add priority enum validator and tier-0 stale checks ([5d61328](https://github.com/event4u-app/agent-config/commit/5d61328fa1bc1ac38d9acb98a9f97d2dc0dab4a7))
339
+ * **memory:** consolidation skill + /memory:mine-session + intake review hook ([7037a45](https://github.com/event4u-app/agent-config/commit/7037a45b2e63193a3289622784093f522c578158))
340
+
341
+ ### Bug Fixes
342
+
343
+ * **check-refs:** skip agents/council-responses/ like council-sessions/ ([d18551e](https://github.com/event4u-app/agent-config/commit/d18551e896d747533f2aa4465b390b291c931c4a))
344
+ * **check-refs:** skip agents/council-responses/ like council-sessions/ ([4faf5f8](https://github.com/event4u-app/agent-config/commit/4faf5f82c380222281b38213c38399187757840b))
345
+ * **scope-control:** trim authoring section to fit kernel ceiling ([b436d0a](https://github.com/event4u-app/agent-config/commit/b436d0a8840b0498688ed9efe28eb76bbfc08a5a))
346
+ * **roadmap:** suppress council-reference lint on dream-skill roadmap ([c355ca5](https://github.com/event4u-app/agent-config/commit/c355ca5d8b4e7e5f181f31efe057e2c0d5ff63eb))
347
+
348
+ ### Documentation
349
+
350
+ * **roadmap:** close out dream-skill adoption — Phase 3 cancelled-deferred, archive ([63bedd0](https://github.com/event4u-app/agent-config/commit/63bedd02c7686e183acadebff742423ab0c258a6))
351
+ * **roadmap:** mark Phase 2 partial shipped, B1 + Phase 3 deferred with rationale ([620d7f0](https://github.com/event4u-app/agent-config/commit/620d7f09372b866659f0a41f1690fdab904777bb))
352
+ * **memory:** document priority enum and ts_week jitter convention ([f9f65d4](https://github.com/event4u-app/agent-config/commit/f9f65d4d9d699d7b65c496745e440f3fa7de1c54))
353
+
354
+ ### Chores
355
+
356
+ * **roadmap:** mark Phase 1 of dream-skill adoption complete ([b46ce4c](https://github.com/event4u-app/agent-config/commit/b46ce4ca7737fd9f4d29692837680023d3fbf68d))
357
+ * **meta:** regenerate ownership matrix after scope-control trim ([db14110](https://github.com/event4u-app/agent-config/commit/db14110b0aebf9acc178cd997d1e11d0d91fd382))
358
+ * **meta:** regenerate ownership matrix ([a23604e](https://github.com/event4u-app/agent-config/commit/a23604ef031daf0ec5e9dfdce30baf3c0293340d))
359
+ * **rules:** harden against unsolicited implementation + horizon opt-in ([00b5fa9](https://github.com/event4u-app/agent-config/commit/00b5fa96b93b41943559c4dac775069a2e14b0e3))
360
+
361
+ Tests: 2621 (+15 since 1.35.0)
362
+
321
363
  ## [1.35.0](https://github.com/event4u-app/agent-config/compare/1.34.0...1.35.0) (2026-05-10)
322
364
 
323
365
  ### Features
package/README.md CHANGED
@@ -7,7 +7,7 @@ Give your AI agents an audit-disciplined orchestration contract — testing, Git
7
7
  > Your agent picks up the project's stack, runs tests, prepares PRs, fixes CI — and follows your team's coding standards while doing it. Stack-aware skill sets ship for PHP (Laravel · Symfony · Zend/Laminas), JavaScript (Next.js · React · Node), and cross-stack concerns (API · testing · security · observability).
8
8
 
9
9
  <p align="center">
10
- <strong>173 Skills</strong> · <strong>60 Rules</strong> · <strong>103 Commands</strong> · <strong>69 Guidelines</strong> · <strong>8 AI Tools</strong>
10
+ <strong>174 Skills</strong> · <strong>60 Rules</strong> · <strong>104 Commands</strong> · <strong>69 Guidelines</strong> · <strong>8 AI Tools</strong>
11
11
  </p>
12
12
 
13
13
  ---
@@ -343,7 +343,7 @@ kernel set: [`docs/contracts/kernel-membership.md`](docs/contracts/kernel-member
343
343
  | [`/jira-ticket`](.agent-src/commands/jira-ticket.md) | Read ticket from branch, implement feature |
344
344
  | [`/compress`](.agent-src/commands/compress.md) | Compress skills for token efficiency |
345
345
 
346
- → [Browse all 103 active commands](.agent-src/commands/)
346
+ → [Browse all 104 active commands](.agent-src/commands/)
347
347
 
348
348
  ---
349
349
 
@@ -368,7 +368,7 @@ Every developer gets the same behavior. No per-user setup needed.
368
368
  native slash-commands)
369
369
 
370
370
  > **What this means in practice:** Augment Code and Claude Code get the full
371
- > package (rules + 173 skills + 103 native commands). Cursor, Cline, Windsurf,
371
+ > package (rules + 174 skills + 104 native commands). Cursor, Cline, Windsurf,
372
372
  > Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
373
373
  > commands are available to them as documentation the agent can read, not as
374
374
  > first-class features.
@@ -164,6 +164,22 @@ roadmap:
164
164
  # is mandatory before any "roadmap complete" claim regardless of cadence.
165
165
  quality_cadence: end_of_roadmap
166
166
 
167
+ # Visible-horizon framing in roadmap authoring (integer weeks, default 0).
168
+ # 0 = off (default). Time-boxed plate / horizon framing is forbidden:
169
+ # no `## Horizon (N-week visible plate)` sections, no
170
+ # "inside / outside the plate" phrasing, no `out-of-horizon` /
171
+ # `out-of-plate` suffixes. Phase ordering and dependency gates
172
+ # carry the deferral semantics. Enforced by
173
+ # `task lint-roadmap-complexity`.
174
+ # > 0 = opt-in. Roadmaps may include a `## Horizon (N-week visible plate)`
175
+ # section with that many weeks; the linter relaxes the plate-token
176
+ # ban for files declaring the section. Pacing is still the user's
177
+ # call — N is just the authoring window.
178
+ # 6 weeks proved too long for AI-paced work; the default is 0 so plans
179
+ # describe scope and ordering, not calendars. Flip to a positive integer
180
+ # only if your team genuinely commits work on a calendar plate.
181
+ horizon_weeks: 0
182
+
167
183
  # --- Subagent orchestration ---
168
184
  #
169
185
  # Controls model selection and parallelism for subagent-based workflows
@@ -320,3 +336,22 @@ commands:
320
336
  # /create-pr:description-only always previews — that is its sole purpose.
321
337
  create_pr:
322
338
  preview_description: false
339
+
340
+ # --- Memory ---
341
+ #
342
+ # Engineering memory consolidation behaviour. See
343
+ # docs/contracts/agent-memory-contract.md for the on-disk shape and
344
+ # .augment/skills/memory-consolidation/ for the four-phase loop.
345
+ memory:
346
+ # Inline-review threshold for /memory load.
347
+ # When the unreviewed intake stream contains more than this many
348
+ # entries, /memory load surfaces a top-3 preview block before the
349
+ # full curated load. Set to 0 to disable the inline review entirely.
350
+ review_threshold: 10
351
+
352
+ # Patterns redacted from transcripts before mining.
353
+ # The TranscriptAdapter applies these as a regex blocklist on every
354
+ # yielded turn. Add personal identifiers, project-internal tokens,
355
+ # or paths outside the repo root that must not land in intake JSONL.
356
+ # Example: ["api[_-]?key", "/Users/[a-z]+/Library"]
357
+ redact_patterns: []
@@ -96,9 +96,9 @@ fails on any source-side violation, without producing artifacts.
96
96
 
97
97
  | Layer | Count | Purpose |
98
98
  |---|---|---|
99
- | **Skills** | 173 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
99
+ | **Skills** | 174 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
100
100
  | **Rules** | 60 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
101
- | **Commands** | 103 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
101
+ | **Commands** | 104 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
102
102
  | **Guidelines** | 69 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
103
103
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
104
104
  | **Contexts** | 5 | Shared knowledge about the system itself |
package/docs/catalog.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # agent-config — Public Catalog
2
2
 
3
- Consumer-facing catalog of all **398 public artefacts** shipped by
3
+ Consumer-facing catalog of all **404 public artefacts** shipped by
4
4
  this package. Internal package-maintenance rules and deprecation shims
5
5
  are excluded.
6
6
 
7
7
  > **Regenerate:** `python3 scripts/generate_index.py`
8
8
  > Auto-generated — do not edit manually.
9
9
 
10
- ## Skills (169)
10
+ ## Skills (174)
11
11
 
12
12
  | kind | name | extra | description |
13
13
  |---|---|---|---|
@@ -35,6 +35,7 @@ are excluded.
35
35
  | skill | [`code-review`](../.agent-src/skills/code-review/SKILL.md) | | Use when the user says "review this", "check my code", or wants feedback on changes. Reviews for correctness, quality, security, and coding standards. |
36
36
  | skill | [`command-routing`](../.agent-src/skills/command-routing/SKILL.md) | | Use when the user invokes a slash command like /create-pr, /commit, /fix-ci, or pastes command file content — routes to the right command with context inference and GitHub API patterns. |
37
37
  | skill | [`command-writing`](../.agent-src/skills/command-writing/SKILL.md) | | Use when creating or editing a slash command in .agent-src.uncompressed/commands/ — frontmatter, numbered steps, safety gates — even when the user just says 'add a /command for X'. |
38
+ | skill | [`competitive-positioning`](../.agent-src/skills/competitive-positioning/SKILL.md) | | Use when comparing this package to a peer / competitor — ours-vs-theirs verdict table, axis selection, adoption queue. Triggers on 'how do we compare to X', 'should we adopt their pattern'. |
38
39
  | skill | [`composer-packages`](../.agent-src/skills/composer-packages/SKILL.md) | | Use when building or maintaining a Composer library — versioning, Laravel integration, autoloading, publishing to private registries — even when the user says 'release a new version'. |
39
40
  | skill | [`context-authoring`](../.agent-src/skills/context-authoring/SKILL.md) | | Use when filling in knowledge-layer context files — auth-model, tenant-boundaries, data-sensitivity, deployment-order, observability — interactive walkthrough that turns templates into reviewer fuel. |
40
41
  | skill | [`context-document`](../.agent-src/skills/context-document/SKILL.md) | | Use when the user says "create context", "document this area", or wants a structured snapshot of a codebase area for agent orientation. |
@@ -54,6 +55,7 @@ are excluded.
54
55
  | skill | [`design-review`](../.agent-src/skills/design-review/SKILL.md) | | Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more. |
55
56
  | skill | [`devcontainer`](../.agent-src/skills/devcontainer/SKILL.md) | | Use when configuring DevContainers or GitHub Codespaces — devcontainer.json, custom images, secrets, VS Code features — even when the user just says 'why does my Codespace not start'. |
56
57
  | skill | [`developer-like-execution`](../.agent-src/skills/developer-like-execution/SKILL.md) | | Use when implementing, debugging, refactoring, or reviewing code — enforces the think → analyze → verify → execute workflow — even when the user just says 'implement X' without naming it. |
58
+ | skill | [`discovery-interview`](../.agent-src/skills/discovery-interview/SKILL.md) | | Use when running discovery interviews — question-bank build, bias audit, insight extraction. Triggers on 'audit my guide', 'extract insights from transcript', 'is my hypothesis falsifiable'. |
57
59
  | skill | [`docker`](../.agent-src/skills/docker/SKILL.md) | | Use when working with Docker — Dockerfile edits, docker-compose services, containers, or the dual-container (fast + Xdebug) setup — even when the user just says 'my container won't start'. |
58
60
  | skill | [`dto-creator`](../.agent-src/skills/dto-creator/SKILL.md) | | Use when the user says "create a DTO", "new data transfer object", or needs to convert request/response data into a typed PHP class. Creates DTOs with SimpleDto base class and attribute mapping. |
59
61
  | skill | [`eloquent`](../.agent-src/skills/eloquent/SKILL.md) | | Use when writing Eloquent models, relationships, scopes, or queries via Model:: — 'fetch users with their orders'. NOT for PHPStan output, non-Eloquent services, or raw SQL questions. |
@@ -88,6 +90,7 @@ are excluded.
88
90
  | skill | [`laravel-reverb`](../.agent-src/skills/laravel-reverb/SKILL.md) | | Use when configuring Laravel Reverb — the first-party WebSocket server with Pusher protocol compatibility, horizontal scaling, and Pulse monitoring. |
89
91
  | skill | [`laravel-scheduling`](../.agent-src/skills/laravel-scheduling/SKILL.md) | | Use when configuring Laravel task scheduling — cron expressions, frequency helpers, overlap prevention, maintenance mode, or output handling. |
90
92
  | skill | [`laravel-validation`](../.agent-src/skills/laravel-validation/SKILL.md) | | Use when writing validation — Form Requests, rules, custom rule objects, request-boundary design — even when the user just says 'validate this input' or 'check the request' without naming it. |
93
+ | skill | [`launch-readiness`](../.agent-src/skills/launch-readiness/SKILL.md) | | Use before merging a release-shaped PR — pre-merge checklist, rollout plan, rollback criteria, ops handoff. Triggers on 'ready to ship', 'launch checklist', 'rollout plan for X'. |
91
94
  | skill | [`learning-to-rule-or-skill`](../.agent-src/skills/learning-to-rule-or-skill/SKILL.md) | | Use when a repeated learning, mistake, or successful pattern should be turned into a new rule or skill. Also use after completing a task to capture learnings from the work. |
92
95
  | skill | [`lint-skills`](../.agent-src/skills/lint-skills/SKILL.md) | | Use when running the package's skill linter against all skills and rules to validate frontmatter, required sections, and execution metadata. |
93
96
  | skill | [`livewire`](../.agent-src/skills/livewire/SKILL.md) | | Use when the project's frontend stack is Livewire — dispatched by `directives/ui/{apply,review,polish}.py`. Covers reactive state, events, lifecycle hooks, and component/view separation. |
@@ -97,6 +100,7 @@ are excluded.
97
100
  | skill | [`mcp`](../.agent-src/skills/mcp/SKILL.md) | | Use when working with MCP (Model Context Protocol) servers — their tools, capabilities, and best practices for effective agent workflows. |
98
101
  | skill | [`mcp-builder`](../.agent-src/skills/mcp-builder/SKILL.md) | | Use when building an MCP server in Python (FastMCP) or Node/TypeScript (MCP SDK) — agent-centric tool design, input schemas, error handling, and the 10-question evaluation harness. |
99
102
  | skill | [`md-language-check`](../.agent-src/skills/md-language-check/SKILL.md) | | Use BEFORE saving any .md under .augment/, .agent-src*/, or agents/ — scans umlauts, German function words, and quoted German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone. |
103
+ | skill | [`memory-consolidation`](../.agent-src/skills/memory-consolidation/SKILL.md) | | Use when consolidating session signals into curated memory — four-phase loop ORIENT → GATHER → CONSOLIDATE → PRUNE. Triggers on 'mine my sessions', 'consolidate memory', 'review intake signals'. |
100
104
  | skill | [`merge-conflicts`](../.agent-src/skills/merge-conflicts/SKILL.md) | | Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow. |
101
105
  | skill | [`migration-architect`](../.agent-src/skills/migration-architect/SKILL.md) | | Use when shaping a non-trivial migration — rollout phases, dual-write windows, cutover sequencing, deprecation cycles — hands off to `migration-creator` for DDL once locked. |
102
106
  | skill | [`migration-creator`](../.agent-src/skills/migration-creator/SKILL.md) | | Use when the user says "create migration", "add column", or "new table". Creates migrations with correct table prefixes, column naming, and multi-tenant awareness. |
@@ -179,6 +183,7 @@ are excluded.
179
183
  | skill | [`using-git-worktrees`](../.agent-src/skills/using-git-worktrees/SKILL.md) | | Use when starting parallel work in isolation from the current branch — spawn a git worktree with ignore-safety checks and a clean test baseline — even when the user says 'try this on the side'. |
180
184
  | skill | [`validate-feature-fit`](../.agent-src/skills/validate-feature-fit/SKILL.md) | | Validate whether a feature request fits the existing codebase — check for duplicates, contradictions, scope creep, and architectural misfit |
181
185
  | skill | [`verify-completion-evidence`](../.agent-src/skills/verify-completion-evidence/SKILL.md) | | Use when claiming 'done', suggesting a commit, push, or PR — runs the evidence gate so completion claims come from fresh output in this message, not memory or earlier runs. |
186
+ | skill | [`voc-extract`](../.agent-src/skills/voc-extract/SKILL.md) | | Use when extracting Voice-of-Customer themes from existing artefacts — GH issues, PR threads, Sentry patterns. Triggers on 'what are users saying', 'recurring complaints', 'top themes'. |
182
187
  | skill | [`websocket`](../.agent-src/skills/websocket/SKILL.md) | | Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'. |
183
188
 
184
189
  ## Rules (57)
@@ -243,7 +248,7 @@ are excluded.
243
248
  | rule | [`user-interaction`](../.agent-src/rules/user-interaction.md) | auto | Asking the user a question, presenting options, or summarizing progress — numbered-options Iron Law, single-recommendation rule, progress indicators |
244
249
  | rule | [`verify-before-complete`](../.agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
245
250
 
246
- ## Commands (103)
251
+ ## Commands (104)
247
252
 
248
253
  | kind | name | cluster | description |
249
254
  |---|---|---|---|
@@ -304,9 +309,10 @@ are excluded.
304
309
  | command | [`judge`](../.agent-src/commands/judge.md) | cluster: judge | Judge orchestrator — routes to solo, steps, on-diff |
305
310
  | command | [`memory:add`](../.agent-src/commands/memory/add.md) | cluster: memory | Interactively add a validated entry to an engineering-memory file (domain-invariants, architecture-decisions, incident-learnings, product-rules) |
306
311
  | command | [`memory:load`](../.agent-src/commands/memory/load.md) | cluster: memory | Load ALL curated entries of a given memory type into the current context — opt-in full load for deep analysis, never auto-triggered |
312
+ | command | [`memory:mine-session`](../.agent-src/commands/memory/mine-session.md) | cluster: memory | Mine the active session transcript for memory signals (corrections, preferences, decisions, recurring patterns) — preview-by-default, opt-in transcript access, host-agnostic via TranscriptAdapter. |
307
313
  | command | [`memory:promote`](../.agent-src/commands/memory/promote.md) | cluster: memory | Promote an intake signal (or provisional proposal) into a curated memory entry — opens a PR and runs the admission gate. |
308
314
  | command | [`memory:propose`](../.agent-src/commands/memory/propose.md) | cluster: memory | Append a provisional memory signal to the intake stream — the universal fallback for any producer (human or agent) to record a finding without committing to a curated entry. |
309
- | command | [`memory`](../.agent-src/commands/memory.md) | cluster: memory | Memory orchestrator — routes to add, load, promote, propose |
315
+ | command | [`memory`](../.agent-src/commands/memory.md) | cluster: memory | Memory orchestrator — routes to add, load, mine-session, promote, propose |
310
316
  | command | [`mode`](../.agent-src/commands/mode.md) | | Set the active role mode — prints the contract, lists default skills, and refuses work outside the contract (see role-contracts) |
311
317
  | command | [`module:create`](../.agent-src/commands/module/create.md) | cluster: module | Create a new module from .module-template with interactive setup |
312
318
  | command | [`module:explore`](../.agent-src/commands/module/explore.md) | cluster: module | Explore a module — load its structure, docs, and context into the current conversation |
@@ -122,10 +122,24 @@ command: JSONL append-only drop-ins under
122
122
  is present, the same payload is accepted by a `propose()` CLI or MCP
123
123
  call. File-drop is the always-works path.
124
124
 
125
- Required fields (keep in sync with `/propose-memory` command):
125
+ **Required fields** (keep in sync with `/propose-memory` command):
126
126
  `ts`, `type`, `key` (path or logical id), `observation`, `source`
127
127
  (`agent` or `human`), `session_id`.
128
128
 
129
+ **Optional fields:**
130
+
131
+ - `tags: string[]` — zero or more schema-routing labels from the
132
+ controlled vocabulary `{convention, invariant, gotcha, pattern}`.
133
+ Default `[]`. Producers (`/memory propose`, `/memory mine-session`)
134
+ emit tags; consumers (`/memory promote`) read **tag intersection**
135
+ to pick the curated YAML target when a signal carries two tags
136
+ (e.g. `[gotcha, invariant]` → primary `gotcha` JSONL, promote target
137
+ resolved by the reviewer at promotion time). See
138
+ [`memory-consolidation`](../../.agent-src.uncompressed/skills/memory-consolidation/SKILL.md)
139
+ § Phase 3 for the schema-routing table.
140
+ - `confidence: low | medium | high` — producer-supplied estimate; the
141
+ inline-review hook in `/memory load` ranks the top-3 by this field.
142
+
129
143
  ## Revisit triggers
130
144
 
131
145
  Q29 is **parked open**, not a blocker. Revisit when **one** of these
@@ -32,7 +32,7 @@ column 1 of this table.
32
32
  | `feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` · `dev` | `feature-explore` · `feature-plan` · `feature-refactor` · `feature-roadmap` · `feature-dev` |
33
33
  | `chat-history` | 2 | `show` · `import` · `learn` | `chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` (auto-adopt + structural hooks); `import` (verbatim cross-session render) and `learn` (project-improving learning extraction) added in the v4 stateless schema |
34
34
  | `agents` | 2 | `init` · `optimize` · `audit` | AGENTS.md file family (high-frequency) — repurposed 2026-05-09: `init` (was `/copilot-agents init`) · `optimize` (merger of `/optimize agents-md` + `/copilot-agents optimize`) · `audit` (was `/optimize agents`, collapses old `audit` + `check` verbs); legacy folder ops (`prepare` / `cleanup` / folder-`audit`) moved to `/optimize agents-dir` |
35
- | `memory` | 2 | `add` · `load` · `promote` · `propose` | `memory-add` · `memory-full` · `memory-promote` · `propose-memory` |
35
+ | `memory` | 2 | `add` · `load` · `promote` · `propose` · `mine-session` | `memory-add` · `memory-full` · `memory-promote` · `propose-memory`; `mine-session` added 2026-05-10 — manual transcript-mining sub-command from `road-to-dream-skill-adoption.md`, opt-in via `--confirm-transcript-access` per invocation |
36
36
  | `roadmap` | 2 | `create` · `ai-council` · `process-step` · `process-phase` · `process-full` | `roadmap-create` · `roadmap-execute` (replaced — autonomous, no per-step gate; `process-phase` is the default execution scope); `ai-council` added 2026-05-07 — wraps `/council default` with `--input-mode roadmap --depth deep` |
37
37
  | `module` | 2 | `create` · `explore` | `module-create` · `module-explore` |
38
38
  | `tests` | 2 | `create` · `execute` | `tests-create` · `tests-execute` |