@event4u/agent-config 8.11.0 → 8.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.
Files changed (67) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/AGENTS.md +1 -0
  3. package/CHANGELOG.md +49 -279
  4. package/README.md +2 -2
  5. package/dist/agent-src/contexts/execution/roadmap-ci-steps-mechanics.md +117 -0
  6. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +106 -94
  7. package/dist/agent-src/rules/architecture.md +6 -51
  8. package/dist/agent-src/rules/code-comment-discipline.md +10 -94
  9. package/dist/agent-src/rules/decision-revisit-gate.md +9 -77
  10. package/dist/agent-src/rules/improve-before-implement.md +7 -66
  11. package/dist/agent-src/rules/no-roadmap-references.md +13 -77
  12. package/dist/agent-src/rules/persona-governance.md +5 -47
  13. package/dist/agent-src/rules/provider-lifecycle-discipline.md +6 -32
  14. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +21 -104
  15. package/dist/agent-src/rules/untrusted-input-defense.md +3 -75
  16. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +83 -0
  17. package/dist/agent-src/skills/decision-review/SKILL.md +86 -0
  18. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +58 -1
  19. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  20. package/dist/agent-src/templates/contexts/knowledge-card.md +12 -0
  21. package/dist/discovery/deprecation-report.md +1 -1
  22. package/dist/discovery/discovery-manifest.json +14 -14
  23. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  24. package/dist/discovery/discovery-manifest.summary.md +1 -1
  25. package/dist/discovery/orphan-report.md +1 -1
  26. package/dist/discovery/packs.json +2 -2
  27. package/dist/discovery/trust-report.md +1 -1
  28. package/dist/discovery/workspaces.json +2 -2
  29. package/dist/mcp/registry-manifest.json +1 -1
  30. package/dist/router.json +1 -1
  31. package/docs/CLAIMS.md +30 -2
  32. package/docs/architecture.md +1 -1
  33. package/docs/archive/CHANGELOG-pre-8.12.0.md +304 -0
  34. package/docs/benchmark.md +39 -0
  35. package/docs/contracts/ai-council-config.md +9 -4
  36. package/docs/contracts/persona-schema.md +49 -0
  37. package/docs/contracts/provider-lifecycle.md +29 -4
  38. package/docs/decisions/ADR-120-council-chairman-mode.md +70 -0
  39. package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +90 -0
  40. package/docs/decisions/INDEX.md +2 -0
  41. package/docs/design/council-vs-solo-baseline.md +92 -0
  42. package/docs/design/utilization-window-criteria.md +51 -0
  43. package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +68 -0
  44. package/docs/guidelines/agent-infra/rule-body-migration-inventory.md +241 -0
  45. package/docs/guidelines/agent-infra/untrusted-input-spotlighting.md +80 -3
  46. package/docs/guidelines/code-clarity.md +86 -1
  47. package/docs/maintainers/branch-protection.md +87 -0
  48. package/docs/maintainers/system-map.md +85 -0
  49. package/docs/proof.md +14 -3
  50. package/package.json +1 -1
  51. package/src/config/agent-settings.template.yml +9 -0
  52. package/src/scripts/_cli/cmd_doctor.ts +95 -0
  53. package/src/scripts/_lib/knowledge_global.ts +44 -0
  54. package/src/scripts/_lib/knowledge_global_promote.ts +150 -0
  55. package/src/scripts/ai_council/orchestrator.ts +188 -1
  56. package/src/scripts/bench_persona_placebo.ts +308 -0
  57. package/src/scripts/bench_quality_rerun.ts +357 -0
  58. package/src/scripts/build_proof.ts +9 -0
  59. package/src/scripts/check_artefact_count_messaging.ts +56 -0
  60. package/src/scripts/check_knowledge_cards.ts +33 -4
  61. package/src/scripts/check_portability.ts +1 -0
  62. package/src/scripts/complexity_report.ts +776 -0
  63. package/src/scripts/consumer_matrix.ts +251 -12
  64. package/src/scripts/council_cli.ts +56 -1
  65. package/src/scripts/explain_run.ts +593 -0
  66. package/src/scripts/knowledge_global_cli.ts +234 -45
  67. package/src/scripts/rule_backlinks.ts +0 -0
