@event4u/agent-config 2.23.0 → 2.24.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 (58) hide show
  1. package/.agent-src/commands/video/from-script.md +123 -0
  2. package/.agent-src/commands/video/scene.md +92 -0
  3. package/.agent-src/commands/video/stitch.md +83 -0
  4. package/.agent-src/commands/video/storyboard.md +95 -0
  5. package/.agent-src/commands/video.md +59 -0
  6. package/.agent-src/personas/README.md +3 -0
  7. package/.agent-src/personas/ai-video-technical-director.md +81 -0
  8. package/.agent-src/personas/hollywood-director.md +99 -0
  9. package/.agent-src/personas/pixar-storyboard-artist.md +98 -0
  10. package/.agent-src/skills/character-consistency/SKILL.md +120 -0
  11. package/.agent-src/skills/motion-choreographer/SKILL.md +149 -0
  12. package/.agent-src/skills/pixar-storyteller/SKILL.md +107 -0
  13. package/.agent-src/skills/scene-expander/SKILL.md +122 -0
  14. package/.agent-src/skills/scene-expander/scene-blueprint.schema.yaml +108 -0
  15. package/.agent-src/skills/subagent-orchestration/SKILL.md +17 -15
  16. package/.agent-src/skills/video-director/SKILL.md +113 -0
  17. package/.agent-src/templates/agent-settings.md +19 -0
  18. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  19. package/.claude-plugin/marketplace.json +11 -1
  20. package/CHANGELOG.md +22 -0
  21. package/README.md +4 -4
  22. package/config/agent-settings.template.yml +28 -0
  23. package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
  24. package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
  25. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +2 -2
  26. package/docs/architecture.md +2 -2
  27. package/docs/catalog.md +14 -4
  28. package/docs/contracts/command-clusters.md +1 -0
  29. package/docs/contracts/compression-default-kill-criterion.md +1 -1
  30. package/docs/contracts/file-ownership-matrix.json +337 -0
  31. package/docs/getting-started.md +1 -1
  32. package/docs/parity/ruflo.md +3 -3
  33. package/package.json +1 -1
  34. package/scripts/ai-video/adapters/gemini-veo.sh +57 -0
  35. package/scripts/ai-video/adapters/higgsfield.sh +82 -0
  36. package/scripts/ai-video/adapters/kling.sh +54 -0
  37. package/scripts/ai-video/adapters/openai-images.sh +52 -0
  38. package/scripts/ai-video/adapters/sora.sh +54 -0
  39. package/scripts/ai-video/lib/adapter-common.sh +116 -0
  40. package/scripts/ai-video/lib/adapter-contract.md +163 -0
  41. package/scripts/ai-video/lib/fixtures/gemini-veo/result.json +1 -0
  42. package/scripts/ai-video/lib/fixtures/gemini-veo/scene-0001.mp4 +1 -0
  43. package/scripts/ai-video/lib/fixtures/higgsfield/result.json +1 -0
  44. package/scripts/ai-video/lib/fixtures/higgsfield/scene-0001.mp4 +1 -0
  45. package/scripts/ai-video/lib/fixtures/kling/result.json +1 -0
  46. package/scripts/ai-video/lib/fixtures/kling/scene-0001.mp4 +1 -0
  47. package/scripts/ai-video/lib/fixtures/openai-images/result.json +1 -0
  48. package/scripts/ai-video/lib/fixtures/openai-images/scene-0001.png +3 -0
  49. package/scripts/ai-video/lib/fixtures/sora/result.json +1 -0
  50. package/scripts/ai-video/lib/fixtures/sora/scene-0001.mp4 +1 -0
  51. package/scripts/ai-video/lib/load-config.sh +140 -0
  52. package/scripts/ai-video/lib/operator-pick.sh +119 -0
  53. package/scripts/ai-video/lib/parse-blueprint.sh +122 -0
  54. package/scripts/ai-video/lib/redact.sh +85 -0
  55. package/scripts/ai-video/lib/validate-deps.sh +132 -0
  56. package/scripts/ai-video/stitch.sh +154 -0
  57. package/scripts/ai-video/test-pipeline.sh +169 -0
  58. package/scripts/schemas/command.schema.json +8 -0
