@event4u/agent-config 2.23.0 → 2.25.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 (82) hide show
  1. package/.agent-src/commands/create-pr/description-only.md +39 -11
  2. package/.agent-src/commands/create-pr.md +59 -5
  3. package/.agent-src/commands/video/from-script.md +123 -0
  4. package/.agent-src/commands/video/scene.md +92 -0
  5. package/.agent-src/commands/video/stitch.md +83 -0
  6. package/.agent-src/commands/video/storyboard.md +95 -0
  7. package/.agent-src/commands/video.md +59 -0
  8. package/.agent-src/contexts/execution/roadmap-process-loop.md +69 -14
  9. package/.agent-src/personas/README.md +5 -1
  10. package/.agent-src/personas/ai-video-technical-director.md +81 -0
  11. package/.agent-src/personas/hollywood-director.md +99 -0
  12. package/.agent-src/profiles/content_creator.yml +5 -0
  13. package/.agent-src/rules/media-governance-routing.md +82 -0
  14. package/.agent-src/rules/persona-governance.md +90 -0
  15. package/.agent-src/rules/post-push-rewrite-discipline.md +70 -0
  16. package/.agent-src/rules/provider-lifecycle-discipline.md +75 -0
  17. package/.agent-src/rules/roadmap-ci-steps-policy.md +145 -0
  18. package/.agent-src/rules/roadmap-progress-sync.md +11 -5
  19. package/.agent-src/skills/character-consistency/SKILL.md +131 -0
  20. package/.agent-src/skills/git-workflow/SKILL.md +133 -0
  21. package/.agent-src/skills/motion-choreographer/SKILL.md +161 -0
  22. package/.agent-src/skills/pixar-storyteller/SKILL.md +120 -0
  23. package/.agent-src/skills/roadmap-writing/SKILL.md +10 -0
  24. package/.agent-src/skills/scene-expander/SKILL.md +137 -0
  25. package/.agent-src/skills/scene-expander/scene-blueprint.schema.yaml +108 -0
  26. package/.agent-src/skills/subagent-orchestration/SKILL.md +17 -15
  27. package/.agent-src/skills/video-director/SKILL.md +126 -0
  28. package/.agent-src/templates/agent-settings.md +19 -0
  29. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  30. package/.agent-src/templates/roadmaps.md +16 -0
  31. package/.claude-plugin/marketplace.json +11 -1
  32. package/CHANGELOG.md +65 -0
  33. package/README.md +7 -5
  34. package/config/agent-settings.template.yml +54 -0
  35. package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
  36. package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
  37. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +2 -2
  38. package/docs/architecture.md +3 -3
  39. package/docs/catalog.md +18 -5
  40. package/docs/contracts/command-clusters.md +1 -0
  41. package/docs/contracts/compression-default-kill-criterion.md +1 -1
  42. package/docs/contracts/file-ownership-matrix.json +405 -0
  43. package/docs/contracts/provider-lifecycle.md +122 -0
  44. package/docs/decisions/ADR-011-domain-pack-readiness.md +213 -0
  45. package/docs/decisions/INDEX.md +1 -0
  46. package/docs/getting-started-by-role.md +10 -0
  47. package/docs/getting-started.md +2 -2
  48. package/docs/parity/ruflo.md +3 -3
  49. package/docs/personas.md +73 -26
  50. package/docs/profiles.md +9 -4
  51. package/package.json +1 -1
  52. package/scripts/_tmp_scan_framework_leakage.py +119 -0
  53. package/scripts/ai-video/adapters/gemini-veo.sh +62 -0
  54. package/scripts/ai-video/adapters/higgsfield.sh +88 -0
  55. package/scripts/ai-video/adapters/kling.sh +59 -0
  56. package/scripts/ai-video/adapters/openai-images.sh +57 -0
  57. package/scripts/ai-video/adapters/sora.sh +60 -0
  58. package/scripts/ai-video/lib/adapter-common.sh +116 -0
  59. package/scripts/ai-video/lib/adapter-contract.md +163 -0
  60. package/scripts/ai-video/lib/fixtures/gemini-veo/result.json +1 -0
  61. package/scripts/ai-video/lib/fixtures/gemini-veo/scene-0001.mp4 +1 -0
  62. package/scripts/ai-video/lib/fixtures/higgsfield/result.json +1 -0
  63. package/scripts/ai-video/lib/fixtures/higgsfield/scene-0001.mp4 +1 -0
  64. package/scripts/ai-video/lib/fixtures/kling/result.json +1 -0
  65. package/scripts/ai-video/lib/fixtures/kling/scene-0001.mp4 +1 -0
  66. package/scripts/ai-video/lib/fixtures/openai-images/result.json +1 -0
  67. package/scripts/ai-video/lib/fixtures/openai-images/scene-0001.png +3 -0
  68. package/scripts/ai-video/lib/fixtures/sora/result.json +1 -0
  69. package/scripts/ai-video/lib/fixtures/sora/scene-0001.mp4 +1 -0
  70. package/scripts/ai-video/lib/load-config.sh +140 -0
  71. package/scripts/ai-video/lib/operator-pick.sh +119 -0
  72. package/scripts/ai-video/lib/parse-blueprint.sh +122 -0
  73. package/scripts/ai-video/lib/redact.sh +85 -0
  74. package/scripts/ai-video/lib/validate-deps.sh +132 -0
  75. package/scripts/ai-video/stitch.sh +154 -0
  76. package/scripts/ai-video/test-pipeline.sh +169 -0
  77. package/scripts/check_portability.py +6 -0
  78. package/scripts/lint_media_policy_linkage.py +140 -0
  79. package/scripts/lint_persona_governance.py +164 -0
  80. package/scripts/lint_roadmap_ci_steps.py +182 -0
  81. package/scripts/schemas/command.schema.json +8 -0
  82. package/scripts/smoke/schema.sh +1 -1