@@ -270,6 +270,89 @@ mv agents/tmp/<filename> agents/tmp.old/<filename>
270
270
 
271
271
  See `docs/contracts/agents-layout.md § User Inbox Workflow`.
272
272
 
273
+ ## Transient-reference discipline — mechanics (migrated from the `no-roadmap-references` rule)
274
+
275
+ Body of [`no-roadmap-references`](../../rules/no-roadmap-references.md)
276
+ (per P4 of `road-to-kernel-and-router.md`). The Iron Law — never link a
277
+ specific `agents/roadmaps/` or `agents/runtime/council/` file from a stable
278
+ artifact — stays in the rule; the pattern catalog lives here.
279
+
280
+ ### Forbidden patterns
281
+
282
+ These paths must not appear inside a stable artifact:
283
+
284
+ - `agents/roadmaps/<file>.md`, `agents/roadmaps/archive/<file>.md`,
285
+ `agents/roadmaps/skipped/<file>.md`
286
+ - `agents/runtime/council/questions/<file>.md`,
287
+ `agents/runtime/council/responses/<file>.json`,
288
+ `agents/runtime/council/sessions/<file>.json` or `<timestamp>/...`
289
+
290
+ Stable artifact = any file under `src/{rules,skills,domains}/`,
291
+ `src/agent-src/{contexts,templates,personas}/`, `agents/settings/contexts/`,
292
+ `docs/guidelines/`, `docs/contracts/`, `docs/architecture.md`,
293
+ `docs/customization.md`, `docs/getting-started.md`, `docs/catalog.md`,
294
+ `AGENTS.md`, `README.md`, `copilot-instructions.md`.
295
+
296
+ CI enforcement: `scripts/check_no_roadmap_refs.ts` (roadmap layer)
297
+ and `scripts/check_council_references.ts` (council layer) — both
298
+ fail the build on any new violation.
299
+
300
+ ### Allowed patterns
301
+
302
+ - `agents/roadmaps/` and `agents/runtime/council/` subdirs as **directory**
303
+ mentions (talking about the layer, not a specific file)
304
+ - Roadmap → roadmap references (siblings within the transient layer)
305
+ - The `ai-council` skill and `/council:*` commands documenting the
306
+ output path schema
307
+ - Inline council convergence summary — e.g. *"Council
308
+ (claude-sonnet-4-5 + gpt-4o, 2026-05-06) converged on …"* with
309
+ date + members, no filepath
310
+ - Council sessions, `agents/runtime/.agent-chat-history`, commit messages, PR
311
+ descriptions — transient by construction, not part of the package
312
+ surface
313
+
314
+ ### Structural carve-outs (immutable inputs / decision provenance)
315
+
316
+ Two source/target shapes are exempt from the council-link ban
317
+ because the target is **immutable input** or **decision provenance**,
318
+ not transient drafting state. The linter implements these directly
319
+ (`STRUCTURAL_CARVEOUTS` in `scripts/check_council_references.ts`);
320
+ they do **not** need an inline `<!-- council-ref-allowed: ... -->`
321
+ pragma.
322
+
323
+ | Source | Target | Why |
324
+ | --- | --- | --- |
325
+ | `agents/settings/contexts/evaluation-*.md` | `agents/runtime/council/questions/<question>.md` | Question file is a frozen function-parameter / spend-gate input, not documentation. |
326
+ | `docs/contracts/*.md` | `agents/runtime/council/sessions/<ts>/synthesis.md` | Synthesis is the audit-trail receipt; contract inlines the decision body itself. |
327
+
328
+ Driven by the 2026-05-14 P3.4 council round (claude-sonnet-4-5 +
329
+ gpt-4o, converged on rule refactor over escape-hatch overuse). Any
330
+ other source/target combination still needs an inline pragma or
331
+ inline-summary rewrite.
332
+
333
+ ### What to do instead
334
+
335
+ When a stable artifact needs to cite a transient finding:
336
+
337
+ 1. Identify the durable conclusion — decision, contract, lesson,
338
+ mechanic.
339
+ 2. Promote it to a context file under `agents/settings/contexts/` (ADR,
340
+ mechanics doc, locked decision). The roadmap or council session
341
+ can then point at the context, not the other way around.
342
+ 3. Reference the context from the stable artifact.
343
+ 4. For council convergences specifically: inline a convergence-summary
344
+ block (members, date, cost if relevant — see
345
+ [`ai-council`](../ai-council/SKILL.md) § Output format) instead of
346
+ linking the session JSON.
347
+
348
+ Failure modes:
349
+
350
+ - *"I'll just link to the roadmap, it's evidence."* The roadmap
351
+ gets archived, then deleted, then the link rots. **Promote first,
352
+ link second.**
353
+ - *"I'll just link to the session JSON, it's evidence."* The session
354
+ is gone in 7 days. **Inline first, link never.**
355
+
273
356
  ## Do NOT