@@ -49,6 +49,7 @@ column 1 of this table.
49
49
  | `sync-gitignore` | — | `fix` | new sub-command 2026-05-11 — cluster head retains the existing append-only sync as its default flow; `:fix` adds `--cleanup-legacy` semantics, scrubbing pre-`/agents/` runtime patterns wherever they appear in the consumer's `.gitignore` (inside or outside the managed block) and re-syncing the canonical entries. |
50
50
  | `ghostwriter` | — | `fetch` · `write` · `list` · `show` · `delete` | new cluster 2026-05-15 — third voice primitive for AI-assisted writing in the public voice of a public figure. Hybrid storage: real-person profiles live consumer-side under `agents/ghostwriter/<slug>.md` (gitignored by default); package source ships only `fictional: true` fixtures. Zero network code in the package — `:fetch` delegates web-fetch / web-search to the host agent. Mandatory disclosure footer on every `:write` output (no opt-out). Schema: [`ghostwriter-schema`](ghostwriter-schema.md). |
51
51
  | `post-as` | — | `me` · `ghostwriter` | new cluster 2026-05-15 — consumer-facing write entry points. `:me` reads `.agent-user.md.voice_sample` and drafts in the maintainer's own voice (no disclosure footer — the user is the author); `:ghostwriter` is a thin alias for `/ghostwriter:write` with the mandatory disclosure footer. Both share the procedural [`write-engine`](write-engine.md) contract — style source and footer are the only axes of variation. |
52
+ | `video` | — | `from-script` · `scene` · `storyboard` · `stitch` | new cluster 2026-05-17 — AI video generation pipeline. Cluster head orchestrates the full flow; `:scene` runs a single scene end-to-end (script → blueprint → still → motion → clip); `:storyboard` expands a script into per-scene blueprints + reference stills with character-lock JSON; `:from-script` walks a multi-scene script through storyboard + per-scene generation; `:stitch` concatenates scene clips with `ffmpeg` against a scene manifest. Provider-agnostic via the adapter contract under `scripts/ai-video/lib/adapter-contract.md`; cost-gated with mandatory `AIV_DRYRUN=true` default and explicit confirmation before live provider calls. |
52
53
 
53
54
  **Net change:** Phase 1 collapsed 15 atomics → 3 clusters; Phase 2
54
55
  collapses 26 atomics → 11 sub-command clusters. Sub-commands use
@@ -7,7 +7,7 @@ keep-beta-until: 2026-08-14
7
7
 
8
8
  > **Status:** v1-measured · criterion not met · default stays `off` · **Owner:** `step-16-caveman-substance.md`
9
9
  > Phase 1 closeout · **Sources:** [`bench/reports/caveman-v1.md`](../../bench/reports/caveman-v1.md) ·
10
- > [`council-synthesis.md` § 7](../../agents/audit-2026-05-14-north-star/council-synthesis.md) ·
10
+ > [`council-synthesis.md` § 7](../../agents/council-sessions/audit-2026-05-14-north-star/council-synthesis.md) <!-- council-ref-allowed: ADR decision trace for v1 kill-criterion verdict --> ·
11
11
  > [`caveman-v1-kc-verdict.json`](../../agents/council-responses/caveman-v1-kc-verdict.json) <!-- council-ref-allowed: ADR decision trace for v1 kill-criterion verdict -->
12
12
 
13
13
  ## Rule
@@ -741,6 +741,36 @@
741
741
  "load_context": [],
742
742
  "load_context_eager": []
743
743
  },
744
+ ".agent-src.uncompressed/commands/video.md": {
745
+ "kind": "command",
746
+ "rule_type": "orchestrator",
747
+ "load_context": [],
748
+ "load_context_eager": []
749
+ },
750
+ ".agent-src.uncompressed/commands/video/from-script.md": {
751
+ "kind": "command",
752
+ "rule_type": null,
753
+ "load_context": [],
754
+ "load_context_eager": []
755
+ },
756
+ ".agent-src.uncompressed/commands/video/scene.md": {
757
+ "kind": "command",
758
+ "rule_type": null,
759
+ "load_context": [],
760
+ "load_context_eager": []
761
+ },
762
+ ".agent-src.uncompressed/commands/video/stitch.md": {
763
+ "kind": "command",
764
+ "rule_type": null,
765
+ "load_context": [],
766
+ "load_context_eager": []
767
+ },
768
+ ".agent-src.uncompressed/commands/video/storyboard.md": {
769
+ "kind": "command",
770
+ "rule_type": null,
771
+ "load_context": [],
772
+ "load_context_eager": []
773
+ },
744
774
  ".agent-src.uncompressed/commands/work.md": {
745
775
  "kind": "command",
746
776
  "rule_type": null,
@@ -981,6 +1011,12 @@
981
1011
  "load_context": [],
982
1012
  "load_context_eager": []
983
1013
  },