@@ -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,6 +1083,12 @@
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,
@@ -1403,6 +1445,12 @@
1403
1445
  "load_context": [],
1404
1446
  "load_context_eager": []
1405
1447
  },
1448
+ ".agent-src.uncompressed/rules/media-governance-routing.md": {
1449
+ "kind": "rule",
1450
+ "rule_type": "auto",
1451
+ "load_context": [],
1452
+ "load_context_eager": []
1453
+ },
1406
1454
  ".agent-src.uncompressed/rules/minimal-safe-diff.md": {
1407
1455
  "kind": "rule",
1408
1456
  "rule_type": "auto",
@@ -1465,6 +1513,12 @@
1465
1513
  "load_context": [],
1466
1514
  "load_context_eager": []
1467
1515
  },
1516
+ ".agent-src.uncompressed/rules/persona-governance.md": {
1517
+ "kind": "rule",
1518
+ "rule_type": "auto",
1519
+ "load_context": [],
1520
+ "load_context_eager": []
1521
+ },
1468
1522
  ".agent-src.uncompressed/rules/php-coding.md": {
1469
1523
  "kind": "rule",
1470
1524
  "rule_type": "auto",
@@ -1477,6 +1531,12 @@
1477
1531
  "load_context": [],
1478
1532
  "load_context_eager": []
1479
1533
  },
1534
+ ".agent-src.uncompressed/rules/provider-lifecycle-discipline.md": {
1535
+ "kind": "rule",
1536
+ "rule_type": "auto",
1537
+ "load_context": [],
1538
+ "load_context_eager": []
1539
+ },
1480
1540
  ".agent-src.uncompressed/rules/reviewer-awareness.md": {
1481
1541
  "kind": "rule",
1482
1542
  "rule_type": "auto",
@@ -1740,6 +1800,12 @@
1740
1800
  "load_context": [],
1741
1801
  "load_context_eager": []
1742
1802
  },
1803
+ ".agent-src.uncompressed/skills/character-consistency/SKILL.md": {
1804
+ "kind": "skill",
1805
+ "rule_type": null,
1806
+ "load_context": [],
1807
+ "load_context_eager": []
1808
+ },
1743
1809
  ".agent-src.uncompressed/skills/check-refs/SKILL.md": {
1744
1810
  "kind": "skill",
1745
1811
  "rule_type": null,
@@ -2304,6 +2370,12 @@
2304
2370
  "load_context": [],
2305
2371
  "load_context_eager": []
2306
2372
  },