274
357
 
275
358
  - Do NOT create docs unless there's a real need (new module, significant change).
@@ -173,8 +173,94 @@ strengthening evidence.
173
173
  `skipped` (stale — age > `review_after_days`), surface them to
174
174
  the user; do not silently use stale entries as if they were current.
175
175
 
176
+ ## Decision-revisit gate — mechanics (migrated from the `decision-revisit-gate` rule)
177
+
178
+ Body of [`decision-revisit-gate`](../../rules/decision-revisit-gate.md)
179
+ (per P4 of `road-to-kernel-and-router.md`). The Iron Law — benefit blocked
180
+ by a lock → surface + offer re-evaluation, never silent compliance — stays
181
+ in the rule; the lock catalog, fire steps, and failure modes live here.
182
+
183
+ ### What counts as a "lock"
184
+
185
+ - An eval verdict recorded as an honest null (a mechanism was tested,
186
+ showed no lift, and the disposition says "don't rebuild without new
187
+ evidence").
188
+ - A memory entry or `agents/settings/contexts/` note tagged "don't
189
+ relitigate" / "settled" / a locked council convergence.
190
+ - A budget or frugality-canon line (`token-budget-discipline`,
191
+ `telegraph-speak`, thin-projector trimming) that rejects a change on
192
+ cost grounds alone.
193
+ - An ADR whose decision is being cited as a blocker for the current change.
194
+ - A **hard structural cap** (kernel size, per-domain persona cap, rich-skill
195
+ ratio). A change that genuinely *qualifies* to cross the cap — e.g. a new
196
+ rule that truly meets the kernel-membership inclusion criteria — triggers a
197
+ **cap-raise proposal + maintainer/council approval**, never a silent
198
+ downgrade of the rule to fit the old number (e.g. demoting a must-always-fire
199
+ rule to `auto` just because the kernel says 9). Fitting the cap is not a
200
+ reason to weaken a qualifying rule; but a rule that does **not** meet the
201
+ criteria stays out — the cap is not the reason, the criteria are.
202
+
203
+ ### What to do when it fires
204
+
205
+ 1. **Mechanism-match check — do this FIRST.** A verdict settles the
206
+ *mechanism it tested*, not every future proposal that resembles it.
207
+ Before applying the lock, verify the blocked change is actually the
208
+ same mechanism — not merely a similar-sounding one. A null on
209
+ hardened blocking enforcement does not automatically cover
210
+ discretionary contextual nudges; a null on one architecture does not
211
+ cover a materially different one. If the mechanism differs, the lock
212
+ does not apply — proceed, noting the distinction.
213
+ 2. **If the mechanism genuinely matches**, do not silently comply.
214
+ Surface, in one short block:
215
+ - What change is blocked.
216
+ - Which lock blocks it (cite the memory/context/ADR).
217
+ - Under what conditions the lock was recorded (date, evidence, or
218
+ "maintainer decision" if settled-by-decision rather than
219
+ settled-by-evidence).
220
+ - What has changed since (new evidence, new model generation, new
221
+ tooling, repeated encounters) that makes revisiting worth the cost.
222
+ 3. **Offer numbered options** (per [`user-interaction`](../../rules/user-interaction.md)),
223
+ always including: re-evaluate the lock in the AI council. Other
224
+ options: keep the lock as-is, or proceed without the blocked change.
225
+ 4. **On re-evaluation:** run this skill's Procedure above for the
226
+ backward audit and route to [`ai-council`](../ai-council/SKILL.md)
227
+ for the debate mechanics. The rule owns the obligation to surface;
228
+ this skill and the council own the procedure.
229
+ 5. **Record the outcome** with scope + `revisit-if` per
230
+ [`ai-council`](../ai-council/SKILL.md)'s convergence-summary
231
+ contract — every re-evaluated lock gets a fresh, correctly-scoped
232
+ disposition, not a re-statement of the old one.
233
+
234
+ ### When NOT to fire
235
+
236
+ - The blocked change has no real benefit — the gate is not a lever to
237
+ reopen every settled question; [`no-cheap-questions`](../../rules/no-cheap-questions.md)
238
+ still governs whether the resulting numbered-options block is a real
239
+ question or noise. A revisit-offer with a genuine trade-off is never
240
+ a "cheap question" under that rule — but a revisit-offer with no
241
+ actual case for change is.
242
+ - The mechanism-match check (step 1) shows the lock is the same
243
+ mechanism and no new evidence exists — apply the lock, no surfacing
244
+ needed; this is the lock working as intended.
245
+ - The user already declined a revisit on this exact lock this
246
+ conversation — per [`scope-control § Decline = silence`](../../rules/scope-control.md),
247
+ do not re-ask.
248
+
249
+ ### Failure modes
250
+
251
+ - Treating a "don't relitigate" memory as permanently closed instead of
252
+ as settled-under-conditions-X.
253
+ - Applying a null verdict to a superficially similar but architecturally
254
+ different mechanism without running the mechanism-match check.
255
+ - Letting the token-frugality canon auto-reject a net-positive change
256
+ without surfacing the trade-off — see [`token-budget-discipline`](../../rules/token-budget-discipline.md)'s
257
+ value-over-budget clause.
258
+ - Silently dropping a good idea because "we already decided this" —
259
+ the canonical failure the gate exists to stop.
260
+
176
261
  ## See also
177
262
 
263
+ - [`decision-revisit-gate`](../../rules/decision-revisit-gate.md) — the rule whose migrated mechanics live above.
178
264
  - [`decision-record`](../decision-record/SKILL.md) — forward flow: lock a new choice.
179
265
  - [`adr-create`](../adr-create/SKILL.md) — file the ADR after a decision is locked.
180
266
  - [`blameless-post-mortem`](../blameless-post-mortem/SKILL.md) — incident review; may hand off to decision-review when a prior architectural choice is implicated.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: medium
3
3
  name: module-detect-on-the-fly
4
- description: "Use when editing a file under a module-shaped path (`Modules/*`, `packages/*`, `apps/*`, `internal/*`) while `modules.enabled` is `false` — asks the user once whether to enable the config."
4
+ description: "Use when editing a module-shaped path (`Modules/*`, `packages/*`, `apps/*`) while `modules.enabled` is false — asks once to enable it; also the project/stack + task-runner detection reference."
5
5
  domain: process
6
6
  workspaces:
7
7
  - agent-config-maintainer
@@ -119,6 +119,63 @@ Confirm both flags via `get_modules_config()` before running detection.
119
119
  the options block, continue the work and treat the project as flat
120
120
  for the rest of the session.
121
121
 
122
+ ## Project & module detection reference
123
+
124
+ _Origin: migrated from `src/rules/architecture.md` per the P4 pattern of `road-to-kernel-and-router.md`. The rule keeps the Iron-Law block, General Principles, and the ADR paragraph; the detection mechanics live here._
125
+
126
+ ### Project detection
127
+
128
+ Detect the current project type from the **Git remote URL**, **directory name**, or **project files**:
129
+
130
+ - **PHP** — `composer.json` (framework slot: Laravel via `artisan`, Symfony via `bin/console`, standalone otherwise).
131
+ - **JS / TS** — `package.json` (framework slot: Next.js via `next` dep, Nuxt via `nuxt`, Express / Fastify / NestJS via deps; plain Node otherwise).
132
+ - **Python** — `pyproject.toml` / `requirements.txt` (framework slot: Django via `django`, FastAPI via `fastapi`, Flask via `flask`).
133
+ - **Go** — `go.mod` (framework slot: `gin`, `echo`, `fiber`, stdlib `net/http`).
134
+ - **Ruby** — `Gemfile` (framework slot: Rails via `rails` gem, Sinatra otherwise).
135
+ - **Rust** — `Cargo.toml` (framework slot: `axum`, `actix-web`, `rocket`).
136
+ - Check `AGENTS.md` or `agents/` for project-specific documentation.
137
+
138
+ Tooling lives in a runner file at the project root — detect once and reuse the result:
139
+ `Taskfile.yml` → `task`, `Makefile` → `make`, `package.json` `scripts:` → `npm` / `pnpm` / `yarn`, `pyproject.toml` `[tool.poetry.scripts]` or `[project.scripts]` → `poetry` / `uv`, framework CLIs (`artisan`, `bin/console`, `manage.py`, `bin/rails`) when the matching manifest is present.
140
+
141
+ ### Project-specific architecture docs
142
+
143
+ Each project documents its own architecture in `./agents/` and/or `AGENTS.md`.
144
+ **Always read those files** before making structural decisions. Do not rely on
145
+ generic rules for project-specific directory layouts, database conventions, or
146
+ module systems.
147
+
148
+ ### Module-level documentation
149
+
150
+ Some projects use a module system (e.g. `app/Modules/` in Laravel, `apps/`/`packages/` in a Turborepo, `src/modules/` in NestJS, `internal/` in Go).
151
+ Module roots and the per-module agent-docs folder are configured via
152
+ `modules.root_paths` and `modules.agent_folder` in `.agent-settings.yml`
153
+ (resolve at runtime via `scripts/_lib/agent_settings.ts::enumerate_modules()`).
154
+ Modules may have their own agent docs under
155
+ `{module_root}/*/{agent_folder}/` (Laravel shape: `app/Modules/*/agents/`) with:
156
+
157
+ - Module descriptions and feature docs
158
+ - Module-specific roadmaps (`agents/roadmaps/`)
159
+ - Module-specific documentation (`Docs/`)
160
+
161
+ When working on a module, **always check for module-level agent docs** first.
162
+
163
+ ### Packages
164
+
165
+ Packages (Composer, npm, etc.) may also use `./agents/` in their root
166
+ for package-specific docs and roadmaps. Treat them the same way as projects.
167
+
168
+ ### Build / task runner detection
169
+
170
+ Projects use either `Makefile` or `Taskfile.yml` (or both) for common commands.
171
+ **Always check which one exists** and read it to discover available targets for
172
+ testing, quality checks, container access, migrations, etc.
173
+
174
+ - `Makefile` → use `make <target>`
175
+ - `Taskfile.yml` → use `task <target>`
176
+
177
+ Prefer these targets over raw `docker compose exec` commands when available.
178
+
122
179
  ## See also
123
180
 
124
181
  - `module-management` — the active skill once modules are configured.
@@ -39,7 +39,7 @@ schema_version: 1
39
39
  # CI guard: a release bump of `package.json` must update this value
40
40
  # in lockstep — see scripts/check_template_pin_drift.ts (road-to-
41
41
  # portable-runtime-and-update-check P3.3).
42
- agent_config_version: "8.11.0"
42
+ agent_config_version: "8.12.0"
43
43
 
44
44
  # --- Project identity ---
45
45
  project:
@@ -7,6 +7,18 @@ trust: durable
7
7
  # Optional for project-local cards; required (plus a provenance footer) once a
8
8
  # card is promoted to the global store. Resolve via knowledge_global.classify_tier.
9
9
  tier: "<public | vendor | proprietary>"
10
+ # sensitivity — orthogonal to tier: WHETHER this card may ever leave the
11
+ # project at all (tier is WHERE it came from). Phase 1, road-to-feedback-8.11
12
+ # / successor note to ADR-119. Three machine-anchored classes:
13
+ # prohibited = contains redaction-class content; never leaves the repo
14
+ # (machine-derived from the redaction scan — never hand-set).
15
+ # project = DEFAULT. Stays project-local; promotion refused unless a
16
+ # human explicitly reclassifies the card to `shareable`.
17
+ # shareable = eligible for the global store; must pass redaction AND
18
+ # carry full promotion provenance (see the footer once
19
+ # promoted: source_repo, owner, review_after, promotion_reason).
20
+ # Required (and machine-checked) once a card is promoted to the global store.
21
+ sensitivity: "project"
10
22
  origin: "<brief description — e.g. npm package / remote API / legacy DB>"
11
23
  url: "<canonical upstream URL>"
12
24
  ref: "<pinned version tag or commit SHA — never blind main>"
@@ -1,6 +1,6 @@
1
1
  # Discovery — Deprecation Report
2
2
 
3
- - Generated: `2026-07-12T08:25:51Z`
3
+ - Generated: `2026-07-12T13:30:17Z`
4
4
  - Deprecated artefacts: **0**
5
5
 
6
6
  _None. Tree is clean._
@@ -4945,7 +4945,7 @@
4945
4945
  },