1014
+ ".agent-src.uncompressed/personas/ai-video-technical-director.md": {
1015
+ "kind": "persona",
1016
+ "rule_type": null,
1017
+ "load_context": [],
1018
+ "load_context_eager": []
1019
+ },
984
1020
  ".agent-src.uncompressed/personas/backend-architect.md": {
985
1021
  "kind": "persona",
986
1022
  "rule_type": null,
@@ -1047,12 +1083,24 @@
1047
1083
  "load_context": [],
1048
1084
  "load_context_eager": []
1049
1085
  },
1086
+ ".agent-src.uncompressed/personas/hollywood-director.md": {
1087
+ "kind": "persona",
1088
+ "rule_type": null,
1089
+ "load_context": [],
1090
+ "load_context_eager": []
1091
+ },
1050
1092
  ".agent-src.uncompressed/personas/people-strategist.md": {
1051
1093
  "kind": "persona",
1052
1094
  "rule_type": null,
1053
1095
  "load_context": [],
1054
1096
  "load_context_eager": []
1055
1097
  },
1098
+ ".agent-src.uncompressed/personas/pixar-storyboard-artist.md": {
1099
+ "kind": "persona",
1100
+ "rule_type": null,
1101
+ "load_context": [],
1102
+ "load_context_eager": []
1103
+ },
1056
1104
  ".agent-src.uncompressed/personas/product-owner.md": {
1057
1105
  "kind": "persona",
1058
1106
  "rule_type": null,
@@ -1740,6 +1788,12 @@
1740
1788
  "load_context": [],
1741
1789
  "load_context_eager": []
1742
1790
  },
1791
+ ".agent-src.uncompressed/skills/character-consistency/SKILL.md": {
1792
+ "kind": "skill",
1793
+ "rule_type": null,
1794
+ "load_context": [],
1795
+ "load_context_eager": []
1796
+ },
1743
1797
  ".agent-src.uncompressed/skills/check-refs/SKILL.md": {
1744
1798
  "kind": "skill",
1745
1799
  "rule_type": null,
@@ -2304,6 +2358,12 @@
2304
2358
  "load_context": [],
2305
2359
  "load_context_eager": []
2306
2360
  },
2361
+ ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md": {
2362
+ "kind": "skill",
2363
+ "rule_type": null,
2364
+ "load_context": [],
2365
+ "load_context_eager": []
2366
+ },
2307
2367
  ".agent-src.uncompressed/skills/multi-tenancy/SKILL.md": {
2308
2368
  "kind": "skill",
2309
2369
  "rule_type": null,
@@ -2412,6 +2472,12 @@
2412
2472
  "load_context": [],
2413
2473
  "load_context_eager": []
2414
2474
  },
2475
+ ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md": {
2476
+ "kind": "skill",
2477
+ "rule_type": null,
2478
+ "load_context": [],
2479
+ "load_context_eager": []
2480
+ },
2415
2481
  ".agent-src.uncompressed/skills/playwright-architect/SKILL.md": {
2416
2482
  "kind": "skill",
2417
2483
  "rule_type": null,
@@ -2646,6 +2712,12 @@
2646
2712
  "load_context": [],
2647
2713
  "load_context_eager": []
2648
2714
  },
2715
+ ".agent-src.uncompressed/skills/scene-expander/SKILL.md": {
2716
+ "kind": "skill",
2717
+ "rule_type": null,
2718
+ "load_context": [],
2719
+ "load_context_eager": []
2720
+ },
2649
2721
  ".agent-src.uncompressed/skills/script-writing/SKILL.md": {
2650
2722
  "kind": "skill",
2651
2723
  "rule_type": null,
@@ -2904,6 +2976,12 @@
2904
2976
  "load_context": [],
2905
2977
  "load_context_eager": []
2906
2978
  },