2373
+ ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md": {
2374
+ "kind": "skill",
2375
+ "rule_type": null,
2376
+ "load_context": [],
2377
+ "load_context_eager": []
2378
+ },
2307
2379
  ".agent-src.uncompressed/skills/multi-tenancy/SKILL.md": {
2308
2380
  "kind": "skill",
2309
2381
  "rule_type": null,
@@ -2412,6 +2484,12 @@
2412
2484
  "load_context": [],
2413
2485
  "load_context_eager": []
2414
2486
  },
2487
+ ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md": {
2488
+ "kind": "skill",
2489
+ "rule_type": null,
2490
+ "load_context": [],
2491
+ "load_context_eager": []
2492
+ },
2415
2493
  ".agent-src.uncompressed/skills/playwright-architect/SKILL.md": {
2416
2494
  "kind": "skill",
2417
2495
  "rule_type": null,
@@ -2646,6 +2724,12 @@
2646
2724
  "load_context": [],
2647
2725
  "load_context_eager": []
2648
2726
  },
2727
+ ".agent-src.uncompressed/skills/scene-expander/SKILL.md": {
2728
+ "kind": "skill",
2729
+ "rule_type": null,
2730
+ "load_context": [],
2731
+ "load_context_eager": []
2732
+ },
2649
2733
  ".agent-src.uncompressed/skills/script-writing/SKILL.md": {
2650
2734
  "kind": "skill",
2651
2735
  "rule_type": null,
@@ -2904,6 +2988,12 @@
2904
2988
  "load_context": [],
2905
2989
  "load_context_eager": []
2906
2990
  },
2991
+ ".agent-src.uncompressed/skills/video-director/SKILL.md": {
2992
+ "kind": "skill",
2993
+ "rule_type": null,
2994
+ "load_context": [],
2995
+ "load_context_eager": []
2996
+ },
2907
2997
  ".agent-src.uncompressed/skills/vision-articulation/SKILL.md": {
2908
2998
  "kind": "skill",
2909
2999
  "rule_type": null,
@@ -5177,6 +5267,132 @@
5177
5267
  "via": "self",
5178
5268
  "depth": 0
5179
5269
  },