4946
4946
  {
4947
4947
  "category": "rule",
4948
- "checksum": "sha256:e0cedb7e0bd96806a7eae9b750add16d04e00dc8e62ee7adff8c44ca0c231489",
4948
+ "checksum": "sha256:93f763246cf4e462db9c4d54fc033ffb9c0ce5865a2e25b6b0381a84308f04ff",
4949
4949
  "install": {
4950
4950
  "default": true,
4951
4951
  "removable": false
@@ -5177,7 +5177,7 @@
5177
5177
  },
5178
5178
  {
5179
5179
  "category": "rule",
5180
- "checksum": "sha256:e9251d55c8c1d4c9841c3e374833b1bc986acfc1a666ba77604d885133bad5eb",
5180
+ "checksum": "sha256:c642c0a5798b5bfed082b9c2e86e4c3f8830e2971d1bba12df59094e060ee6da",
5181
5181
  "install": {
5182
5182
  "default": true,
5183
5183
  "removable": false
@@ -5382,7 +5382,7 @@
5382
5382
  },
5383
5383
  {
5384
5384
  "category": "rule",
5385
- "checksum": "sha256:4e3fc01547374c7d76af3b02a77e0667ad10544c63c035ba34b78e90fedaee11",
5385
+ "checksum": "sha256:f09f13f41eab26421f29cc731f8b1b737f9f37079c913416ba686bc9d45a8bc2",
5386
5386
  "install": {
5387
5387
  "default": true,
5388
5388
  "removable": false
@@ -5867,7 +5867,7 @@
5867
5867
  },
5868
5868
  {
5869
5869
  "category": "rule",
5870
- "checksum": "sha256:e8d150ab415cdaf12ef8132617eadc395d7efdf01f10b579da2288c794bc9bfc",
5870
+ "checksum": "sha256:b5477c078fa690cfd61150f3dc7d79dbac6397517d283bec29948c506a1dc9c8",
5871
5871
  "install": {
5872
5872
  "default": true,
5873
5873
  "removable": false
@@ -6329,7 +6329,7 @@
6329
6329
  },
6330
6330
  {
6331
6331
  "category": "rule",
6332
- "checksum": "sha256:da3379d2b9d801b5a6ee309934494cc0c03ea60a11d9af129130388801ca3f2f",
6332
+ "checksum": "sha256:b4f586610cd51268c9bdb8360a798642244d9b2d2521bf5100298bbdce1ec3fc",
6333
6333
  "install": {
6334
6334
  "default": true,
6335
6335
  "removable": false
@@ -6465,7 +6465,7 @@
6465
6465
  },
6466
6466
  {
6467
6467
  "category": "rule",
6468
- "checksum": "sha256:21910e7a90c08dd9da8a40e7c7be640529a4e4051644ed3744d6147cb8e98381",
6468
+ "checksum": "sha256:3878d1b74420f68e2681b636718f60a3a8b3cb224cd5df1b74936d824e74bf6c",
6469
6469
  "install": {
6470
6470
  "default": true,
6471
6471
  "removable": false
@@ -6549,7 +6549,7 @@
6549
6549
  },
6550
6550
  {
6551
6551
  "category": "rule",
6552
- "checksum": "sha256:ea7e4237e99f269ed95efd37f673e8b85b726030ba6f926b3fb4a998677b2fe8",
6552
+ "checksum": "sha256:d6e74bc3809c7b9d0a692bafae238c905e16c812fa4ffe884d37dbb419e3f90d",
6553
6553
  "install": {
6554
6554
  "default": true,
6555
6555
  "removable": false
@@ -6616,7 +6616,7 @@
6616
6616
  },
6617
6617
  {
6618
6618
  "category": "rule",
6619
- "checksum": "sha256:d3cb7efd6c419f13ace8126264f1a1f2c01d9d445f80c451022c0bb811902fa1",
6619
+ "checksum": "sha256:db20269002f94ba1564050797367485a33264fba95a37cef8dfe23cba460e4d0",
6620
6620
  "install": {
6621
6621
  "default": true,
6622
6622
  "removable": false
@@ -7174,7 +7174,7 @@
7174
7174
  },
7175
7175
  {
7176
7176
  "category": "rule",
7177
- "checksum": "sha256:37983317316d9ff13f9bea53a8177a19252655e8b82dba4391f107785b3a4e79",
7177
+ "checksum": "sha256:1a7625fcb13e1268adf9cfe417a3b3de13edd1d4a60a9a849345ab7e2120c102",
7178
7178
  "install": {
7179
7179
  "default": true,
7180
7180
  "removable": false
@@ -7386,7 +7386,7 @@
7386
7386
  },
7387
7387
  {
7388
7388
  "category": "skill",
7389
- "checksum": "sha256:4709fc13a7ccb37a335f229f97c407497ad4fdbd85f15900f5de504fff0c022a",
7389
+ "checksum": "sha256:88c6ff8281b0ee68b5d6d9402bd4b39087f7fb05e5ad92957fd24a63ee0f4032",
7390
7390
  "install": {
7391
7391
  "default": true,
7392
7392
  "removable": false
@@ -8640,7 +8640,7 @@
8640
8640
  },
8641
8641
  {
8642
8642
  "category": "skill",
8643
- "checksum": "sha256:a76ad1dc72b58db24793cf28f4d80abb5dc1300783baca29d3df299ceea6410e",
8643
+ "checksum": "sha256:21fe1e1cab3bf7e739a0e3dbfe48ec60c0da59caae1c791b7003e1ccb1f6f42e",
8644
8644
  "install": {
8645
8645
  "default": false,
8646
8646
  "removable": true
@@ -10642,7 +10642,7 @@
10642
10642
  },
10643
10643
  {
10644
10644
  "category": "skill",
10645
- "checksum": "sha256:d3b4d5038ff32f3c24ee7b66c76833ea0486c82ad51332b7009cc60479d9d484",
10645
+ "checksum": "sha256:da0978b98607af3fb63fee16e5fa45e9b79a62803678518fbedd6aec3165e647",
10646
10646
  "install": {
10647
10647
  "default": true,
10648
10648
  "removable": false
@@ -13277,7 +13277,7 @@
13277
13277
  "workspaces": []
13278
13278
  }
13279
13279
  ],
13280
- "checksum": "sha256:2e4ae6b3ee79b3233182c1b5fb33c5566263418e004db05c76963e26ec7e1d63",
13280
+ "checksum": "sha256:56deb428fad47a9e6ba6ba1abd224d75de548b62783275e3766d23dff86f5709",
13281
13281
  "deprecations": [
13282
13282
  {
13283
13283
  "key": "tier",
@@ -13420,7 +13420,7 @@
13420
13420
  "reason": "scaffold template for ticket-bundle tickets (ADR-101); carries no runtime frontmatter — emit-tickets fills it in per ticket"
13421
13421
  }
13422
13422
  ],
13423
- "generated_at": "2026-07-12T08:25:51Z",
13423
+ "generated_at": "2026-07-12T13:30:17Z",
13424
13424
  "packs": [
13425
13425
  {
13426
13426
  "artefact_count": 105,
@@ -1 +1 @@
1
- 359effcea577be7f6892e96e07d5bebced7efc6d4803bbac0a8e7661daf3ceb8 discovery-manifest.json
1
+ e086e9b77bd9a0446fe86ca182d410759d46295fbb58e85044bde42b0310b165 discovery-manifest.json
@@ -1,6 +1,6 @@
1
1
  # Discovery Manifest — Summary
2
2
 
3
- - Generated: `2026-07-12T08:25:51Z`
3
+ - Generated: `2026-07-12T13:30:17Z`
4
4
  - Scanner: `c24312e116f8`
5
5
  - Artefacts: **555**
6
6
  - Unassigned: **0**
@@ -1,6 +1,6 @@
1
1
  # Discovery — Orphan Report
2
2
 
3
- - Generated: `2026-07-12T08:25:51Z`
3
+ - Generated: `2026-07-12T13:30:17Z`
4
4
  - Orphan artefacts: **0**
5
5
 
6
6
  > An orphan is an artefact whose declared pack has no other members.
@@ -1,6 +1,6 @@
1
1
  {
2
- "checksum": "sha256:2e4ae6b3ee79b3233182c1b5fb33c5566263418e004db05c76963e26ec7e1d63",
3
- "generated_at": "2026-07-12T08:25:51Z",
2
+ "checksum": "sha256:56deb428fad47a9e6ba6ba1abd224d75de548b62783275e3766d23dff86f5709",
3
+ "generated_at": "2026-07-12T13:30:17Z",
4
4
  "packs": [
5
5
  {
6
6
  "always_on": false,
@@ -1,6 +1,6 @@
1
1
  # Discovery — Trust Report
2
2
 
3
- - Generated: `2026-07-12T08:25:51Z`
3
+ - Generated: `2026-07-12T13:30:17Z`
4
4
  - Workspaces tracked: **10**
5
5
  - Human-review-required artefacts: **3**
6
6
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "checksum": "sha256:2e4ae6b3ee79b3233182c1b5fb33c5566263418e004db05c76963e26ec7e1d63",
3
- "generated_at": "2026-07-12T08:25:51Z",
2
+ "checksum": "sha256:56deb428fad47a9e6ba6ba1abd224d75de548b62783275e3766d23dff86f5709",
3
+ "generated_at": "2026-07-12T13:30:17Z",
4
4
  "scanner_version": "c24312e116f8",
5
5
  "workspaces": [
6
6
  {
@@ -9,7 +9,7 @@
9
9
  "homepage": "https://event4u-app.github.io/agent-config",
10
10
  "name": "@event4u/agent-config",
11
11
  "repository": "https://github.com/event4u-app/agent-config",
12
- "version": "8.11.0"
12
+ "version": "8.12.0"
13
13
  },
14
14
  "registries": [
15
15
  {