2979
+ ".agent-src.uncompressed/skills/video-director/SKILL.md": {
2980
+ "kind": "skill",
2981
+ "rule_type": null,
2982
+ "load_context": [],
2983
+ "load_context_eager": []
2984
+ },
2907
2985
  ".agent-src.uncompressed/skills/vision-articulation/SKILL.md": {
2908
2986
  "kind": "skill",
2909
2987
  "rule_type": null,
@@ -5177,6 +5255,132 @@
5177
5255
  "via": "self",
5178
5256
  "depth": 0
5179
5257
  },
5258
+ {
5259
+ "source": ".agent-src.uncompressed/commands/video.md",
5260
+ "target": ".agent-src.uncompressed/commands/video.md",
5261
+ "type": "WRITE",
5262
+ "via": "self",
5263
+ "depth": 0
5264
+ },
5265
+ {
5266
+ "source": ".agent-src.uncompressed/commands/video.md",
5267
+ "target": ".agent-src.uncompressed/rules/non-destructive-by-default.md",
5268
+ "type": "READ_ONLY",
5269
+ "via": "body_link",
5270
+ "depth": 1
5271
+ },
5272
+ {
5273
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5274
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5275
+ "type": "WRITE",
5276
+ "via": "self",
5277
+ "depth": 0
5278
+ },
5279
+ {
5280
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5281
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5282
+ "type": "READ_ONLY",
5283
+ "via": "body_link",
5284
+ "depth": 1
5285
+ },
5286
+ {
5287
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5288
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5289
+ "type": "READ_ONLY",
5290
+ "via": "body_link",
5291
+ "depth": 1
5292
+ },
5293
+ {
5294
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5295
+ "target": ".agent-src.uncompressed/commands/video/storyboard.md",
5296
+ "type": "READ_ONLY",
5297
+ "via": "body_link",
5298
+ "depth": 1
5299
+ },
5300
+ {
5301
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5302
+ "target": ".agent-src.uncompressed/rules/non-destructive-by-default.md",
5303
+ "type": "READ_ONLY",
5304
+ "via": "body_link",
5305
+ "depth": 1
5306
+ },
5307
+ {
5308
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5309
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5310
+ "type": "READ_ONLY",
5311
+ "via": "body_link",
5312
+ "depth": 1
5313
+ },
5314
+ {
5315
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5316
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5317
+ "type": "WRITE",
5318
+ "via": "self",
5319
+ "depth": 0
5320
+ },
5321
+ {
5322
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5323
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5324
+ "type": "READ_ONLY",
5325
+ "via": "body_link",
5326
+ "depth": 1
5327
+ },
5328
+ {
5329
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5330
+ "target": ".agent-src.uncompressed/commands/video/storyboard.md",
5331
+ "type": "READ_ONLY",
5332
+ "via": "body_link",
5333
+ "depth": 1
5334
+ },
5335
+ {
5336
+ "source": ".agent-src.uncompressed/commands/video/stitch.md",
5337
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5338
+ "type": "READ_ONLY",
5339
+ "via": "body_link",
5340
+ "depth": 1
5341
+ },
5342
+ {
5343
+ "source": ".agent-src.uncompressed/commands/video/stitch.md",
5344
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5345
+ "type": "READ_ONLY",
5346
+ "via": "body_link",
5347
+ "depth": 1
5348
+ },
5349
+ {
5350
+ "source": ".agent-src.uncompressed/commands/video/stitch.md",
5351
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5352
+ "type": "WRITE",
5353
+ "via": "self",
5354
+ "depth": 0
5355
+ },
5356
+ {
5357
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5358
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5359
+ "type": "READ_ONLY",
5360
+ "via": "body_link",
5361
+ "depth": 1
5362
+ },
5363
+ {
5364
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5365
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5366
+ "type": "READ_ONLY",
5367
+ "via": "body_link",
5368
+ "depth": 1
5369
+ },
5370
+ {
5371
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5372
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5373
+ "type": "READ_ONLY",
5374
+ "via": "body_link",
5375
+ "depth": 1
5376
+ },
5377
+ {
5378
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5379
+ "target": ".agent-src.uncompressed/commands/video/storyboard.md",
5380
+ "type": "WRITE",
5381
+ "via": "self",
5382
+ "depth": 0
5383
+ },
5180
5384
  {
5181
5385
  "source": ".agent-src.uncompressed/commands/work.md",
5182
5386
  "target": ".agent-src.uncompressed/commands/commit.md",
@@ -5961,6 +6165,13 @@
5961
6165
  "via": "self",
5962
6166
  "depth": 0
5963
6167
  },
