@event4u/agent-config 5.5.0 → 5.6.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.
- package/.agent-src/commands/image/analyse.md +51 -0
- package/.agent-src/commands/image/create.md +53 -0
- package/.agent-src/commands/image/verify.md +48 -0
- package/.agent-src/commands/image.md +69 -0
- package/.agent-src/commands/video/from-song.md +40 -6
- package/.agent-src/contexts/authority/commit-mechanics.md +8 -0
- package/.agent-src/rules/commit-policy.md +3 -8
- package/.agent-src/rules/media-sync-ground-truth.md +58 -0
- package/.agent-src/skills/image-analyser/SKILL.md +121 -0
- package/.agent-src/skills/image-analyser/canon-spec.md +109 -0
- package/.agent-src/skills/image-analyser/evals/triggers.json +16 -0
- package/.agent-src/skills/image-creator/SKILL.md +117 -0
- package/.agent-src/skills/image-creator/evals/triggers.json +16 -0
- package/.agent-src/skills/song-to-script/SKILL.md +36 -13
- package/.claude-plugin/marketplace.json +7 -1
- package/CHANGELOG.md +56 -0
- package/README.md +2 -2
- package/config/agent-settings.template.yml +18 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +171 -18
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +15 -8
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +13 -6
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/router.json +1 -1
- package/dist/server/schemas/settings.js +4 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/architecture.md +3 -3
- package/docs/catalog.md +20 -6
- package/docs/contracts/benchmark-report-schema.md +12 -10
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/rule-router.md +39 -0
- package/docs/contracts/value-dashboard-spec.md +7 -3
- package/docs/contracts/value-report-schema.md +6 -1
- package/docs/getting-started.md +2 -2
- package/docs/value.md +17 -17
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/_lib/bench_report.py +13 -14
- package/scripts/_lib/bench_telegraph_report.py +1 -2
- package/scripts/_lib/token_count.py +95 -0
- package/scripts/_lib/value_report.py +3 -3
- package/scripts/ai-video/adapters/higgsfield.sh +163 -6
- package/scripts/ai-video/adapters/openai-images.sh +92 -6
- package/scripts/audit_auto_rules.py +22 -6
- package/scripts/audit_command_surface.py +6 -1
- package/scripts/audit_initial_context.py +210 -0
- package/scripts/bench_ab_diff.py +4 -11
- package/scripts/bench_run.py +2 -3
- package/scripts/bench_runner.py +2 -2
- package/scripts/condense.py +44 -3
- package/scripts/iron_law_sha.py +14 -5
- package/scripts/measure_rule_budget.py +15 -0
- package/scripts/pack_mcp_content.py +1 -1
- package/scripts/project_thin_rules.py +168 -0
- package/scripts/render_value_md.py +14 -23
- package/scripts/schemas/command.schema.json +1 -1
- package/scripts/schemas/rule.schema.json +1 -1
- package/scripts/schemas/skill.schema.json +2 -2
- package/scripts/trigger_coverage.py +129 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: high
|
|
3
|
+
name: image-creator
|
|
4
|
+
description: "Use to generate a character image to spec — max-fidelity reproducible prompt from a Canon Spec, anchors-first, provider/governance-gated. Triggers 'generate this character', 'render to spec'."
|
|
5
|
+
personas:
|
|
6
|
+
- hollywood-director
|
|
7
|
+
domain: product
|
|
8
|
+
workspaces:
|
|
9
|
+
- small-business
|
|
10
|
+
packs:
|
|
11
|
+
- ai-video
|
|
12
|
+
lifecycle: experimental
|
|
13
|
+
trust:
|
|
14
|
+
level: experimental
|
|
15
|
+
install:
|
|
16
|
+
default: false
|
|
17
|
+
removable: true
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# image-creator
|
|
21
|
+
|
|
22
|
+
> Turn a **Canon Spec** + a scene into a maximally-detailed, reproducible
|
|
23
|
+
> generation prompt that renders a character to spec — then hand the result to
|
|
24
|
+
> [`image-analyser`](../image-analyser/SKILL.md) to verify. The loop partner.
|
|
25
|
+
> Schema + rubric + loop: [`canon-spec.md`](../image-analyser/canon-spec.md).
|
|
26
|
+
|
|
27
|
+
## When to use
|
|
28
|
+
|
|
29
|
+
- "Generate / render / create this character", "render Veikko in scene X to
|
|
30
|
+
spec", "make the image match the canon".
|
|
31
|
+
- Inside the fidelity loop, fed by `image-analyser`'s correction directives.
|
|
32
|
+
|
|
33
|
+
NOT for: scene blocking / motion (→ `video-director`, `motion-choreographer`,
|
|
34
|
+
which take a verified still from here), non-character art (→ `canvas-design`).
|
|
35
|
+
|
|
36
|
+
## Input
|
|
37
|
+
|
|
38
|
+
- Character id / Canon Spec (`agents/reference/ai-video/<project>/characters/<id>.json`).
|
|
39
|
+
- Scene brief (setting + pose). Optional: prior `image-analyser` diff (loop mode).
|
|
40
|
+
|
|
41
|
+
## Procedure
|
|
42
|
+
|
|
43
|
+
1. **Governance gate FIRST** (per `media-governance-routing`): if the character
|
|
44
|
+
is a real-person likeness, consult `agents/settings/policies/media/likeness.md`
|
|
45
|
+
+ `public-figures.md` + `disclosure.md` before emitting anything. Fictional
|
|
46
|
+
characters (odins-beard trio) are exempt; the routing decision is in-session.
|
|
47
|
+
2. **Provider gate** (per `provider-lifecycle-discipline`): read the resolved
|
|
48
|
+
provider's tier; if non-stable (experimental/deprecated/community), surface
|
|
49
|
+
the tier and ask before running. Never default to a non-stable provider
|
|
50
|
+
silently. Name the provider + tier in the run summary.
|
|
51
|
+
3. **Assemble the prompt from the spec — anchors first.** Order matters: the
|
|
52
|
+
hard-to-render `identity_anchors` go at the TOP (the canon's lesson —
|
|
53
|
+
heterochromia + hair-split get forgotten if buried). Then physique, face
|
|
54
|
+
(+ marks), per-location tattoos (incl. exact `text`), outfit, jewelry.
|
|
55
|
+
4. **Asymmetry block** — for split / heterochromatic characters, an explicit
|
|
56
|
+
left/right section ("LEFT half black / RIGHT half blond", "blue LEFT eye /
|
|
57
|
+
green RIGHT eye") with concrete comparison refs for engines that drop it.
|
|
58
|
+
5. **Negative block + engine settings** — reuse the canon's proven structure
|
|
59
|
+
(negatives that kill "single hair colour", "both eyes same colour", etc.;
|
|
60
|
+
per-engine `--ar`/`--style`/CFG/steps). Do not reinvent; the character book's
|
|
61
|
+
prompt format is the template.
|
|
62
|
+
6. **Generate** through the existing provider/adapter layer
|
|
63
|
+
(`scripts/ai-video/adapters/`, the `/video|image` surface). Do **not** add a
|
|
64
|
+
new provider path where one exists.
|
|
65
|
+
7. **Verify** — hand the output to `image-analyser`; in loop mode, fold its
|
|
66
|
+
correction directives into the next prompt (see the loop in `canon-spec.md`).
|
|
67
|
+
|
|
68
|
+
## Anchors-first — why
|
|
69
|
+
|
|
70
|
+
The fidelity-loss evidence (`img_2.png`): Veikko's split hair + heterochromia
|
|
71
|
+
were missed because they are hard for the engine and were not front-loaded. The
|
|
72
|
+
analyser-derived fixes go to the TOP of the next prompt, with negatives, and the
|
|
73
|
+
loop re-verifies — that is how the smallest mole comes back.
|
|
74
|
+
|
|
75
|
+
## Output format
|
|
76
|
+
|
|
77
|
+
1. **Generation prompt** — anchors block · positive · asymmetry (if any) · negative · engine settings.
|
|
78
|
+
2. **Provider + tier line** (the audit entry).
|
|
79
|
+
3. **Verify call** — the `image-analyser` invocation on the result + the loop stop-state.
|
|
80
|
+
|
|
81
|
+
## Example (anchors-first vs buried)
|
|
82
|
+
|
|
83
|
+
- Safe (Veikko): prompt opens with `HAIR: exact vertical centre split, LEFT pitch-black, RIGHT platinum-blond` + `EYES: heterochromia — LEFT ice-blue, RIGHT forest-green`, then the rest.
|
|
84
|
+
- Unsafe: physique/outfit first, the split + heterochromia in a trailing sentence → the engine drops them (the observed `img_2.png` failure).
|
|
85
|
+
|
|
86
|
+
## Gotchas
|
|
87
|
+
|
|
88
|
+
- Never claim "canon-perfect" without an `image-analyser` pass (per `verify-before-complete`).
|
|
89
|
+
- DALL-E drops heterochromia + split hair — use concrete comparisons; expect multiple generations.
|
|
90
|
+
- Keep the spec the single source: regenerate from the Canon Spec, never paraphrase it into a fresh prompt.
|
|
91
|
+
|
|
92
|
+
## Do NOT
|
|
93
|
+
|
|
94
|
+
- Do NOT claim "canon-perfect" / "matches the canon" without an `image-analyser`
|
|
95
|
+
pass on the output (per `verify-before-complete` — no completion without evidence).
|
|
96
|
+
- Do NOT bury the `identity_anchors` — the hard-to-render features (heterochromia,
|
|
97
|
+
hair-split) go at the TOP of the prompt, never in a trailing sentence.
|
|
98
|
+
- Do NOT default to a non-stable provider silently — surface the tier and ask
|
|
99
|
+
first (per `provider-lifecycle-discipline`).
|
|
100
|
+
- Do NOT emit a prompt for a real-person likeness before the governance gate
|
|
101
|
+
(step 1) clears it.
|
|
102
|
+
- Do NOT add a new provider/generation path where the existing adapter layer
|
|
103
|
+
(`scripts/ai-video/adapters/`) already covers it.
|
|
104
|
+
- Do NOT paraphrase the Canon Spec into a fresh prompt — regenerate from the spec
|
|
105
|
+
so it stays the single source of truth.
|
|
106
|
+
|
|
107
|
+
## Policies
|
|
108
|
+
|
|
109
|
+
`media-governance-routing` + `agents/settings/policies/media/` (likeness, style,
|
|
110
|
+
public-figures, disclosure) — consulted in step 1 before any prompt is emitted
|
|
111
|
+
for a real-person likeness.
|
|
112
|
+
|
|
113
|
+
## Related skills
|
|
114
|
+
|
|
115
|
+
- [`image-analyser`](../image-analyser/SKILL.md) — the verify/loop partner.
|
|
116
|
+
- [`character-consistency`](../character-consistency/SKILL.md) — supplies the locked identity tokens.
|
|
117
|
+
- [`video-director`](../video-director/SKILL.md) / [`motion-choreographer`](../motion-choreographer/SKILL.md) — take the verified still into scene + motion.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "image-creator",
|
|
3
|
+
"description": "5 should-trigger + 5 should-not-trigger. Should-trigger covers generate/render/to-spec/loop-fix paths (DE + EN). Should-not covers near-miss neighbours: analysis (image-analyser), scene/motion (video-director, motion-choreographer), non-character art (canvas-design), and token-lock (character-consistency).",
|
|
4
|
+
"queries": [
|
|
5
|
+
{"q": "generate Veikko in the forge scene, matched to the canon", "trigger": true},
|
|
6
|
+
{"q": "render this character to spec, max detail", "trigger": true},
|
|
7
|
+
{"q": "create the image and make every tattoo placement exact", "trigger": true},
|
|
8
|
+
{"q": "erzeuge das Bild so detailgenau wie möglich nach der Vorlage", "trigger": true},
|
|
9
|
+
{"q": "regenerate with the heterochromia and hair-split fixed", "trigger": true},
|
|
10
|
+
{"q": "analyse this image and tell me what drifted", "trigger": false, "note": "analysis → image-analyser"},
|
|
11
|
+
{"q": "turn this still into a cinematic motion prompt for Veo", "trigger": false, "note": "motion → motion-choreographer"},
|
|
12
|
+
{"q": "expand this one-line idea into a scene blueprint", "trigger": false, "note": "scene → scene-expander/video-director"},
|
|
13
|
+
{"q": "design a tour poster", "trigger": false, "note": "static non-character art → canvas-design"},
|
|
14
|
+
{"q": "lock the character tokens so all scenes reuse them", "trigger": false, "note": "token lock → character-consistency"}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -99,23 +99,46 @@ Then assign per scene:
|
|
|
99
99
|
| breakdown / dip | close-up / detail, quiet, single light source |
|
|
100
100
|
| outro / fade | pull-back, resolve, hold |
|
|
101
101
|
|
|
102
|
-
### Step 3:
|
|
102
|
+
### Step 3: Vocal map — transcribe, never guess (vocal tracks)
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
```
|
|
105
|
+
LYRIC TIMING AND SINGER COME FROM THE TRANSCRIBED AUDIO, NEVER FROM A
|
|
106
|
+
BRIEF / STORY SKELETON OR A GUESSED STRETCH. NEVER PUT ONE SINGER'S
|
|
107
|
+
LINE ON ANOTHER SINGER'S SCENE.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Track has vocals and the run intends lip-sync → build a **vocal map**
|
|
111
|
+
from the real audio before assigning any `dialogue:`:
|
|
112
|
+
|
|
113
|
+
1. **Transcribe** audio to timestamped lines — OpenAI
|
|
114
|
+
`/v1/audio/transcriptions` (`response_format=verbose_json` →
|
|
115
|
+
`segments[].{start,end,text}`) or local whisper. Only source of lyric
|
|
116
|
+
timing.
|
|
117
|
+
2. **Label the singer** per line. Operator who-sings reference (roster, a
|
|
118
|
+
brief naming who sings which line, or a character cast) → match each
|
|
119
|
+
line to its singer. Genuinely ambiguous → mark `singer: "?"` and
|
|
120
|
+
surface; never guess a singer to fill the slot.
|
|
121
|
+
3. **Emit** `<project>/vocal-map.json`: `[{start, end, text, singer}]`,
|
|
122
|
+
timing verbatim from the transcript.
|
|
123
|
+
4. **Place lines into the matching scene's** `dialogue:` block using
|
|
124
|
+
transcript timing, tagged with the singer (`singer: "<line>"`). A
|
|
125
|
+
scene's lip-sync subject MUST be the line's labelled singer.
|
|
126
|
+
|
|
127
|
+
No vocals / no transcript / no lip-sync intent → leave `dialogue:` empty;
|
|
128
|
+
scene is performance / B-roll. **Never fabricate lyrics**, **never
|
|
129
|
+
re-time a line off the brief**, and in style mode `dialogue:` stays empty
|
|
130
|
+
(lip-sync needs a character subject). The `/video:from-song` sign-off
|
|
131
|
+
gate (its Step 6) shows this map for approval before any render.
|
|
111
132
|
|
|
112
133
|
### Step 4: Emit + reconcile
|
|
113
134
|
|
|
114
|
-
Write `<project>/script.md
|
|
115
|
-
|
|
116
|
-
silence-derived, energy-derived, or interval-fallback)
|
|
117
|
-
|
|
118
|
-
|
|
135
|
+
Write `<project>/script.md` (and `<project>/vocal-map.json` when the
|
|
136
|
+
track has vocals). Report the delta, the section→scene map, **the probe
|
|
137
|
+
`method`** (silence-derived, energy-derived, or interval-fallback), **and
|
|
138
|
+
whether lyric timing is transcript-derived** (it must be — never
|
|
139
|
+
brief-derived). If the sum cannot be reconciled (e.g. provider
|
|
140
|
+
max-duration forces more time than the song has), **halt and surface the
|
|
141
|
+
conflict** — do not pad silently.
|
|
119
142
|
|
|
120
143
|
### Step 5: Validate before handoff
|
|
121
144
|
|
|
@@ -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.6.1",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
|
@@ -187,6 +187,12 @@
|
|
|
187
187
|
"./.claude/skills/gtm-launch",
|
|
188
188
|
"./.claude/skills/guideline-writing",
|
|
189
189
|
"./.claude/skills/hiring-loop-design",
|
|
190
|
+
"./.claude/skills/image",
|
|
191
|
+
"./.claude/skills/image-analyse",
|
|
192
|
+
"./.claude/skills/image-analyser",
|
|
193
|
+
"./.claude/skills/image-create",
|
|
194
|
+
"./.claude/skills/image-creator",
|
|
195
|
+
"./.claude/skills/image-verify",
|
|
190
196
|
"./.claude/skills/implement-ticket",
|
|
191
197
|
"./.claude/skills/incident-commander",
|
|
192
198
|
"./.claude/skills/jira-integration",
|
package/CHANGELOG.md
CHANGED
|
@@ -811,6 +811,62 @@ 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.6.1](https://github.com/event4u-app/agent-config/compare/5.6.0...5.6.1) (2026-06-01)
|
|
815
|
+
|
|
816
|
+
### Bug Fixes
|
|
817
|
+
|
|
818
|
+
* **mcp:** send bearer auth in post-deploy smoke probe ([9d12489](https://github.com/event4u-app/agent-config/commit/9d124894b03e5e962e8014171f965ce9367de58d))
|
|
819
|
+
* correct gzip kwarg in pack_mcp_content (condenselevel -> compresslevel) ([6d27677](https://github.com/event4u-app/agent-config/commit/6d2767736d6d20327a5853875fd4e9cb172babcc))
|
|
820
|
+
|
|
821
|
+
Tests: 5375 (+0 since 5.6.0)
|
|
822
|
+
|
|
823
|
+
## [5.6.0](https://github.com/event4u-app/agent-config/compare/5.5.0...5.6.0) (2026-05-31)
|
|
824
|
+
|
|
825
|
+
### Features
|
|
826
|
+
|
|
827
|
+
* **ai-video:** add /image command cluster (analyse/create/verify) ([9d53c81](https://github.com/event4u-app/agent-config/commit/9d53c81e3aed3549c4135a641e306a32fa224a68))
|
|
828
|
+
* **ai-video:** add image-analyser + image-creator character-fidelity skills ([b76a4db](https://github.com/event4u-app/agent-config/commit/b76a4db19d537ad5443f2c920c4701a49d08e584))
|
|
829
|
+
* **ai-video:** extend from-song + song-to-script + adapters; add media-sync-ground-truth rule ([dab9f0f](https://github.com/event4u-app/agent-config/commit/dab9f0f41e0d4b93eef423541269d54408bf36f4))
|
|
830
|
+
* **kernel:** kernel-budget soak — trim commit-policy + scope-control, fences byte-identical (Phase 1) ([b0547f0](https://github.com/event4u-app/agent-config/commit/b0547f0207df6e057e2ff97283391ddad88fd2e3))
|
|
831
|
+
* **schema:** tighten description caps + warning window (Phase 2.1); record 3.2 as obviated ([c65d3ae](https://github.com/event4u-app/agent-config/commit/c65d3ae8b569eb3507b83c31967231e64a31a742))
|
|
832
|
+
* **projection:** thin rule-layer projection behind a flag — measured -35,845 GPT tok (Phase 3.1) ([d786363](https://github.com/event4u-app/agent-config/commit/d7863635ee342ab61210ed14b95eeb1fface9582))
|
|
833
|
+
* **value:** drop the € comparison from the value dashboard — tokens only ([33f6fc8](https://github.com/event4u-app/agent-config/commit/33f6fc81e934ca426e5a4c82c37f41624228a636))
|
|
834
|
+
* **bench:** drop the monetary cost comparison — report tokens only ([1a2d3ad](https://github.com/event4u-app/agent-config/commit/1a2d3ad6a177122f0249bb903b3d7d74d62676e1))
|
|
835
|
+
* **audit:** unified audit:tokens analyzer + budget CI gate (Phase 0B.2/0B.4/1.3/1.4) ([c27061f](https://github.com/event4u-app/agent-config/commit/c27061fd47be600d79a5b0a8484a4061f9cdadfd))
|
|
836
|
+
* **safety:** trigger-coverage MUST-LOAD floor + thin-projection kill-switch (Phase 2) ([b210e0b](https://github.com/event4u-app/agent-config/commit/b210e0b9f402e26c813d6fd45e85fdad42876c1d))
|
|
837
|
+
* **budget:** add real-tokenizer measurement alongside chars (Phase 0B.1) ([1602d7f](https://github.com/event4u-app/agent-config/commit/1602d7f2f41a3d6b1069ad675583262542c970cf))
|
|
838
|
+
|
|
839
|
+
### Bug Fixes
|
|
840
|
+
|
|
841
|
+
* **ai-video:** add workspaces + packs to media-sync-ground-truth rule ([cebe846](https://github.com/event4u-app/agent-config/commit/cebe8465d5cc1b07c8426b91ab52c0fb07e79f5b))
|
|
842
|
+
* sync command count to 145 in README badge + browse lines ([7a881e2](https://github.com/event4u-app/agent-config/commit/7a881e243fe73faad725050d684af682445c4eda))
|
|
843
|
+
* **kernel:** restore 2nd 'Iron Law' mention in commit-policy (obligation-baseline regression from #310) ([693c287](https://github.com/event4u-app/agent-config/commit/693c28791cbe124942835c3b309ca72921ee13f5))
|
|
844
|
+
* **tools:** repoint audit_auto_rules + audit_command_surface to packages/core (Phase 2.3) ([fae234c](https://github.com/event4u-app/agent-config/commit/fae234cfda21372adb493b259a47e8a9a00a0036))
|
|
845
|
+
* **schema:** rule description cap 160 -> 190 (smoke gate treats over-cap as FAIL) ([72f05e0](https://github.com/event4u-app/agent-config/commit/72f05e02cca4e196e514d8f4f573ac9890f52583))
|
|
846
|
+
* **kernel:** repoint iron_law_sha to packages/core layout (Iron-Law SHA gate was broken) ([aab5755](https://github.com/event4u-app/agent-config/commit/aab57558f7047fc21d0107dbab5aa3b49ebe4e2f))
|
|
847
|
+
* **schema:** add lean_projection.mode to the settings schema (template-parity gate) ([51ed03e](https://github.com/event4u-app/agent-config/commit/51ed03ec9e74d4573b7da43a6b45804535986690))
|
|
848
|
+
* **bench:** repoint bench_runner SKILLS_DIR to .agent-src for packages/core layout ([e183527](https://github.com/event4u-app/agent-config/commit/e183527c0efa4e3fe7dfb6a9df2c1e21534925a8))
|
|
849
|
+
|
|
850
|
+
### Performance
|
|
851
|
+
|
|
852
|
+
* **projection:** minimal thin entries — measured saving 35,845 -> 45,182 GPT tok (77%) ([b1aabe0](https://github.com/event4u-app/agent-config/commit/b1aabe05a9e68aa87a8396f3276530d480582dbe))
|
|
853
|
+
|
|
854
|
+
### Documentation
|
|
855
|
+
|
|
856
|
+
* **roadmap:** honest dispositions for remaining build-out items ([68e8bb5](https://github.com/event4u-app/agent-config/commit/68e8bb5ab3ec95c516707d9b8e0f2bfd6f7c5ec9))
|
|
857
|
+
* **roadmap:** land Phase 0+2 of road-to-lean-initial-context; spawn build-out follow-up ([8b0bec2](https://github.com/event4u-app/agent-config/commit/8b0bec2efab7128fa4c45d186e3feea4ebd632f8))
|
|
858
|
+
|
|
859
|
+
### Chores
|
|
860
|
+
|
|
861
|
+
* update reports ([eb52977](https://github.com/event4u-app/agent-config/commit/eb52977cf398f6691e55fc063ba9f1b4f63f03b9))
|
|
862
|
+
* regenerate index + catalog for image skills + /image cluster ([f71f024](https://github.com/event4u-app/agent-config/commit/f71f024dba491ff36c071d9fd25d372e39b0c9c2))
|
|
863
|
+
* regenerate derived (router, marketplace, manifests, counts, command-surface) ([2fcc321](https://github.com/event4u-app/agent-config/commit/2fcc3214451bec3114dee0d55d7f03c0f3392ca0))
|
|
864
|
+
* archive road-to-character-image-fidelity (complete) ([ef16067](https://github.com/event4u-app/agent-config/commit/ef16067c0636a0c8279922bbb160531efb477ddb))
|
|
865
|
+
* track linter-debt roadmap + command-surface report (unrelated to lean-context) ([a52a604](https://github.com/event4u-app/agent-config/commit/a52a6048a55805e5a25b9dc68fd1e98091ba0fec))
|
|
866
|
+
* **router:** regenerate stale dist/router.json from source ([af782fe](https://github.com/event4u-app/agent-config/commit/af782fe179d7ba573ec916e48ac0b9e3752cf6f5))
|
|
867
|
+
|
|
868
|
+
Tests: 5375 (+39 since 5.5.0)
|
|
869
|
+
|
|
814
870
|
## [5.5.0](https://github.com/event4u-app/agent-config/compare/5.4.1...5.5.0) (2026-05-31)
|
|
815
871
|
|
|
816
872
|
### 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 145 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
|
|
|
@@ -30,6 +30,24 @@ agent_config_version: ""
|
|
|
30
30
|
# custom = ignore profile — every matrix value must be set explicitly.
|
|
31
31
|
cost_profile: __COST_PROFILE__
|
|
32
32
|
|
|
33
|
+
# --- Lean projection (experimental, opt-in) ---
|
|
34
|
+
#
|
|
35
|
+
# How the per-tool projector emits the rule layer. See
|
|
36
|
+
# docs/contracts/rule-router.md § Kill-switch.
|
|
37
|
+
#
|
|
38
|
+
# eager-all = every rule body inlined into every projection (DEFAULT,
|
|
39
|
+
# today's behaviour). Safe — bodies are always in context.
|
|
40
|
+
# thin = kernel rules full-bodied + non-kernel rules as
|
|
41
|
+
# router-resolved pointers (the agent loads the body on
|
|
42
|
+
# trigger-match). Measured ~45k GPT-tok lighter per session
|
|
43
|
+
# (77% of the rule layer). EXPERIMENTAL: a thin projection
|
|
44
|
+
# only holds behaviour if the pointer is resolved on match —
|
|
45
|
+
# validate with `task bench:ab:live` before flipping, and
|
|
46
|
+
# keep `task trigger-coverage` at 100%. One-flip revert:
|
|
47
|
+
# set eager-all + `task generate-tools`.
|
|
48
|
+
lean_projection:
|
|
49
|
+
mode: eager-all
|
|
50
|
+
|
|
33
51
|
# --- Cost tracking + budget enforcement ---
|
|
34
52
|
#
|
|
35
53
|
# USD budgets evaluated against `agents/cost-tracking/sessions.jsonl` by
|
|
@@ -1452,6 +1452,94 @@
|
|
|
1452
1452
|
"agent-config-maintainer"
|
|
1453
1453
|
]
|
|
1454
1454
|
},
|
|
1455
|
+
{
|
|
1456
|
+
"category": "command",
|
|
1457
|
+
"checksum": "sha256:426afb09329018fc1e93e3cc339f379dae686cfbdcdcbf2ceb8fc28c7632ade9",
|
|
1458
|
+
"install": {
|
|
1459
|
+
"default": true,
|
|
1460
|
+
"removable": false
|
|
1461
|
+
},
|
|
1462
|
+
"lifecycle": "active",
|
|
1463
|
+
"name": "image",
|
|
1464
|
+
"packs": [
|
|
1465
|
+
"meta"
|
|
1466
|
+
],
|
|
1467
|
+
"path": "packages/core/.agent-src.uncondensed/commands/image.md",
|
|
1468
|
+
"trust": {
|
|
1469
|
+
"confidence": "high",
|
|
1470
|
+
"human_review_required": false,
|
|
1471
|
+
"level": "core"
|
|
1472
|
+
},
|
|
1473
|
+
"workspaces": [
|
|
1474
|
+
"agent-config-maintainer"
|
|
1475
|
+
]
|
|
1476
|
+
},
|
|
1477
|
+
{
|
|
1478
|
+
"category": "command",
|
|
1479
|
+
"checksum": "sha256:51d8c695ca843304e2a413e720b6e38714e2efe1502867ea57e73226dc1a00d2",
|
|
1480
|
+
"install": {
|
|
1481
|
+
"default": true,
|
|
1482
|
+
"removable": false
|
|
1483
|
+
},
|
|
1484
|
+
"lifecycle": "active",
|
|
1485
|
+
"name": "image:analyse",
|
|
1486
|
+
"packs": [
|
|
1487
|
+
"meta"
|
|
1488
|
+
],
|
|
1489
|
+
"path": "packages/core/.agent-src.uncondensed/commands/image/analyse.md",
|
|
1490
|
+
"trust": {
|
|
1491
|
+
"confidence": "high",
|
|
1492
|
+
"human_review_required": false,
|
|
1493
|
+
"level": "core"
|
|
1494
|
+
},
|
|
1495
|
+
"workspaces": [
|
|
1496
|
+
"agent-config-maintainer"
|
|
1497
|
+
]
|
|
1498
|
+
},
|
|
1499
|
+
{
|
|
1500
|
+
"category": "command",
|
|
1501
|
+
"checksum": "sha256:29d05010061853d7097080026ebbfb8e76c4f3bc99af76780440c8c06975ec14",
|
|
1502
|
+
"install": {
|
|
1503
|
+
"default": true,
|
|
1504
|
+
"removable": false
|
|
1505
|
+
},
|
|
1506
|
+
"lifecycle": "active",
|
|
1507
|
+
"name": "image:create",
|
|
1508
|
+
"packs": [
|
|
1509
|
+
"meta"
|
|
1510
|
+
],
|
|
1511
|
+
"path": "packages/core/.agent-src.uncondensed/commands/image/create.md",
|
|
1512
|
+
"trust": {
|
|
1513
|
+
"confidence": "high",
|
|
1514
|
+
"human_review_required": false,
|
|
1515
|
+
"level": "core"
|
|
1516
|
+
},
|
|
1517
|
+
"workspaces": [
|
|
1518
|
+
"agent-config-maintainer"
|
|
1519
|
+
]
|
|
1520
|
+
},
|
|
1521
|
+
{
|
|
1522
|
+
"category": "command",
|
|
1523
|
+
"checksum": "sha256:89bbd844b115c7751023c7c7c2e35936dea440e1db6978045f0a9711c6cda062",
|
|
1524
|
+
"install": {
|
|
1525
|
+
"default": true,
|
|
1526
|
+
"removable": false
|
|
1527
|
+
},
|
|
1528
|
+
"lifecycle": "active",
|
|
1529
|
+
"name": "image:verify",
|
|
1530
|
+
"packs": [
|
|
1531
|
+
"meta"
|
|
1532
|
+
],
|
|
1533
|
+
"path": "packages/core/.agent-src.uncondensed/commands/image/verify.md",
|
|
1534
|
+
"trust": {
|
|
1535
|
+
"confidence": "high",
|
|
1536
|
+
"human_review_required": false,
|
|
1537
|
+
"level": "core"
|
|
1538
|
+
},
|
|
1539
|
+
"workspaces": [
|
|
1540
|
+
"agent-config-maintainer"
|
|
1541
|
+
]
|
|
1542
|
+
},
|
|
1455
1543
|
{
|
|
1456
1544
|
"category": "command",
|
|
1457
1545
|
"checksum": "sha256:832051aaea9f0f9b2b8ae8af36d07b4b7491ef531bd095bd752034a2cb15b6d5",
|
|
@@ -2994,7 +3082,7 @@
|
|
|
2994
3082
|
},
|
|
2995
3083
|
{
|
|
2996
3084
|
"category": "command",
|
|
2997
|
-
"checksum": "sha256:
|
|
3085
|
+
"checksum": "sha256:529966acac18a3bdd79dfdae55ca332b8ecd222a65dac26b965023ae88513eed",
|
|
2998
3086
|
"install": {
|
|
2999
3087
|
"default": false,
|
|
3000
3088
|
"removable": true
|
|
@@ -3356,7 +3444,7 @@
|
|
|
3356
3444
|
},
|
|
3357
3445
|
{
|
|
3358
3446
|
"category": "rule",
|
|
3359
|
-
"checksum": "sha256:
|
|
3447
|
+
"checksum": "sha256:498c1dbb98847207442cc123bd54a3c36a98635198ba863660fd71cfdfeabae2",
|
|
3360
3448
|
"install": {
|
|
3361
3449
|
"default": true,
|
|
3362
3450
|
"removable": false
|
|
@@ -3859,6 +3947,27 @@
|
|
|
3859
3947
|
"agent-config-maintainer"
|
|
3860
3948
|
]
|
|
3861
3949
|
},
|
|
3950
|
+
{
|
|
3951
|
+
"category": "rule",
|
|
3952
|
+
"checksum": "sha256:365b53c303286784c7509ff3b884796bd9fca58579b68e593ec9c2f77a54fc9b",
|
|
3953
|
+
"install": {
|
|
3954
|
+
"default": true,
|
|
3955
|
+
"removable": false
|
|
3956
|
+
},
|
|
3957
|
+
"lifecycle": "active",
|
|
3958
|
+
"packs": [
|
|
3959
|
+
"meta"
|
|
3960
|
+
],
|
|
3961
|
+
"path": "packages/core/.agent-src.uncondensed/rules/media-sync-ground-truth.md",
|
|
3962
|
+
"trust": {
|
|
3963
|
+
"confidence": "high",
|
|
3964
|
+
"human_review_required": false,
|
|
3965
|
+
"level": "core"
|
|
3966
|
+
},
|
|
3967
|
+
"workspaces": [
|
|
3968
|
+
"agent-config-maintainer"
|
|
3969
|
+
]
|
|
3970
|
+
},
|
|
3862
3971
|
{
|
|
3863
3972
|
"category": "rule",
|
|
3864
3973
|
"checksum": "sha256:9f639b9cc1ec55ceeb6d38b4936b2741952cde4311aacb520a30ce9f0837fbd0",
|
|
@@ -4283,7 +4392,7 @@
|
|
|
4283
4392
|
},
|
|
4284
4393
|
{
|
|
4285
4394
|
"category": "rule",
|
|
4286
|
-
"checksum": "sha256:
|
|
4395
|
+
"checksum": "sha256:3fd9b80ab60d8f8ab98a7f04077a1c37597dfd19ed3cce9007e9b86518196a49",
|
|
4287
4396
|
"install": {
|
|
4288
4397
|
"default": true,
|
|
4289
4398
|
"removable": false
|
|
@@ -7520,6 +7629,50 @@
|
|
|
7520
7629
|
"small-business"
|
|
7521
7630
|
]
|
|
7522
7631
|
},
|
|
7632
|
+
{
|
|
7633
|
+
"category": "skill",
|
|
7634
|
+
"checksum": "sha256:b89b62a691b61569a1bf4dbda12bc01fa8d50f23cb129883898aa5a004092771",
|
|
7635
|
+
"install": {
|
|
7636
|
+
"default": false,
|
|
7637
|
+
"removable": true
|
|
7638
|
+
},
|
|
7639
|
+
"lifecycle": "experimental",
|
|
7640
|
+
"name": "image-analyser",
|
|
7641
|
+
"packs": [
|
|
7642
|
+
"ai-video"
|
|
7643
|
+
],
|
|
7644
|
+
"path": "packages/pack-ai-video/.agent-src.uncondensed/skills/image-analyser/SKILL.md",
|
|
7645
|
+
"trust": {
|
|
7646
|
+
"confidence": "high",
|
|
7647
|
+
"human_review_required": false,
|
|
7648
|
+
"level": "experimental"
|
|
7649
|
+
},
|
|
7650
|
+
"workspaces": [
|
|
7651
|
+
"small-business"
|
|
7652
|
+
]
|
|
7653
|
+
},
|
|
7654
|
+
{
|
|
7655
|
+
"category": "skill",
|
|
7656
|
+
"checksum": "sha256:f06440d56e1b28039f77bf4c32f9c3aba937c8d276153ae39c1bd924fc6ca4f6",
|
|
7657
|
+
"install": {
|
|
7658
|
+
"default": false,
|
|
7659
|
+
"removable": true
|
|
7660
|
+
},
|
|
7661
|
+
"lifecycle": "experimental",
|
|
7662
|
+
"name": "image-creator",
|
|
7663
|
+
"packs": [
|
|
7664
|
+
"ai-video"
|
|
7665
|
+
],
|
|
7666
|
+
"path": "packages/pack-ai-video/.agent-src.uncondensed/skills/image-creator/SKILL.md",
|
|
7667
|
+
"trust": {
|
|
7668
|
+
"confidence": "high",
|
|
7669
|
+
"human_review_required": false,
|
|
7670
|
+
"level": "experimental"
|
|
7671
|
+
},
|
|
7672
|
+
"workspaces": [
|
|
7673
|
+
"small-business"
|
|
7674
|
+
]
|
|
7675
|
+
},
|
|
7523
7676
|
{
|
|
7524
7677
|
"category": "skill",
|
|
7525
7678
|
"checksum": "sha256:87599a712516b77dba188caf6409f24d9e1a83378c0af5cee0e8ae9ddc9a3e93",
|
|
@@ -7588,7 +7741,7 @@
|
|
|
7588
7741
|
},
|
|
7589
7742
|
{
|
|
7590
7743
|
"category": "skill",
|
|
7591
|
-
"checksum": "sha256:
|
|
7744
|
+
"checksum": "sha256:2c01a27d221c1b7acaf4c5d4a96321f74a3129e0b1b7fbeccfb84eb2a2cae680",
|
|
7592
7745
|
"install": {
|
|
7593
7746
|
"default": false,
|
|
7594
7747
|
"removable": true
|
|
@@ -9606,7 +9759,7 @@
|
|
|
9606
9759
|
]
|
|
9607
9760
|
}
|
|
9608
9761
|
],
|
|
9609
|
-
"checksum": "sha256:
|
|
9762
|
+
"checksum": "sha256:0fbd4637a523a2e97b9f5811172c148ea939f9bb928a963e12e60756f7b35bfe",
|
|
9610
9763
|
"documented_unassigned": [
|
|
9611
9764
|
{
|
|
9612
9765
|
"category": "template",
|
|
@@ -9719,7 +9872,7 @@
|
|
|
9719
9872
|
"reason": "scaffold for new SKILL.md authoring"
|
|
9720
9873
|
}
|
|
9721
9874
|
],
|
|
9722
|
-
"generated_at": "2026-
|
|
9875
|
+
"generated_at": "2026-06-01T05:28:53Z",
|
|
9723
9876
|
"packs": [
|
|
9724
9877
|
{
|
|
9725
9878
|
"artefact_count": 85,
|
|
@@ -10106,7 +10259,7 @@
|
|
|
10106
10259
|
]
|
|
10107
10260
|
},
|
|
10108
10261
|
{
|
|
10109
|
-
"artefact_count":
|
|
10262
|
+
"artefact_count": 9,
|
|
10110
10263
|
"description": "AI video pipeline.",
|
|
10111
10264
|
"human_review_required": 0,
|
|
10112
10265
|
"id": "ai-video",
|
|
@@ -10115,7 +10268,7 @@
|
|
|
10115
10268
|
"trust_summary": {
|
|
10116
10269
|
"advisory": 0,
|
|
10117
10270
|
"core": 0,
|
|
10118
|
-
"experimental":
|
|
10271
|
+
"experimental": 9,
|
|
10119
10272
|
"professional": 0,
|
|
10120
10273
|
"restricted": 0
|
|
10121
10274
|
},
|
|
@@ -10124,7 +10277,7 @@
|
|
|
10124
10277
|
]
|
|
10125
10278
|
},
|
|
10126
10279
|
{
|
|
10127
|
-
"artefact_count":
|
|
10280
|
+
"artefact_count": 263,
|
|
10128
10281
|
"description": "Artefacts that maintain this package (agent-config itself).",
|
|
10129
10282
|
"human_review_required": 0,
|
|
10130
10283
|
"id": "meta",
|
|
@@ -10132,7 +10285,7 @@
|
|
|
10132
10285
|
"trust_level_default": "core",
|
|
10133
10286
|
"trust_summary": {
|
|
10134
10287
|
"advisory": 0,
|
|
10135
|
-
"core":
|
|
10288
|
+
"core": 262,
|
|
10136
10289
|
"experimental": 1,
|
|
10137
10290
|
"professional": 0,
|
|
10138
10291
|
"restricted": 0
|
|
@@ -10145,26 +10298,26 @@
|
|
|
10145
10298
|
"scanner_version": "ca7acd2ec7af",
|
|
10146
10299
|
"stats": {
|
|
10147
10300
|
"by_category": {
|
|
10148
|
-
"command":
|
|
10149
|
-
"rule":
|
|
10150
|
-
"skill":
|
|
10301
|
+
"command": 145,
|
|
10302
|
+
"rule": 79,
|
|
10303
|
+
"skill": 222,
|
|
10151
10304
|
"template": 1
|
|
10152
10305
|
},
|
|
10153
10306
|
"by_lifecycle": {
|
|
10154
|
-
"active":
|
|
10307
|
+
"active": 434,
|
|
10155
10308
|
"archived": 0,
|
|
10156
10309
|
"deprecated": 0,
|
|
10157
|
-
"experimental":
|
|
10310
|
+
"experimental": 13
|
|
10158
10311
|
},
|
|
10159
10312
|
"by_trust_level": {
|
|
10160
10313
|
"advisory": 2,
|
|
10161
|
-
"core":
|
|
10162
|
-
"experimental":
|
|
10314
|
+
"core": 355,
|
|
10315
|
+
"experimental": 11,
|
|
10163
10316
|
"professional": 79,
|
|
10164
10317
|
"restricted": 0
|
|
10165
10318
|
},
|
|
10166
10319
|
"documented_unassigned_count": 22,
|
|
10167
|
-
"total_artefacts":
|
|
10320
|
+
"total_artefacts": 447,
|
|
10168
10321
|
"unassigned_count": 0
|
|
10169
10322
|
},
|
|
10170
10323
|
"unassigned": [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
c4e48aaf1d8692605b84470cdfde6164b496b96a4a2fcce192ce5dc16a03b6e0 discovery-manifest.json
|