5270
+ {
5271
+ "source": ".agent-src.uncompressed/commands/video.md",
5272
+ "target": ".agent-src.uncompressed/commands/video.md",
5273
+ "type": "WRITE",
5274
+ "via": "self",
5275
+ "depth": 0
5276
+ },
5277
+ {
5278
+ "source": ".agent-src.uncompressed/commands/video.md",
5279
+ "target": ".agent-src.uncompressed/rules/non-destructive-by-default.md",
5280
+ "type": "READ_ONLY",
5281
+ "via": "body_link",
5282
+ "depth": 1
5283
+ },
5284
+ {
5285
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5286
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5287
+ "type": "WRITE",
5288
+ "via": "self",
5289
+ "depth": 0
5290
+ },
5291
+ {
5292
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5293
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5294
+ "type": "READ_ONLY",
5295
+ "via": "body_link",
5296
+ "depth": 1
5297
+ },
5298
+ {
5299
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5300
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5301
+ "type": "READ_ONLY",
5302
+ "via": "body_link",
5303
+ "depth": 1
5304
+ },
5305
+ {
5306
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5307
+ "target": ".agent-src.uncompressed/commands/video/storyboard.md",
5308
+ "type": "READ_ONLY",
5309
+ "via": "body_link",
5310
+ "depth": 1
5311
+ },
5312
+ {
5313
+ "source": ".agent-src.uncompressed/commands/video/from-script.md",
5314
+ "target": ".agent-src.uncompressed/rules/non-destructive-by-default.md",
5315
+ "type": "READ_ONLY",
5316
+ "via": "body_link",
5317
+ "depth": 1
5318
+ },
5319
+ {
5320
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5321
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5322
+ "type": "READ_ONLY",
5323
+ "via": "body_link",
5324
+ "depth": 1
5325
+ },
5326
+ {
5327
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5328
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5329
+ "type": "WRITE",
5330
+ "via": "self",
5331
+ "depth": 0
5332
+ },
5333
+ {
5334
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5335
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5336
+ "type": "READ_ONLY",
5337
+ "via": "body_link",
5338
+ "depth": 1
5339
+ },
5340
+ {
5341
+ "source": ".agent-src.uncompressed/commands/video/scene.md",
5342
+ "target": ".agent-src.uncompressed/commands/video/storyboard.md",
5343
+ "type": "READ_ONLY",
5344
+ "via": "body_link",
5345
+ "depth": 1
5346
+ },
5347
+ {
5348
+ "source": ".agent-src.uncompressed/commands/video/stitch.md",
5349
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5350
+ "type": "READ_ONLY",
5351
+ "via": "body_link",
5352
+ "depth": 1
5353
+ },
5354
+ {
5355
+ "source": ".agent-src.uncompressed/commands/video/stitch.md",
5356
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5357
+ "type": "READ_ONLY",
5358
+ "via": "body_link",
5359
+ "depth": 1
5360
+ },
5361
+ {
5362
+ "source": ".agent-src.uncompressed/commands/video/stitch.md",
5363
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5364
+ "type": "WRITE",
5365
+ "via": "self",
5366
+ "depth": 0
5367
+ },
5368
+ {
5369
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5370
+ "target": ".agent-src.uncompressed/commands/video/from-script.md",
5371
+ "type": "READ_ONLY",
5372
+ "via": "body_link",
5373
+ "depth": 1
5374
+ },
5375
+ {
5376
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5377
+ "target": ".agent-src.uncompressed/commands/video/scene.md",
5378
+ "type": "READ_ONLY",
5379
+ "via": "body_link",
5380
+ "depth": 1
5381
+ },
5382
+ {
5383
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5384
+ "target": ".agent-src.uncompressed/commands/video/stitch.md",
5385
+ "type": "READ_ONLY",
5386
+ "via": "body_link",
5387
+ "depth": 1
5388
+ },
5389
+ {
5390
+ "source": ".agent-src.uncompressed/commands/video/storyboard.md",
5391
+ "target": ".agent-src.uncompressed/commands/video/storyboard.md",
5392
+ "type": "WRITE",
5393
+ "via": "self",
5394
+ "depth": 0
5395
+ },
5180
5396
  {
5181
5397
  "source": ".agent-src.uncompressed/commands/work.md",
5182
5398
  "target": ".agent-src.uncompressed/commands/commit.md",
@@ -5912,6 +6128,13 @@
5912
6128
  "via": "body_link",
5913
6129
  "depth": 1
5914
6130
  },
6131
+ {
6132
+ "source": ".agent-src.uncompressed/personas/README.md",
6133
+ "target": ".agent-src.uncompressed/rules/persona-governance.md",
6134
+ "type": "READ_ONLY",
6135
+ "via": "body_link",
6136
+ "depth": 1
6137
+ },
5915
6138
  {
5916
6139
  "source": ".agent-src.uncompressed/personas/_template-specialist/persona.md",
5917
6140
  "target": ".agent-src.uncompressed/personas/_template-specialist/persona.md",
@@ -5961,6 +6184,13 @@
5961
6184
  "via": "self",
5962
6185
  "depth": 0
5963
6186
  },
6187
+ {
6188
+ "source": ".agent-src.uncompressed/personas/ai-video-technical-director.md",
6189
+ "target": ".agent-src.uncompressed/personas/ai-video-technical-director.md",
6190
+ "type": "WRITE",
6191
+ "via": "self",
6192
+ "depth": 0
6193
+ },
5964
6194
  {
5965
6195
  "source": ".agent-src.uncompressed/personas/backend-architect.md",
5966
6196
  "target": ".agent-src.uncompressed/personas/backend-architect.md",
@@ -6038,6 +6268,13 @@
6038
6268
  "via": "self",
6039
6269
  "depth": 0
6040
6270
  },