6168
+ {
6169
+ "source": ".agent-src.uncompressed/personas/ai-video-technical-director.md",
6170
+ "target": ".agent-src.uncompressed/personas/ai-video-technical-director.md",
6171
+ "type": "WRITE",
6172
+ "via": "self",
6173
+ "depth": 0
6174
+ },
5964
6175
  {
5965
6176
  "source": ".agent-src.uncompressed/personas/backend-architect.md",
5966
6177
  "target": ".agent-src.uncompressed/personas/backend-architect.md",
@@ -6038,6 +6249,13 @@
6038
6249
  "via": "self",
6039
6250
  "depth": 0
6040
6251
  },
6252
+ {
6253
+ "source": ".agent-src.uncompressed/personas/hollywood-director.md",
6254
+ "target": ".agent-src.uncompressed/personas/hollywood-director.md",
6255
+ "type": "WRITE",
6256
+ "via": "self",
6257
+ "depth": 0
6258
+ },
6041
6259
  {
6042
6260
  "source": ".agent-src.uncompressed/personas/people-strategist.md",
6043
6261
  "target": ".agent-src.uncompressed/personas/people-strategist.md",
@@ -6045,6 +6263,13 @@
6045
6263
  "via": "self",
6046
6264
  "depth": 0
6047
6265
  },
6266
+ {
6267
+ "source": ".agent-src.uncompressed/personas/pixar-storyboard-artist.md",
6268
+ "target": ".agent-src.uncompressed/personas/pixar-storyboard-artist.md",
6269
+ "type": "WRITE",
6270
+ "via": "self",
6271
+ "depth": 0
6272
+ },
6048
6273
  {
6049
6274
  "source": ".agent-src.uncompressed/personas/product-owner.md",
6050
6275
  "target": ".agent-src.uncompressed/personas/product-owner.md",
@@ -7858,6 +8083,34 @@
7858
8083
  "via": "self",
7859
8084
  "depth": 0
7860
8085
  },
8086
+ {
8087
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8088
+ "target": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8089
+ "type": "WRITE",
8090
+ "via": "self",
8091
+ "depth": 0
8092
+ },
8093
+ {
8094
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8095
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
8096
+ "type": "READ_ONLY",
8097
+ "via": "body_link",
8098
+ "depth": 1
8099
+ },
8100
+ {
8101
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8102
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
8103
+ "type": "READ_ONLY",
8104
+ "via": "body_link",
8105
+ "depth": 1
8106
+ },
8107
+ {
8108
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8109
+ "target": ".agent-src.uncompressed/skills/video-director/SKILL.md",
8110
+ "type": "READ_ONLY",
8111
+ "via": "body_link",
8112
+ "depth": 1
8113
+ },
7861
8114
  {
7862
8115
  "source": ".agent-src.uncompressed/skills/check-refs/SKILL.md",
7863
8116
  "target": ".agent-src.uncompressed/skills/check-refs/SKILL.md",
@@ -9790,6 +10043,20 @@
9790
10043
  "via": "self",
9791
10044
  "depth": 0
9792
10045
  },
10046
+ {
10047
+ "source": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10048
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10049
+ "type": "WRITE",
10050
+ "via": "self",
10051
+ "depth": 0
10052
+ },
10053
+ {
10054
+ "source": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10055
+ "target": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
10056
+ "type": "READ_ONLY",
10057
+ "via": "body_link",
10058
+ "depth": 1
10059
+ },
9793
10060
  {
9794
10061
  "source": ".agent-src.uncompressed/skills/multi-tenancy/SKILL.md",
9795
10062
  "target": ".agent-src.uncompressed/skills/multi-tenancy/SKILL.md",
@@ -10133,6 +10400,34 @@
10133
10400
  "via": "self",
10134
10401
  "depth": 0
10135
10402
  },
