@event4u/agent-config 5.6.0 → 5.7.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/cost-report.md +12 -7
- package/.agent-src/commands/prediction-pool.md +215 -0
- package/.agent-src/commands/set-cost-profile.md +8 -8
- package/.agent-src/commands/sync-agent-settings.md +2 -2
- package/.agent-src/presets/README.md +1 -1
- package/.agent-src/profiles/README.md +1 -1
- package/.agent-src/rules/non-destructive-by-default.md +2 -1
- package/.agent-src/skills/prediction-pool-optimizer/SKILL.md +196 -0
- package/.agent-src/skills/prediction-pool-optimizer/evals/triggers.json +18 -0
- package/.agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +80 -0
- package/.agent-src/templates/agent-settings.md +7 -7
- package/.agent-src/templates/agents/agent-project-settings.example.yml +2 -2
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +2 -1
- package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +1 -1
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.py +9 -7
- package/.agent-src/templates/scripts/work_engine/hooks/settings.py +9 -10
- package/.agent-src/templates/scripts/work_engine/scoring/memory_visibility.py +17 -4
- package/.claude-plugin/marketplace.json +3 -1
- package/CHANGELOG.md +57 -0
- package/README.md +2 -2
- package/config/agent-settings.template.yml +11 -2
- package/config/discovery/packs.yml +11 -0
- package/config/discovery/workspaces.yml +1 -1
- package/config/profiles/balanced.ini +1 -1
- package/config/profiles/full.ini +1 -1
- package/config/profiles/minimal.ini +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +80 -14
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -2
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +34 -3
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +13 -4
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/server/io/substituteTemplate.js +3 -3
- package/dist/server/io/substituteTemplate.js.map +1 -1
- package/dist/server/routes/settings.js +2 -2
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +4 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/{index-DVsyUMZe.js → index-5lFqAKL0.js} +2 -2
- package/dist/ui/assets/index-5lFqAKL0.js.map +1 -0
- package/dist/ui/index.html +1 -1
- package/docs/architecture/current-onboard-baseline.md +3 -3
- package/docs/architecture.md +2 -2
- package/docs/catalog.md +7 -5
- package/docs/contracts/adr-level-6-productization.md +1 -1
- package/docs/contracts/config-presets.md +2 -2
- package/docs/contracts/cost-profile-defaults.md +5 -5
- package/docs/contracts/discovery-manifest.schema.json +1 -1
- package/docs/contracts/explain-trace.schema.json +3 -3
- package/docs/contracts/memory-visibility-v1.md +15 -7
- package/docs/contracts/profile-system.md +2 -2
- package/docs/contracts/settings-api.md +3 -3
- package/docs/contracts/value-report-schema.md +14 -1
- package/docs/customization.md +21 -5
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +11 -11
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +16 -2
- package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +1 -1
- package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +106 -0
- package/docs/decisions/ADR-037-cost-profile-untangle.md +117 -0
- package/docs/decisions/ADR-rule-kernel-and-router.md +1 -1
- package/docs/decisions/INDEX.md +2 -0
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/layered-settings.md +2 -2
- package/docs/installation.md +3 -3
- package/docs/setup/mcp-client-config.md +1 -1
- package/docs/value.md +9 -7
- package/docs/wizard.md +1 -1
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_cli/cmd_explain.py +1 -1
- package/scripts/_cli/explain_last/inputs.py +11 -8
- package/scripts/_cli/explain_last/sections/inputs.py +1 -1
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/_lib/agent_settings.py +2 -1
- package/scripts/_lib/value_ladder.py +99 -2
- package/scripts/_lib/value_report.py +30 -16
- package/scripts/ai_council/modes.py +1 -1
- package/scripts/audit_initial_context.py +16 -0
- package/scripts/check_skill_requires.py +143 -0
- package/scripts/condense.py +13 -2
- package/scripts/first-run.sh +11 -11
- package/scripts/install +14 -1
- package/scripts/install.py +127 -428
- package/scripts/install_anthropic_key.sh +1 -1
- package/scripts/install_openai_key.sh +1 -1
- package/scripts/lint_discovery_vocabulary.py +5 -5
- package/scripts/lint_value_dashboard.py +1 -1
- package/scripts/pack_mcp_content.py +1 -1
- package/scripts/prediction-pool/adapters/_schema.md +42 -0
- package/scripts/prediction-pool/adapters/kicktipp.yml +23 -0
- package/scripts/prediction-pool/poisson_sim.py +167 -0
- package/scripts/render_value_md.py +1 -0
- package/scripts/schemas/agent-settings.schema.json +77 -0
- package/scripts/schemas/skill.schema.json +7 -0
- package/scripts/smoke_quickstart.py +4 -4
- package/scripts/sync_agent_settings.py +4 -2
- package/scripts/validate_agent_settings.py +120 -0
- package/templates/minimal/.agent-settings.yml +1 -1
- package/dist/ui/assets/index-DVsyUMZe.js.map +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# EV fixtures — known-good rules + odds → tip
|
|
2
|
+
|
|
3
|
+
Sanity-check fixtures for `prediction-pool-optimizer` Step "Self-check". Each
|
|
4
|
+
fixture states a scoring rule, the (de-vigged) market probabilities, and
|
|
5
|
+
the expected-points-maximizing tip. If your method disagrees with a
|
|
6
|
+
fixture, your method is wrong — find the error before shipping a tip.
|
|
7
|
+
|
|
8
|
+
These are illustrative, not exhaustive. Add fixtures for any pool rule
|
|
9
|
+
shape you encounter so future runs catch the same class of drift.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Fixture 1 — standard fixed points, goal "place well"
|
|
14
|
+
|
|
15
|
+
**Rule:** exact result = 4, goal-difference = 3, tendency = 2, else 0.
|
|
16
|
+
No quote rule. No strategy limit. Goal: place well.
|
|
17
|
+
|
|
18
|
+
**Match (football):** de-vigged market — Home 62% / Draw 24% / Away 14%.
|
|
19
|
+
Most plausible exact results (Poisson on market xG ≈ 1.7 : 0.8):
|
|
20
|
+
2:1 ≈ 9%, 1:0 ≈ 9%, 2:0 ≈ 8%, 1:1 ≈ 8%, 3:1 ≈ 6%.
|
|
21
|
+
|
|
22
|
+
**Reasoning:** the single most likely *result* (2:1) and 1:0 both bank the
|
|
23
|
+
tendency (2) on a home win plus goal-difference (3) on many neighbours.
|
|
24
|
+
Expected points of "2:1" beats "tip the favourite to win 3:0" (lower hit
|
|
25
|
+
rate on diff/exact) and beats any draw/away tip (tendency rarely banks).
|
|
26
|
+
|
|
27
|
+
**Known-good tip:** **2:1 home.** (Risk: low.) **Not** contrarian — under
|
|
28
|
+
fixed points only your own tip scores, so deviating costs EV.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Fixture 2 — quote / rarity scoring
|
|
33
|
+
|
|
34
|
+
**Rule:** points = base × rarity multiplier (rarer correct tips score
|
|
35
|
+
more); tendency still banks a small base.
|
|
36
|
+
|
|
37
|
+
**Match (football):** same probabilities as Fixture 1.
|
|
38
|
+
|
|
39
|
+
**Reasoning:** the rarity multiplier can make a plausible-but-uncommon
|
|
40
|
+
exact result (e.g. 3:1, 2:2) outscore the modal 2:1 when
|
|
41
|
+
`payout(result) × P(result)` is higher. Compute EV per candidate including
|
|
42
|
+
the multiplier; take the max.
|
|
43
|
+
|
|
44
|
+
**Known-good tip:** the result with the highest `multiplier × probability`,
|
|
45
|
+
**not** the highest probability — typically a step rarer than 2:1
|
|
46
|
+
(e.g. 3:1 or 2:2 depending on the multiplier curve). (Risk: medium.)
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Fixture 3 — large pool, goal "win it"
|
|
51
|
+
|
|
52
|
+
**Rule:** standard fixed points. Pool N = 400. You are outside the top 20%.
|
|
53
|
+
|
|
54
|
+
**Match (football):** a near-coin-flip favourite, Home 52% / Draw 26% /
|
|
55
|
+
Away 22%.
|
|
56
|
+
|
|
57
|
+
**Reasoning:** with N ≥ 100 and you behind, pure EV converges with the
|
|
58
|
+
field and cannot create the gap you need. Add field-relative variance on a
|
|
59
|
+
*subset*: take a plausible underdog/draw where the consensus is heavy on
|
|
60
|
+
the favourite, sized by a rough Kelly fraction. On safe matches, still
|
|
61
|
+
tip EV-max.
|
|
62
|
+
|
|
63
|
+
**Known-good tip:** EV-max on the safe matches; **calculated underdog**
|
|
64
|
+
(e.g. 1:1 or away) on 2–4 high-consensus matches to manufacture upside.
|
|
65
|
+
(Risk: high — intentional.)
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Fixture 4 — basketball, no draws
|
|
70
|
+
|
|
71
|
+
**Rule:** correct winner = 3, correct margin bucket = +2.
|
|
72
|
+
|
|
73
|
+
**Match (basketball):** market spread Home −6.5, moneyline Home 78%.
|
|
74
|
+
Margin modelled Gaussian, mean ≈ 6.5, sd ≈ 11.
|
|
75
|
+
|
|
76
|
+
**Reasoning:** no draw term exists; optimize winner first (Home banks 3 at
|
|
77
|
+
78%), then the margin bucket from the Gaussian (most mass straddles the
|
|
78
|
+
spread). Tip the winner plus the modal margin bucket.
|
|
79
|
+
|
|
80
|
+
**Known-good tip:** **Home win, margin ~5–9.** (Risk: low on winner.)
|
|
@@ -6,7 +6,7 @@ settings.
|
|
|
6
6
|
|
|
7
7
|
## File format
|
|
8
8
|
|
|
9
|
-
**YAML**, with a single top-level scalar (`
|
|
9
|
+
**YAML**, with a single top-level scalar (`rule_loading_tier`) plus one level of
|
|
10
10
|
grouped sections (`personal`, `project`, `github`, `eloquent`, `pipelines`,
|
|
11
11
|
`subagents`). Comments with `#`.
|
|
12
12
|
|
|
@@ -57,7 +57,7 @@ made by the user directly or by the agent on request, following the
|
|
|
57
57
|
# highest token cost. Pick this when working on agent-config
|
|
58
58
|
# itself or when you need every behavioural rule active.
|
|
59
59
|
# custom = ignore profile — every matrix value must be set explicitly.
|
|
60
|
-
|
|
60
|
+
rule_loading_tier: balanced
|
|
61
61
|
|
|
62
62
|
# --- Personal preferences ---
|
|
63
63
|
personal:
|
|
@@ -132,7 +132,7 @@ eloquent:
|
|
|
132
132
|
# agent session can be resumed. See scripts/chat_history.py for the API.
|
|
133
133
|
#
|
|
134
134
|
# Defaults below are placeholders — scripts/install.py substitutes them
|
|
135
|
-
# per
|
|
135
|
+
# per rule_loading_tier (see config/profiles/*.ini).
|
|
136
136
|
chat_history:
|
|
137
137
|
# Log chat events to disk (true, false)
|
|
138
138
|
enabled: true
|
|
@@ -199,7 +199,7 @@ pipelines:
|
|
|
199
199
|
# Skill improvement pipeline (true, false)
|
|
200
200
|
# true = after meaningful tasks, propose learning capture and improvements (default)
|
|
201
201
|
# false = silent, no post-task analysis
|
|
202
|
-
# Included by every
|
|
202
|
+
# Included by every rule_loading_tier except `custom`.
|
|
203
203
|
skill_improvement: true
|
|
204
204
|
|
|
205
205
|
# --- Roadmap execution ---
|
|
@@ -460,7 +460,7 @@ the canonical narrative lives in
|
|
|
460
460
|
|
|
461
461
|
| Key path | Values | Default | Description |
|
|
462
462
|
|---|---|---|---|
|
|
463
|
-
| `
|
|
463
|
+
| `rule_loading_tier` | `minimal`, `balanced`, `full`, `custom` | `minimal` | Selects which agent surfaces are active. See [Cost profiles](#cost-profiles). |
|
|
464
464
|
| `personal.ide` | `code`, `phpstorm`, `cursor` | _(empty)_ | CLI command to open files in the IDE |
|
|
465
465
|
| `personal.open_edited_files` | `true`, `false` | `false` | Auto-open edited files in the IDE after edits |
|
|
466
466
|
| `personal.user_name` | first name | _(empty)_ | User's first name, used to address the user personally. Captured by `/onboard`. |
|
|
@@ -527,7 +527,7 @@ Applied automatically when `scripts/install` finds a legacy `.agent-settings`
|
|
|
527
527
|
|
|
528
528
|
| Legacy flat key | New YAML path |
|
|
529
529
|
|---|---|
|
|
530
|
-
| `
|
|
530
|
+
| `rule_loading_tier` | `rule_loading_tier` |
|
|
531
531
|
| `ide` | `personal.ide` |
|
|
532
532
|
| `open_edited_files` | `personal.open_edited_files` |
|
|
533
533
|
| `user_name` | `personal.user_name` |
|
|
@@ -550,7 +550,7 @@ so nothing is silently dropped; the migration log points them out.
|
|
|
550
550
|
|
|
551
551
|
## Cost profiles
|
|
552
552
|
|
|
553
|
-
The `
|
|
553
|
+
The `rule_loading_tier` setting selects which agent surfaces are active. See
|
|
554
554
|
`docs/customization.md` for the authoritative description.
|
|
555
555
|
|
|
556
556
|
| Profile | Description |
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# Precedence (lowest → highest):
|
|
8
8
|
# 1. Package defaults (shipped by event4u/agent-config)
|
|
9
9
|
# 2. ~/.event4u/agent-config/agent-settings.yml — user-global DX-comfort
|
|
10
|
-
# defaults (whitelist: name, ide,
|
|
10
|
+
# defaults (whitelist: name, ide, rule_loading_tier, personal.bot_icon,
|
|
11
11
|
# personal.autonomy, telegraph.speak_scope). Created on opt-in via
|
|
12
12
|
# /onboard; project-local files always win. Legacy
|
|
13
13
|
# ~/.config/agent-config/agent-settings.yml is read as a fallback.
|
|
@@ -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.py (road-to-
|
|
41
41
|
# portable-runtime-and-update-check P3.3).
|
|
42
|
-
agent_config_version: "
|
|
42
|
+
agent_config_version: "5.6.1"
|
|
43
43
|
|
|
44
44
|
# --- Project identity ---
|
|
45
45
|
project:
|
|
@@ -64,7 +64,7 @@ def _build_hook_registry(args: argparse.Namespace) -> HookRegistry:
|
|
|
64
64
|
gate_hook.register(registry)
|
|
65
65
|
if settings.memory_visibility:
|
|
66
66
|
MemoryVisibilityHook(
|
|
67
|
-
|
|
67
|
+
memory_cadence=settings.memory_cadence,
|
|
68
68
|
visibility_off=settings.memory_visibility_off,
|
|
69
69
|
).register(registry)
|
|
70
70
|
if settings.chat_history_enabled:
|
|
@@ -43,10 +43,12 @@ class MemoryVisibilityHook:
|
|
|
43
43
|
|
|
44
44
|
Parameters
|
|
45
45
|
----------
|
|
46
|
-
|
|
47
|
-
Cadence
|
|
48
|
-
``
|
|
49
|
-
unless ``asks ≥ 3``
|
|
46
|
+
memory_cadence:
|
|
47
|
+
Cadence from ``memory.cadence`` in ``.agent-settings.yml``
|
|
48
|
+
(``auto`` / ``always`` / ``never``). ``auto`` suppresses the
|
|
49
|
+
line unless ``asks ≥ 3``; ``never`` suppresses it entirely;
|
|
50
|
+
``always`` (default) emits whenever ``asks ≥ 1`` per the
|
|
51
|
+
contract's cadence table.
|
|
50
52
|
visibility_off:
|
|
51
53
|
When ``True``, the hook stays silent — used to mirror
|
|
52
54
|
``memory.visibility: off`` in the consumer settings.
|
|
@@ -59,11 +61,11 @@ class MemoryVisibilityHook:
|
|
|
59
61
|
def __init__(
|
|
60
62
|
self,
|
|
61
63
|
*,
|
|
62
|
-
|
|
64
|
+
memory_cadence: str = "always",
|
|
63
65
|
visibility_off: bool = False,
|
|
64
66
|
asked_types: Iterable[str] | None = None,
|
|
65
67
|
) -> None:
|
|
66
|
-
self.
|
|
68
|
+
self._memory_cadence = memory_cadence
|
|
67
69
|
self._visibility_off = visibility_off
|
|
68
70
|
self._asked_types = (
|
|
69
71
|
tuple(asked_types) if asked_types is not None else DEFAULT_ASKED_TYPES
|
|
@@ -81,7 +83,7 @@ class MemoryVisibilityHook:
|
|
|
81
83
|
summary = summarise_visibility(memory, asked_types=self._asked_types)
|
|
82
84
|
if not should_emit(
|
|
83
85
|
summary,
|
|
84
|
-
|
|
86
|
+
memory_cadence=self._memory_cadence,
|
|
85
87
|
visibility_off=self._visibility_off,
|
|
86
88
|
):
|
|
87
89
|
return
|
|
@@ -16,7 +16,7 @@ settings.py``):
|
|
|
16
16
|
|
|
17
17
|
Per road-to-portable-dev-preferences P3, the YAML read goes through
|
|
18
18
|
:func:`work_engine._lib.agent_settings.load_agent_settings`, which
|
|
19
|
-
cascades the whitelisted ``
|
|
19
|
+
cascades the whitelisted ``rule_loading_tier`` (and other DX-comfort keys)
|
|
20
20
|
from ``~/.event4u/agent-config/agent-settings.yml`` (legacy
|
|
21
21
|
``~/.config/agent-config/agent-settings.yml`` read as fallback) when
|
|
22
22
|
the project file omits them. Project values always win.
|
|
@@ -61,7 +61,7 @@ class HookSettings:
|
|
|
61
61
|
decision_trace: bool = False
|
|
62
62
|
memory_visibility: bool = False
|
|
63
63
|
memory_visibility_off: bool = False
|
|
64
|
-
|
|
64
|
+
memory_cadence: str = "always"
|
|
65
65
|
chat_history_enabled: bool = False
|
|
66
66
|
chat_history_script: str = DEFAULT_CHAT_HISTORY_SCRIPT
|
|
67
67
|
decision_engine: DecisionEngineSettings = DecisionEngineSettings()
|
|
@@ -82,8 +82,8 @@ def load_hook_settings(
|
|
|
82
82
|
``~/.event4u/agent-config/agent-settings.yml`` (with a read fallback
|
|
83
83
|
to the legacy ``~/.config/agent-config/agent-settings.yml``) and
|
|
84
84
|
only cascades the whitelisted DX-comfort keys (currently
|
|
85
|
-
``
|
|
86
|
-
road-to-portable-dev-preferences P3.
|
|
85
|
+
``rule_loading_tier`` and ``memory.cadence``) when the project file
|
|
86
|
+
omits them. See road-to-portable-dev-preferences P3.
|
|
87
87
|
"""
|
|
88
88
|
path = Path(settings_path) if settings_path else Path(DEFAULT_SETTINGS_FILE)
|
|
89
89
|
raw = load_agent_settings(
|
|
@@ -133,12 +133,16 @@ def _settings_from_raw(data: dict[str, Any]) -> HookSettings:
|
|
|
133
133
|
|
|
134
134
|
memory_section = data.get("memory")
|
|
135
135
|
visibility_off = False
|
|
136
|
+
memory_cadence = "always"
|
|
136
137
|
if isinstance(memory_section, dict):
|
|
137
138
|
raw = memory_section.get("visibility")
|
|
138
139
|
if isinstance(raw, str) and raw.strip().lower() == "off":
|
|
139
140
|
visibility_off = True
|
|
140
141
|
elif isinstance(raw, bool) and raw is False:
|
|
141
142
|
visibility_off = True
|
|
143
|
+
cadence_raw = memory_section.get("cadence")
|
|
144
|
+
if cadence_raw is not None:
|
|
145
|
+
memory_cadence = str(cadence_raw).strip().lower() or "always"
|
|
142
146
|
|
|
143
147
|
memory_hooks = hooks.get("memory_visibility")
|
|
144
148
|
if isinstance(memory_hooks, dict):
|
|
@@ -148,11 +152,6 @@ def _settings_from_raw(data: dict[str, Any]) -> HookSettings:
|
|
|
148
152
|
else:
|
|
149
153
|
memory_visibility_on = True
|
|
150
154
|
|
|
151
|
-
cost_profile_raw = data.get("cost_profile") or "standard"
|
|
152
|
-
cost_profile = (
|
|
153
|
-
str(cost_profile_raw).strip().lower() or "standard"
|
|
154
|
-
)
|
|
155
|
-
|
|
156
155
|
return HookSettings(
|
|
157
156
|
enabled=True,
|
|
158
157
|
trace=_coerce_bool(hooks.get("trace"), False),
|
|
@@ -168,7 +167,7 @@ def _settings_from_raw(data: dict[str, Any]) -> HookSettings:
|
|
|
168
167
|
decision_trace=decision_trace_on,
|
|
169
168
|
memory_visibility=memory_visibility_on,
|
|
170
169
|
memory_visibility_off=visibility_off,
|
|
171
|
-
|
|
170
|
+
memory_cadence=memory_cadence,
|
|
172
171
|
chat_history_enabled=chat_block_enabled and global_chat_on,
|
|
173
172
|
chat_history_script=chat_script,
|
|
174
173
|
decision_engine=decision_engine_settings,
|
|
@@ -242,17 +242,30 @@ def format_changed_decisions_block(
|
|
|
242
242
|
def should_emit(
|
|
243
243
|
summary: dict[str, Any],
|
|
244
244
|
*,
|
|
245
|
-
|
|
245
|
+
memory_cadence: str = "always",
|
|
246
246
|
visibility_off: bool = False,
|
|
247
247
|
) -> bool:
|
|
248
|
-
"""Apply the cadence + opt-out gates from the contract.
|
|
248
|
+
"""Apply the cadence + opt-out gates from the contract.
|
|
249
|
+
|
|
250
|
+
``memory_cadence`` is the ``memory.cadence`` cadence key:
|
|
251
|
+
|
|
252
|
+
* ``always`` (default) — emit whenever ``asks >= 1``.
|
|
253
|
+
* ``auto`` — emit only when ``asks >= 3`` (reduces noise on
|
|
254
|
+
shallow-retrieval steps).
|
|
255
|
+
* ``never`` — suppress the line entirely.
|
|
256
|
+
|
|
257
|
+
``visibility_off`` is the legacy ``memory.visibility: off`` master
|
|
258
|
+
switch and still wins over any ``memory_cadence`` value.
|
|
259
|
+
"""
|
|
249
260
|
if visibility_off:
|
|
250
261
|
return False
|
|
251
262
|
asks = int(summary.get("asks", 0) or 0)
|
|
252
263
|
if asks <= 0:
|
|
253
264
|
return False
|
|
254
|
-
|
|
255
|
-
if
|
|
265
|
+
status = (memory_cadence or "always").strip().lower()
|
|
266
|
+
if status == "never":
|
|
267
|
+
return False
|
|
268
|
+
if status == "auto":
|
|
256
269
|
return asks >= 3
|
|
257
270
|
return True
|
|
258
271
|
|
|
@@ -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": "5.
|
|
9
|
+
"version": "5.7.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
|
@@ -292,6 +292,8 @@
|
|
|
292
292
|
"./.claude/skills/post-as",
|
|
293
293
|
"./.claude/skills/post-as-ghostwriter",
|
|
294
294
|
"./.claude/skills/post-as-me",
|
|
295
|
+
"./.claude/skills/prediction-pool",
|
|
296
|
+
"./.claude/skills/prediction-pool-optimizer",
|
|
295
297
|
"./.claude/skills/prepare-for-review",
|
|
296
298
|
"./.claude/skills/privacy-review",
|
|
297
299
|
"./.claude/skills/project-analysis-core",
|
package/CHANGELOG.md
CHANGED
|
@@ -811,6 +811,63 @@ our recommendation order, not its support status.
|
|
|
811
811
|
> that forces a new era split (`# Era: 5.5.x`, etc.) — see
|
|
812
812
|
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
813
813
|
|
|
814
|
+
## [5.7.0](https://github.com/event4u-app/agent-config/compare/5.6.1...5.7.0) (2026-06-01)
|
|
815
|
+
|
|
816
|
+
### Features
|
|
817
|
+
|
|
818
|
+
* **settings:** enum-validate value-bearing settings keys in CI ([b6c56d0](https://github.com/event4u-app/agent-config/commit/b6c56d088b1b8cfa549374e864bb3dcc203972fb))
|
|
819
|
+
* **value:** honest eager-vs-thin cost ladder in the value dashboard ([9a806c4](https://github.com/event4u-app/agent-config/commit/9a806c466e171f8a83e743990bc9350192745da5))
|
|
820
|
+
* **fun:** add /tippspiel command + tippspiel-optimizer skill in new pack-fun ([4c8fc65](https://github.com/event4u-app/agent-config/commit/4c8fc65473556ce3635a6fdcad67096c0c15886f))
|
|
821
|
+
* **skills:** add skill-composition graph + co-availability gate (roadmap 3.4) ([6db3afa](https://github.com/event4u-app/agent-config/commit/6db3afa8738331c2e85fb1f75dceb9943b2a2599))
|
|
822
|
+
|
|
823
|
+
### Bug Fixes
|
|
824
|
+
|
|
825
|
+
* **install:** hand off global install to the browser wizard with zero terminal prompts ([0fc46e3](https://github.com/event4u-app/agent-config/commit/0fc46e3e29220bcebfe6c97316309502ee2b7ee4))
|
|
826
|
+
* **wizard:** disambiguate the rule-loading / budget / model step ([122244c](https://github.com/event4u-app/agent-config/commit/122244c859b0c9da61e60a58fa220fb6c8f699d1))
|
|
827
|
+
* **cost-report:** recommend the model tier before rule loading ([2545c27](https://github.com/event4u-app/agent-config/commit/2545c277e5cc930a1e493dbf78e3ef3fe11933aa))
|
|
828
|
+
* **condense:** quote frontmatter descriptions in cursor/windsurf rules ([c69c9bb](https://github.com/event4u-app/agent-config/commit/c69c9bbb56bce9c01284db90936fd7b432278ffb))
|
|
829
|
+
* **install:** always overwrite our own deployed files, drop foreign-file gate ([25b593d](https://github.com/event4u-app/agent-config/commit/25b593d96da87e61f29844db088b01a346d07d81))
|
|
830
|
+
* **ci:** mirror memory.cadence into the source loader + TS settings schema ([2a74eff](https://github.com/event4u-app/agent-config/commit/2a74eff244c76830745c9d1e319d6abd5fe1d80b))
|
|
831
|
+
* **memory:** give the visibility-line cadence its own memory.cadence key ([e792390](https://github.com/event4u-app/agent-config/commit/e792390f59b01190769cba1f369bb574c83847bd))
|
|
832
|
+
* **rules:** trim non-destructive description to the 190-char schema cap ([b2a489e](https://github.com/event4u-app/agent-config/commit/b2a489ecf9fcbadf5232417f2503fddbab657fdb))
|
|
833
|
+
* **rules:** make production-branch commits a Hard-Floor opt-in (kernel) ([31f49a9](https://github.com/event4u-app/agent-config/commit/31f49a9af7fc0fb495556e8570e0adbfcb031416))
|
|
834
|
+
* **discovery:** register 'fun' in discovery-manifest schema enum ([7b91f12](https://github.com/event4u-app/agent-config/commit/7b91f12fa4e1e805a121a0fd7c9adb2760f5f122))
|
|
835
|
+
|
|
836
|
+
### Documentation
|
|
837
|
+
|
|
838
|
+
* **install:** record ADR-036 + roadmap Phase 6 for the browser-wizard handoff ([f3cc886](https://github.com/event4u-app/agent-config/commit/f3cc886618526b1c705a2a25c1ee98eb4063a188))
|
|
839
|
+
* **roadmap:** close + archive cost_profile untangle (phases 0-7; 4 items cancelled-with-follow-up) ([296b0da](https://github.com/event4u-app/agent-config/commit/296b0da47fc0ceed399438e4c5cb5801df0ea1b7))
|
|
840
|
+
* record cost_profile untangle (ADR-036 + BREAKING_CHANGES + disambiguation) ([efa658a](https://github.com/event4u-app/agent-config/commit/efa658acaef31bb1d1a9ddb565b5093b03f7d62e))
|
|
841
|
+
* **roadmap:** add cost_profile untangle roadmap ([708033c](https://github.com/event4u-app/agent-config/commit/708033cb5649c1d9583ea42a397795cf198b3493))
|
|
842
|
+
|
|
843
|
+
### Refactoring
|
|
844
|
+
|
|
845
|
+
* **settings:** rename cost_profile to rule_loading_tier across the suite ([21a31cb](https://github.com/event4u-app/agent-config/commit/21a31cb9746996324e9a49d82ad87084fb605c87))
|
|
846
|
+
* **fun:** English command name + expanded triggers ([62c960e](https://github.com/event4u-app/agent-config/commit/62c960eac79cdbc2883ac4727fe05d651f9497b8))
|
|
847
|
+
|
|
848
|
+
### Chores
|
|
849
|
+
|
|
850
|
+
* update agent work ([7ed0cbb](https://github.com/event4u-app/agent-config/commit/7ed0cbbe45e33757f8fa59048d6f9212110da8c1))
|
|
851
|
+
* sync agent-project-settings example pin to package.json (5.6.1) ([194a040](https://github.com/event4u-app/agent-config/commit/194a040628b21c2f61b1096f956f350eed131ec6))
|
|
852
|
+
* regenerate index + catalog after rename ([1c6dc68](https://github.com/event4u-app/agent-config/commit/1c6dc68416570f47bf8578d60c508f0acd185993))
|
|
853
|
+
* regenerate derived trees after merging main ([1f0ad58](https://github.com/event4u-app/agent-config/commit/1f0ad582d9a757acafd470d1fdd32adc362a2a49))
|
|
854
|
+
* regenerate derived trees for the prediction-pool rename ([bb3225f](https://github.com/event4u-app/agent-config/commit/bb3225fa91e78bfa640d33d501175b586cbd7de7))
|
|
855
|
+
* regenerate derived trees for pack-fun ([4125ba5](https://github.com/event4u-app/agent-config/commit/4125ba583cadd25ec29c23999287fc42fcc3d991))
|
|
856
|
+
* update condensation hashes after requires_skills frontmatter ([baf60e5](https://github.com/event4u-app/agent-config/commit/baf60e58328051176a519628dd56f879a5c4dd86))
|
|
857
|
+
* **roadmap:** re-examine lean-buildout disposition — 3.4 built, rest confirmed ([d88b633](https://github.com/event4u-app/agent-config/commit/d88b6332181013dc1757c317453519cadee3f63a))
|
|
858
|
+
* **roadmap:** close + archive lean-buildout roadmap (council-resolved) ([303ca6b](https://github.com/event4u-app/agent-config/commit/303ca6b6346298601fb789d08d003e023ab26ac4))
|
|
859
|
+
|
|
860
|
+
Tests: 5375 (+0 since 5.6.1)
|
|
861
|
+
|
|
862
|
+
## [5.6.1](https://github.com/event4u-app/agent-config/compare/5.6.0...5.6.1) (2026-06-01)
|
|
863
|
+
|
|
864
|
+
### Bug Fixes
|
|
865
|
+
|
|
866
|
+
* **mcp:** send bearer auth in post-deploy smoke probe ([9d12489](https://github.com/event4u-app/agent-config/commit/9d124894b03e5e962e8014171f965ce9367de58d))
|
|
867
|
+
* correct gzip kwarg in pack_mcp_content (condenselevel -> compresslevel) ([6d27677](https://github.com/event4u-app/agent-config/commit/6d2767736d6d20327a5853875fd4e9cb172babcc))
|
|
868
|
+
|
|
869
|
+
Tests: 5375 (+0 since 5.6.0)
|
|
870
|
+
|
|
814
871
|
## [5.6.0](https://github.com/event4u-app/agent-config/compare/5.5.0...5.6.0) (2026-05-31)
|
|
815
872
|
|
|
816
873
|
### Features
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [](https://www.npmjs.com/package/@event4u/agent-config)
|
|
6
6
|
|
|
7
|
-
[](.agent-src/skills/) [](.agent-src/rules/) [](.agent-src/commands/) [](docs/guidelines/) [](.agent-src/personas/) [](.agent-src/personas/advisors/)
|
|
8
8
|
|
|
9
9
|
> **The Universal AI Agent OS for Founders, Content Creators, Consultants, Sales, Finance, and Engineering teams. Bring your own AI provider.**
|
|
10
10
|
|
|
@@ -369,7 +369,7 @@ When a prompt matches a command's purpose ("setze ticket ABC-123 um" → `/imple
|
|
|
369
369
|
| [**Migration**](docs/MIGRATION.md) | Per-version upgrade steps |
|
|
370
370
|
| [**Showcase**](docs/showcase.md) | More examples & expected behavior |
|
|
371
371
|
|
|
372
|
-
Browse content: [all
|
|
372
|
+
Browse content: [all 146 commands](.agent-src/commands/) · [skills catalog](docs/skills-catalog.md) · [full catalog](docs/catalog.md) · [`llms.txt`](llms.txt).
|
|
373
373
|
|
|
374
374
|
---
|
|
375
375
|
|
|
@@ -28,7 +28,7 @@ agent_config_version: ""
|
|
|
28
28
|
# balanced = kernel + tier-1 auto-rules (default — current behaviour superset).
|
|
29
29
|
# full = kernel + tier-1 + tier-2 (everything, highest token cost).
|
|
30
30
|
# custom = ignore profile — every matrix value must be set explicitly.
|
|
31
|
-
|
|
31
|
+
rule_loading_tier: __RULE_LOADING_TIER__
|
|
32
32
|
|
|
33
33
|
# --- Lean projection (experimental, opt-in) ---
|
|
34
34
|
#
|
|
@@ -220,7 +220,7 @@ pipelines:
|
|
|
220
220
|
# Skill improvement pipeline (true, false)
|
|
221
221
|
# true = after meaningful tasks, propose learning capture and improvements (default)
|
|
222
222
|
# false = silent, no post-task analysis
|
|
223
|
-
# Included by every
|
|
223
|
+
# Included by every rule_loading_tier except `custom`. Flip to false here if you
|
|
224
224
|
# want a silent agent; `custom` profile ignores this default entirely.
|
|
225
225
|
skill_improvement: true
|
|
226
226
|
|
|
@@ -429,6 +429,15 @@ commands:
|
|
|
429
429
|
# docs/contracts/agent-memory-contract.md for the on-disk shape and
|
|
430
430
|
# .augment/skills/memory-consolidation/ for the four-phase loop.
|
|
431
431
|
memory:
|
|
432
|
+
# Cadence for the "🧠 Memory: <hits>/<asks>" visibility line emitted
|
|
433
|
+
# after a memory-consulting step (see docs/contracts/memory-visibility-v1.md).
|
|
434
|
+
# always = (default) emit whenever at least one memory type was asked.
|
|
435
|
+
# auto = emit only when ≥ 3 memory types were consulted (less noise
|
|
436
|
+
# on shallow-retrieval steps).
|
|
437
|
+
# never = suppress the line entirely.
|
|
438
|
+
# The legacy `memory.visibility: off` master switch still wins over this.
|
|
439
|
+
cadence: always
|
|
440
|
+
|
|
432
441
|
# Inline-review threshold for /memory load.
|
|
433
442
|
# When the unreviewed intake stream contains more than this many
|
|
434
443
|
# entries, /memory load surfaces a top-3 preview block before the
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
label: Product Basic
|
|
80
80
|
description: Core PO/PM artefacts (ticket refinement, AC, estimation).
|
|
81
81
|
workspaces: [product]
|
|
82
|
+
requires_hint: [engineering-base]
|
|
82
83
|
trust_level_default: professional
|
|
83
84
|
|
|
84
85
|
- id: product-discovery
|
|
@@ -163,6 +164,16 @@
|
|
|
163
164
|
example_workflow: scene-expander
|
|
164
165
|
time_to_first_value_minutes: 12
|
|
165
166
|
|
|
167
|
+
- id: fun
|
|
168
|
+
label: Fun
|
|
169
|
+
description: Non-essential social/fun workflows (prediction-pool tips, etc.).
|
|
170
|
+
workspaces: [small-business]
|
|
171
|
+
trust_level_default: experimental
|
|
172
|
+
onboarding:
|
|
173
|
+
first_win_doc: FIRST_WIN.md
|
|
174
|
+
example_workflow: prediction-pool-optimizer
|
|
175
|
+
time_to_first_value_minutes: 6
|
|
176
|
+
|
|
166
177
|
- id: meta
|
|
167
178
|
label: Meta
|
|
168
179
|
description: Artefacts that maintain this package (agent-config itself).
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
; a shell command can be invoked via scripts/runtime_dispatcher.py.
|
|
8
8
|
; See docs/customization.md for the full profile description.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
rule_loading_tier=balanced
|
|
11
11
|
|
|
12
12
|
; Chat history (crash recovery) — balanced = phase-level traceability
|
|
13
13
|
chat_history_frequency=per_phase
|
package/config/profiles/full.ini
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
; read-only and opt-in per call. See docs/customization.md for the full
|
|
8
8
|
; profile description.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
rule_loading_tier=full
|
|
11
11
|
|
|
12
12
|
; Chat history (crash recovery) — full = tool-level traceability + summarize on overflow
|
|
13
13
|
chat_history_frequency=per_tool
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
; profile description. scripts/install.py merges this file with
|
|
8
8
|
; config/agent-settings.template.ini to produce the user's .agent-settings.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
rule_loading_tier=minimal
|
|
11
11
|
|
|
12
12
|
; Chat history (crash recovery) — minimal = lightest footprint
|
|
13
13
|
chat_history_frequency=per_turn
|