6271
+ {
6272
+ "source": ".agent-src.uncompressed/personas/hollywood-director.md",
6273
+ "target": ".agent-src.uncompressed/personas/hollywood-director.md",
6274
+ "type": "WRITE",
6275
+ "via": "self",
6276
+ "depth": 0
6277
+ },
6041
6278
  {
6042
6279
  "source": ".agent-src.uncompressed/personas/people-strategist.md",
6043
6280
  "target": ".agent-src.uncompressed/personas/people-strategist.md",
@@ -6892,6 +7129,13 @@
6892
7129
  "via": "self",
6893
7130
  "depth": 0
6894
7131
  },
7132
+ {
7133
+ "source": ".agent-src.uncompressed/rules/media-governance-routing.md",
7134
+ "target": ".agent-src.uncompressed/rules/media-governance-routing.md",
7135
+ "type": "WRITE",
7136
+ "via": "self",
7137
+ "depth": 0
7138
+ },
6895
7139
  {
6896
7140
  "source": ".agent-src.uncompressed/rules/minimal-safe-diff.md",
6897
7141
  "target": ".agent-src.uncompressed/rules/minimal-safe-diff.md",
@@ -7102,6 +7346,27 @@
7102
7346
  "via": "self",
7103
7347
  "depth": 0
7104
7348
  },
7349
+ {
7350
+ "source": ".agent-src.uncompressed/rules/persona-governance.md",
7351
+ "target": ".agent-src.uncompressed/rules/persona-governance.md",
7352
+ "type": "WRITE",
7353
+ "via": "self",
7354
+ "depth": 0
7355
+ },
7356
+ {
7357
+ "source": ".agent-src.uncompressed/rules/persona-governance.md",
7358
+ "target": ".agent-src.uncompressed/rules/skill-quality.md",
7359
+ "type": "READ_ONLY",
7360
+ "via": "body_link",
7361
+ "depth": 1
7362
+ },
7363
+ {
7364
+ "source": ".agent-src.uncompressed/rules/persona-governance.md",
7365
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
7366
+ "type": "READ_ONLY",
7367
+ "via": "body_link",
7368
+ "depth": 1
7369
+ },
7105
7370
  {
7106
7371
  "source": ".agent-src.uncompressed/rules/php-coding.md",
7107
7372
  "target": ".agent-src.uncompressed/rules/php-coding.md",
@@ -7116,6 +7381,27 @@
7116
7381
  "via": "self",
7117
7382
  "depth": 0
7118
7383
  },
7384
+ {
7385
+ "source": ".agent-src.uncompressed/rules/provider-lifecycle-discipline.md",
7386
+ "target": ".agent-src.uncompressed/rules/ask-when-uncertain.md",
7387
+ "type": "READ_ONLY",
7388
+ "via": "body_link",
7389
+ "depth": 1
7390
+ },
7391
+ {
7392
+ "source": ".agent-src.uncompressed/rules/provider-lifecycle-discipline.md",
7393
+ "target": ".agent-src.uncompressed/rules/media-governance-routing.md",
7394
+ "type": "READ_ONLY",
7395
+ "via": "body_link",
7396
+ "depth": 1
7397
+ },
7398
+ {
7399
+ "source": ".agent-src.uncompressed/rules/provider-lifecycle-discipline.md",
7400
+ "target": ".agent-src.uncompressed/rules/provider-lifecycle-discipline.md",
7401
+ "type": "WRITE",
7402
+ "via": "self",
7403
+ "depth": 0
7404
+ },
7119
7405
  {
7120
7406
  "source": ".agent-src.uncompressed/rules/reviewer-awareness.md",
7121
7407
  "target": ".agent-src.uncompressed/rules/reviewer-awareness.md",
@@ -7858,6 +8144,34 @@
7858
8144
  "via": "self",
7859
8145
  "depth": 0
7860
8146
  },