10403
+ {
10404
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10405
+ "target": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
10406
+ "type": "READ_ONLY",
10407
+ "via": "body_link",
10408
+ "depth": 1
10409
+ },
10410
+ {
10411
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10412
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10413
+ "type": "READ_ONLY",
10414
+ "via": "body_link",
10415
+ "depth": 1
10416
+ },
10417
+ {
10418
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10419
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10420
+ "type": "WRITE",
10421
+ "via": "self",
10422
+ "depth": 0
10423
+ },
10424
+ {
10425
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10426
+ "target": ".agent-src.uncompressed/skills/video-director/SKILL.md",
10427
+ "type": "READ_ONLY",
10428
+ "via": "body_link",
10429
+ "depth": 1
10430
+ },
10136
10431
  {
10137
10432
  "source": ".agent-src.uncompressed/skills/playwright-architect/SKILL.md",
10138
10433
  "target": ".agent-src.uncompressed/skills/mobile-e2e-strategy/SKILL.md",
@@ -11036,6 +11331,20 @@
11036
11331
  "via": "body_link",
11037
11332
  "depth": 1
11038
11333
  },
11334
+ {
11335
+ "source": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
11336
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
11337
+ "type": "READ_ONLY",
11338
+ "via": "body_link",
11339
+ "depth": 1
11340
+ },
11341
+ {
11342
+ "source": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
11343
+ "target": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
11344
+ "type": "WRITE",
11345
+ "via": "self",
11346
+ "depth": 0
11347
+ },
11039
11348
  {
11040
11349
  "source": ".agent-src.uncompressed/skills/script-writing/SKILL.md",
11041
11350
  "target": ".agent-src.uncompressed/contexts/contracts/frugality-charter.md",
@@ -12037,6 +12346,34 @@
12037
12346
  "via": "self",
12038
12347
  "depth": 0
12039
12348
  },
12349
+ {
12350
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12351
+ "target": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
12352
+ "type": "READ_ONLY",
12353
+ "via": "body_link",
12354
+ "depth": 1
12355
+ },
12356
+ {
12357
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12358
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
12359
+ "type": "READ_ONLY",
12360
+ "via": "body_link",
12361
+ "depth": 1
12362
+ },
12363
+ {
12364
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12365
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
12366
+ "type": "READ_ONLY",
12367
+ "via": "body_link",
12368
+ "depth": 1
12369
+ },
12370
+ {
12371
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12372
+ "target": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12373
+ "type": "WRITE",
12374
+ "via": "self",
12375
+ "depth": 0
12376
+ },
12040
12377
  {
12041
12378
  "source": ".agent-src.uncompressed/skills/vision-articulation/SKILL.md",
12042
12379
  "target": ".agent-src.uncompressed/skills/competitive-moat-analysis/SKILL.md",
@@ -146,7 +146,7 @@ Your agent now understands slash commands:
146
146
  | `/quality-fix` | Run and fix all quality checks |
147
147
  | `/chat-history` | Inspect the persistent chat-history log (read-only `show`) |
148
148
 
149
- → [Browse all 124 active commands](../.agent-src/commands/)
149
+ → [Browse all 129 active commands](../.agent-src/commands/)
150
150
 
151
151
  ---
152
152
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Per-row verdict against the eight Ruflo measurement-governance patterns
4
4
  > catalogued in
5
- > [`external-findings.md § 2`](../../agents/audit-2026-05-14-north-star/external-findings.md).
5
+ > [`external-findings.md § 2`](../../agents/council-sessions/audit-2026-05-14-north-star/external-findings.md).
6
6
  > Owner roadmap: [`step-11-ruflo-parity.md`](../../agents/roadmaps/step-11-ruflo-parity.md)
7
7
  > (Phase 6 Step 1). Cross-index lives at
8
8
  > [`step-99-north-star-restructure.md`](../../agents/roadmaps/step-99-north-star-restructure.md)
@@ -10,7 +10,7 @@
10
10
  >
11
11
  > **Verdict legend:** `[x] covered by <file:line>` · `[~] superseded by <approach>` · `[!] gap`.
12
12
  > **Acceptance:** zero `[!]` rows. Closure flips the corresponding cell in the
13
- > [composite scorecard](../../agents/audit-2026-05-14-north-star/external-findings.md#5-composite-scorecard--agent-config-vs-the-field)
13
+ > [composite scorecard](../../agents/council-sessions/audit-2026-05-14-north-star/external-findings.md#5-composite-scorecard--agent-config-vs-the-field)
14
14
  > `vs Ruflo` column from `–` to `=` or `+`.
15
15
 
16
16
  **Measured-vs-claimed disclaimer:** Each row cites the **mechanism** that
@@ -41,6 +41,6 @@ mechanisms remain claimed until [`bench.json`](bench.json) soak completes
41
41
 
42
42
  ## Cross-references
43
43
 
44
- - Composite scorecard refresh: owned by [`step-99-north-star-restructure.md`](../../agents/roadmaps/step-99-north-star-restructure.md) Phase 5 Step 4 (replaces [`external-findings.md § 5`](../../agents/audit-2026-05-14-north-star/external-findings.md)).
44
+ - Composite scorecard refresh: owned by [`step-99-north-star-restructure.md`](../../agents/roadmaps/step-99-north-star-restructure.md) Phase 5 Step 4 (replaces [`external-findings.md § 5`](../../agents/council-sessions/audit-2026-05-14-north-star/external-findings.md)).
45
45
  - Bench-ruflo redundancy verdict: [`bench-ruflo.json`](bench-ruflo.json) (step-11 Phase 6 Step 2).
46
46
  - G5 redundancy gate cite: step-99 Acceptance Criteria row "G5 — external redundancy (Domination Mandate)".
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event4u/agent-config",
3
- "version": "2.23.0",
3
+ "version": "2.24.0",
4
4
  "description": "Shared agent configuration \u2014 skills, rules, commands, guidelines, and templates for AI coding tools",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env bash
2
+ # gemini-veo.sh — Google Gemini Veo video generation adapter.
3
+ #
4
+ # Capability: audio=native. Veo accepts dialogue + ambient sound blocks
5
+ # and returns a muxed MP4. Async API: submit → poll (predictLongRunning)
6
+ # → fetch. The orchestrator drives all three subcommands; this script
7
+ # never auto-retries.
8
+ #
9
+ # Contract: scripts/ai-video/lib/adapter-contract.md
10
+ # Provider: top-level <provider id="gemini-veo" kind="video"> in
11
+ # agents/.ai-video.xml.
12
+
13
+ set -euo pipefail
14
+
15
+ # shellcheck source=../lib/adapter-common.sh
16
+ . "$(dirname "$0")/../lib/adapter-common.sh"
17
+
18
+ ADAPTER_ID="gemini-veo"
19
+
20
+ # Submit: read contract JSON from stdin, return {job_id, status:"queued"}.
21
+ aiv_cmd_submit() {
22
+ aiv_assert_dryrun
23
+ aiv_require_cmd curl jq
24
+ aiv_load_provider "${ADAPTER_ID}"
25
+ [ "$(aiv_key_status)" = "present" ] \
26
+ || aiv_die 6 "${ADAPTER_ID}: api key missing in agents/.ai-video.xml"
27
+
28
+ local stdin_json
29
+ stdin_json="$(cat)"
30
+ # Validate required prompt blocks early so a bad blueprint fails
31
+ # before any network call would happen.
32
+ printf '%s' "${stdin_json}" | jq -e '.prompt.subject and .prompt.action' >/dev/null \
33
+ || aiv_die 3 "${ADAPTER_ID}: stdin JSON missing required prompt.subject / prompt.action"
34
+
35
+ aiv_die 9 "${ADAPTER_ID}: live submit not yet wired (predictLongRunning endpoint requires per-key wiring)"
36
+ }
37
+
38
+ # Poll: check long-running operation status. Stub returns "done" so the
39
+ # stitcher path is exercisable end-to-end in dry-run; live mode is
40
+ # wired by the orchestrator once a real job_id exists.
41
+ aiv_cmd_poll() {
42
+ local job_id="${1:-}"
43
+ [ -n "${job_id}" ] || aiv_die 2 "${ADAPTER_ID}: poll <job_id> required"
44
+ aiv_assert_dryrun
45
+ aiv_die 9 "${ADAPTER_ID}: live poll not yet wired (job=${job_id})"
46
+ }
47
+
48
+ # Fetch: download the muxed MP4. Live mode is stubbed; dry-run returns
49
+ # the fixture path with audio_embedded=true.
50
+ aiv_cmd_fetch() {
51
+ local job_id="${1:-}"
52
+ [ -n "${job_id}" ] || aiv_die 2 "${ADAPTER_ID}: fetch <job_id> required"
53
+ aiv_assert_dryrun
54
+ aiv_die 9 "${ADAPTER_ID}: live fetch not yet wired (job=${job_id})"
55
+ }
56
+
57
+ aiv_dispatch "${ADAPTER_ID}" "native" "$@"
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env bash
2
+ # higgsfield.sh — Higgsfield motion-preset video adapter.
3
+ #
4
+ # Capability: per-model. The provider exposes named motion presets
5
+ # (e.g. Mix, Burst, DVD) each with its own audio behaviour. Capability
6
+ # discovery via `capability --preset <name>` so the orchestrator can
7
+ # pick the right mux path.
8
+ #
9
+ # Contract: scripts/ai-video/lib/adapter-contract.md
10
+ # Provider: top-level <provider id="higgsfield" kind="video"> in
11
+ # agents/.ai-video.xml. Preset → motion-choreographer profile mapping
12
+ # is documented in agents/ai-video/prompts/motion-choreography.md
13
+ # (Phase 6).
14
+
15
+ set -euo pipefail
16
+
17
+ # shellcheck source=../lib/adapter-common.sh
18
+ . "$(dirname "$0")/../lib/adapter-common.sh"
19
+
20
+ ADAPTER_ID="higgsfield"
21
+
22
+ # Map preset → audio capability. Conservative defaults; tuning table
23
+ # lives alongside the prompt library so creators can extend without
24
+ # touching this adapter.
25
+ higgsfield_audio_for_preset() {
26
+ case "${1:-}" in
27
+ mix|burst|dvd) printf 'none' ;;
28
+ cinematic|talk) printf 'native' ;;
29
+ *) printf 'none' ;;
30
+ esac
31
+ }
32
+
33
+ # Override capability handling so `capability --preset <name>` answers
34
+ # per-preset before falling through to the generic helper.
35
+ aiv_higgsfield_capability() {
36
+ local preset=""
37
+ while [ "$#" -gt 0 ]; do
38
+ case "$1" in
39
+ --preset) preset="${2:-}"; shift 2 ;;
40
+ *) shift ;;
41
+ esac
42
+ done
43
+ if [ -n "${preset}" ]; then
44
+ printf '{"audio":"%s","preset":"%s"}\n' \
45
+ "$(higgsfield_audio_for_preset "${preset}")" "${preset}"
46
+ return 0
47
+ fi
48
+ printf '{"audio":"per-model","presets":["mix","burst","dvd","cinematic","talk"]}\n'
49
+ }
50
+
51
+ aiv_cmd_submit() {
52
+ aiv_assert_dryrun
53
+ aiv_require_cmd curl jq
54
+ aiv_load_provider "${ADAPTER_ID}"
55
+ [ "$(aiv_key_status)" = "present" ] \
56
+ || aiv_die 6 "${ADAPTER_ID}: api key missing in agents/.ai-video.xml"
57
+ aiv_die 9 "${ADAPTER_ID}: live submit not yet wired"
58
+ }
59
+
60
+ aiv_cmd_poll() {
61
+ local job_id="${1:-}"
62
+ [ -n "${job_id}" ] || aiv_die 2 "${ADAPTER_ID}: poll <job_id> required"
63
+ aiv_assert_dryrun
64
+ aiv_die 9 "${ADAPTER_ID}: live poll not yet wired (job=${job_id})"
65
+ }
66
+
67
+ aiv_cmd_fetch() {
68
+ local job_id="${1:-}"
69
+ [ -n "${job_id}" ] || aiv_die 2 "${ADAPTER_ID}: fetch <job_id> required"
70
+ aiv_assert_dryrun
71
+ aiv_die 9 "${ADAPTER_ID}: live fetch not yet wired (job=${job_id})"
72
+ }
73
+
74
+ # Custom dispatch with capability override; falls back to the common
75
+ # router for every other subcommand.
76
+ sub="${1:-}"
77
+ if [ "${sub}" = "capability" ]; then
78
+ shift
79
+ aiv_higgsfield_capability "$@"
80
+ exit 0
81
+ fi
82
+ aiv_dispatch "${ADAPTER_ID}" "per-model" "$@"