8147
+ {
8148
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8149
+ "target": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8150
+ "type": "WRITE",
8151
+ "via": "self",
8152
+ "depth": 0
8153
+ },
8154
+ {
8155
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8156
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
8157
+ "type": "READ_ONLY",
8158
+ "via": "body_link",
8159
+ "depth": 1
8160
+ },
8161
+ {
8162
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8163
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
8164
+ "type": "READ_ONLY",
8165
+ "via": "body_link",
8166
+ "depth": 1
8167
+ },
8168
+ {
8169
+ "source": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
8170
+ "target": ".agent-src.uncompressed/skills/video-director/SKILL.md",
8171
+ "type": "READ_ONLY",
8172
+ "via": "body_link",
8173
+ "depth": 1
8174
+ },
7861
8175
  {
7862
8176
  "source": ".agent-src.uncompressed/skills/check-refs/SKILL.md",
7863
8177
  "target": ".agent-src.uncompressed/skills/check-refs/SKILL.md",
@@ -9790,6 +10104,20 @@
9790
10104
  "via": "self",
9791
10105
  "depth": 0
9792
10106
  },
10107
+ {
10108
+ "source": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10109
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10110
+ "type": "WRITE",
10111
+ "via": "self",
10112
+ "depth": 0
10113
+ },
10114
+ {
10115
+ "source": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10116
+ "target": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
10117
+ "type": "READ_ONLY",
10118
+ "via": "body_link",
10119
+ "depth": 1
10120
+ },
9793
10121
  {
9794
10122
  "source": ".agent-src.uncompressed/skills/multi-tenancy/SKILL.md",
9795
10123
  "target": ".agent-src.uncompressed/skills/multi-tenancy/SKILL.md",
@@ -10133,6 +10461,34 @@
10133
10461
  "via": "self",
10134
10462
  "depth": 0
10135
10463
  },
10464
+ {
10465
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10466
+ "target": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
10467
+ "type": "READ_ONLY",
10468
+ "via": "body_link",
10469
+ "depth": 1
10470
+ },
10471
+ {
10472
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10473
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
10474
+ "type": "READ_ONLY",
10475
+ "via": "body_link",
10476
+ "depth": 1
10477
+ },
10478
+ {
10479
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10480
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10481
+ "type": "WRITE",
10482
+ "via": "self",
10483
+ "depth": 0
10484
+ },
10485
+ {
10486
+ "source": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
10487
+ "target": ".agent-src.uncompressed/skills/video-director/SKILL.md",
10488
+ "type": "READ_ONLY",
10489
+ "via": "body_link",
10490
+ "depth": 1
10491
+ },
10136
10492
  {
10137
10493
  "source": ".agent-src.uncompressed/skills/playwright-architect/SKILL.md",
10138
10494
  "target": ".agent-src.uncompressed/skills/mobile-e2e-strategy/SKILL.md",
@@ -11036,6 +11392,27 @@
11036
11392
  "via": "body_link",
11037
11393
  "depth": 1
11038
11394
  },
11395
+ {
11396
+ "source": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
11397
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
11398
+ "type": "READ_ONLY",
11399
+ "via": "body_link",
11400
+ "depth": 1
11401
+ },
11402
+ {
11403
+ "source": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
11404
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
11405
+ "type": "READ_ONLY",
11406
+ "via": "body_link",
11407
+ "depth": 1
11408
+ },
11409
+ {
11410
+ "source": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
11411
+ "target": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
11412
+ "type": "WRITE",
11413
+ "via": "self",
11414
+ "depth": 0
11415
+ },
11039
11416
  {
11040
11417
  "source": ".agent-src.uncompressed/skills/script-writing/SKILL.md",
11041
11418
  "target": ".agent-src.uncompressed/contexts/contracts/frugality-charter.md",
@@ -12037,6 +12414,34 @@
12037
12414
  "via": "self",
12038
12415
  "depth": 0
12039
12416
  },
12417
+ {
12418
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12419
+ "target": ".agent-src.uncompressed/skills/character-consistency/SKILL.md",
12420
+ "type": "READ_ONLY",
12421
+ "via": "body_link",
12422
+ "depth": 1
12423
+ },
12424
+ {
12425
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12426
+ "target": ".agent-src.uncompressed/skills/motion-choreographer/SKILL.md",
12427
+ "type": "READ_ONLY",
12428
+ "via": "body_link",
12429
+ "depth": 1
12430
+ },
12431
+ {
12432
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12433
+ "target": ".agent-src.uncompressed/skills/pixar-storyteller/SKILL.md",
12434
+ "type": "READ_ONLY",
12435
+ "via": "body_link",
12436
+ "depth": 1
12437
+ },
12438
+ {
12439
+ "source": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12440
+ "target": ".agent-src.uncompressed/skills/video-director/SKILL.md",
12441
+ "type": "WRITE",
12442
+ "via": "self",
12443
+ "depth": 0
12444
+ },
12040
12445
  {
12041
12446
  "source": ".agent-src.uncompressed/skills/vision-articulation/SKILL.md",
12042
12447
  "target": ".agent-src.uncompressed/skills/competitive-moat-analysis/SKILL.md",
@@ -0,0 +1,122 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-15
4
+ ---
5
+
6
+ # Provider Lifecycle — AI Video / Image / Audio Adapter Tiers
7
+
8
+ > **Status:** active · **Stability:** beta · **Owner:** universal-platform-refinement Phase 3
9
+ > · **Linter:** none (declarative contract; enforced agent-in-the-loop via [`provider-lifecycle-discipline`](../../.agent-src/rules/provider-lifecycle-discipline.md))
10
+ > · **Source-of-truth template:** [`agents/.ai-video.xml.example`](../../agents/.ai-video.xml.example)
11
+
12
+ Locks the lifecycle tagging used on every adapter under
13
+ `scripts/ai-video/adapters/` (and future `scripts/ai-image/`,
14
+ `scripts/ai-audio/` peers). The tag is declarative — it tells the
15
+ agent what the maintainer's confidence in the adapter is, so the
16
+ agent can refuse to *default* to an under-validated provider without
17
+ the human noticing.
18
+
19
+ ## § 1 — Tiers
20
+
21
+ | Tier | Meaning | Default-eligibility |
22
+ |---|---|---|
23
+ | `stable` | Maintainer-validated against a real API run at least once; dry-run output matches the documented contract; secret-redaction confirmed on a live response | **Yes** — `/video:*` / `/image:*` / `/audio:*` commands may default to a `stable` adapter |
24
+ | `experimental` | Adapter shipped; structural shape matches the contract; **no real-API smoke run by a maintainer yet** | **No** — must be invoked explicitly (`--provider <id>`), never silently the default |
25
+ | `deprecated` | Replaced by a successor; kept for one release window so consumer scripts can migrate | **No** — refusal-and-surface: the agent names the successor before running |
26
+ | `community` | Contributed externally; maintained on a best-effort basis; behaviour outside the maintainer's smoke-test matrix | **No** — explicit opt-in only; the agent surfaces "community-tier provider" in the run summary |
27
+
28
+ ## § 2 — Promotion path
29
+
30
+ `experimental → stable` requires three checkmarks on the same commit
31
+ (or on a tightly-scoped follow-up commit referencing the original):
32
+
33
+ 1. **Real-API smoke run** — at least one live `submit / poll / fetch`
34
+ cycle (or `run` for sync adapters) against the documented
35
+ `default-model`, captured under
36
+ `agents/ai-video/smoke-traces/<provider>.md` with timestamp,
37
+ model id, and **redacted** response shape.
38
+ 2. **Secret-redaction confirmation** — the captured trace, re-read
39
+ through `scripts/ai-video/lib/redact.sh`, shows zero residual
40
+ key fragments.
41
+ 3. **Contract conformance** — the adapter's four-method shell
42
+ surface (`submit / poll / fetch / dry-run` *or* `run / dry-run`)
43
+ matches `scripts/ai-video/lib/adapter-contract.md` verbatim.
44
+
45
+ A maintainer flipping the tier in `agents/.ai-video.xml.example`
46
+ **and** the adapter header comment is the promotion event. There is
47
+ no separate registry — the example file is the registry.
48
+
49
+ ## § 3 — Demotion criteria
50
+
51
+ `stable → experimental` (or `stable → deprecated`) on any of:
52
+
53
+ - **Provider API contract drift** that breaks the adapter against
54
+ the documented `default-model` for ≥ 7 calendar days without a
55
+ maintainer fix.
56
+ - **Auth-flow change** that invalidates the redaction matchers in
57
+ `lib/redact.sh` until the matchers are extended.
58
+ - **Successor adapter declared** (use `deprecated`, not
59
+ `experimental`, and record the successor in the header comment).
60
+
61
+ Demotion is the maintainer's call; the rule does not auto-demote.
62
+
63
+ ## § 4 — Agent obligations
64
+
65
+ When the agent picks a provider for a `/video:*` / `/image:*` /
66
+ `/audio:*` run, it MUST:
67
+
68
+ 1. **Read** the `provider_lifecycle` tag from the adapter's header
69
+ comment **and** the matching `<provider id="…">` block in
70
+ `agents/.ai-video.xml.example` (or the operator's
71
+ `agents/.ai-video.xml`).
72
+ 2. **Refuse-and-surface** if the operator's resolved default is a
73
+ non-`stable` tier — name the tier and the path to this contract
74
+ document, then emit one clarifying question (per
75
+ [`ask-when-uncertain`](../../.augment/rules/ask-when-uncertain.md)):
76
+ either pick a `stable` provider, or confirm the non-stable run.
77
+ 3. **Record** in the run summary which tier the chosen adapter
78
+ carries — this is the audit log entry the agent-in-the-loop
79
+ model rests on.
80
+
81
+ The agent never picks `deprecated` silently. If a successor is
82
+ declared, the agent surfaces "X is deprecated; successor: Y" before
83
+ running.
84
+
85
+ ## § 5 — Day-one assignment
86
+
87
+ The five shipped adapters carry the following tiers on the day
88
+ this contract lands (PR `universal-platform-refinement`):
89
+
90
+ | Adapter | Kind | Tier | Rationale |
91
+ |---|---|---|---|
92
+ | `openai-images` | image | `experimental` | Structural shape conformant; no maintainer real-API smoke captured yet |
93
+ | `gemini-veo` | video | `experimental` | Default video provider; no real-API smoke captured yet |
94
+ | `kling` | video | `experimental` | Async contract conformant; no maintainer real-API smoke captured yet |
95
+ | `higgsfield` | image+video | `experimental` | Capability-discovery path conformant; no real-API smoke captured yet |
96
+ | `sora` | video | `experimental` | Structural-prompt path conformant; no real-API smoke captured yet |
97
+
98
+ **All five start as `experimental` on day one.** The promotion to
99
+ `stable` happens per-adapter, on the commit that records the first
100
+ real-API smoke trace. This is conservative by construction: a
101
+ `/video:*` run today resolves to a default that is `experimental`,
102
+ so the agent surfaces the tier and asks before proceeding — the
103
+ human is the policy decision point.
104
+
105
+ The `<default-image-provider>` and `<default-video-provider>`
106
+ entries in `agents/.ai-video.xml.example` remain unchanged
107
+ (`openai-images` and `gemini-veo`). The tier tag does not change
108
+ defaults; it changes whether the agent silently honours them.
109
+
110
+ ## § 6 — Versioning
111
+
112
+ Tier rename or new tier is breaking (linter and adapter headers
113
+ both flip); promotion / demotion of an individual adapter is not
114
+ breaking. The Day-One Assignment table above is the per-release
115
+ snapshot — older snapshots live in git history, not in this file.
116
+
117
+ ## See also
118
+
119
+ - [`provider-lifecycle-discipline`](../../.agent-src/rules/provider-lifecycle-discipline.md) — the tier-2 routing rule that surfaces this contract when a provider is touched.
120
+ - [`scripts/ai-video/lib/adapter-contract.md`](../../scripts/ai-video/lib/adapter-contract.md) — the four-method shell contract every adapter implements.
121
+ - [`agents/.ai-video.xml.example`](../../agents/.ai-video.xml.example) — operator-facing provider configuration template (carries the tier tag inline).
122
+ - [`agents/policies/media/README.md`](../../agents/policies/media/README.md) — the agent-in-the-loop enforcement model this contract participates in.