@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
@@ -0,0 +1,108 @@
1
+ # Scene Blueprint Schema (v1)
2
+ #
3
+ # Maps the 12 labeled blocks emitted by `scene-expander` to the
4
+ # adapter-contract JSON consumed by every adapter under
5
+ # `scripts/ai-video/adapters/`. Validation lives in
6
+ # `scripts/ai-video/lib/parse-blueprint.sh`.
7
+ #
8
+ # Source format: plain-text, one labeled block per line OR per
9
+ # heading. Labels are case-insensitive; whitespace around `:` is
10
+ # tolerated. Block order is the canonical order below — out-of-order
11
+ # blocks are accepted but logged as a warning.
12
+
13
+ version: 1
14
+
15
+ blocks:
16
+ STYLE:
17
+ required: true
18
+ target: prompt.style
19
+ description: "Film stock + decade (live-action) or film title + year (animated)."
20
+
21
+ SUBJECT:
22
+ required: true
23
+ target: prompt.subject
24
+ description: "Character read. Verbatim from character.json when locked."
25
+
26
+ ENVIRONMENT:
27
+ required: true
28
+ target: prompt.environment
29
+ description: "Location, time-of-day, weather, era; world reaction."
30
+
31
+ ACTION:
32
+ required: true
33
+ target: prompt.action
34
+ description: "Anticipation / action / reaction with beat counts."
35
+
36
+ CAMERA:
37
+ required: true
38
+ target: prompt.camera
39
+ description: "Position, height, distance, move."
40
+
41
+ LENS:
42
+ required: true
43
+ target: prompt.lens
44
+ description: "Focal length in mm + aperture intent (live-action). Animated runs may emit 'n/a' but the block must be present."
45
+
46
+ LIGHTING:
47
+ required: true
48
+ target: prompt.lighting
49
+ description: "Key / fill / back / practical with direction."
50
+
51
+ MOOD:
52
+ required: true
53
+ target: prompt.mood
54
+ description: "Single emotional read."
55
+
56
+ DIALOGUE:
57
+ required: false
58
+ target: audio.dialogue
59
+ description: "Optional. Marks audio.native requirement when present."
60
+ null_when_absent: true
61
+
62
+ AMBIENT SOUND:
63
+ required: false
64
+ target: audio.ambient
65
+ description: "Optional ambient layer list."
66
+ null_when_absent: true
67
+
68
+ DURATION:
69
+ required: true
70
+ target: duration
71
+ type: number
72
+ description: "Seconds. Integer or one decimal."
73
+
74
+ NEGATIVE:
75
+ required: true
76
+ target: negative
77
+ description: "Clichés to reject, load-bearing top-first."
78
+
79
+ # Adapter-contract JSON shape produced by parse-blueprint.sh
80
+ output_shape: |
81
+ {
82
+ "prompt": {
83
+ "style": "...",
84
+ "subject": "...",
85
+ "environment": "...",
86
+ "action": "...",
87
+ "camera": "...",
88
+ "lens": "...",
89
+ "lighting": "...",
90
+ "mood": "..."
91
+ },
92
+ "audio": {
93
+ "dialogue": [...] | null,
94
+ "ambient": [...] | null,
95
+ "enable_native_audio": true | false
96
+ },
97
+ "duration": 5.0,
98
+ "negative": ["...", "..."],
99
+ "requires": {
100
+ "audio_native": true | false
101
+ }
102
+ }
103
+
104
+ # `enable_native_audio` derives from: DIALOGUE present OR AMBIENT SOUND present.
105
+ # Orchestrator uses `requires.audio_native` to pick an adapter with
106
+ # `audio: native` capability (Phase 4 Step 1). When no native adapter
107
+ # is available the orchestrator routes audio.* to ffmpeg mux at
108
+ # stitch time (Phase 4 Step 7) and clears `enable_native_audio`.
@@ -56,7 +56,7 @@ model pairing. Defaults come from
56
56
  Descriptive, not enforced. Documents the **expected agent-to-agent
57
57
  communication topology** so consumers can predict latency, failure
58
58
  modes, and where consensus is required. Cited from
59
- [`external-findings.md § 2`](../../../agents/audit-2026-05-14-north-star/external-findings.md)
59
+ [`external-findings.md § 2`](../../../agents/council-sessions/audit-2026-05-14-north-star/external-findings.md) <!-- council-ref-allowed: ADR decision trace for topology anti-drift defaults -->
60
60
  row 7 (Ruflo's `hierarchical, 6–8 agents, raft consensus` anti-drift
61
61
  default).
62
62
 
@@ -72,8 +72,8 @@ default).
72
72
 
73
73
  **Anti-drift default** (Ruflo convention, descriptive only):
74
74
  `hierarchical, 6–8 agents, raft consensus`. Consumers free to
75
- override per orchestration — table is **starting point**, not a
76
- constraint. Topology is metadata for capacity planning, not
75
+ override per orchestration — the table is the **starting point**,
76
+ not a constraint. Topology is metadata for capacity planning, not
77
77
  runtime-enforced.
78
78
 
79
79
  **Glossary:**
@@ -81,7 +81,7 @@ runtime-enforced.
81
81
  - `mesh` — agents see each other's outputs (e.g. competing diffs).
82
82
  - `hierarchical-mesh` — peer debate followed by hub reconciliation.
83
83
  - `ring` — output of step N feeds input of step N+1 in order.
84
- - `star` — N agents fan out from single hub; no peer comms.
84
+ - `star` — N agents fan out from a single hub; no peer comms.
85
85
  - `adaptive` — topology shifts per step; outer chain remains hub.
86
86
 
87
87
  ### 1. do-and-judge
@@ -193,17 +193,19 @@ step is under ~30 minutes. The branch-creation, context-switch, and
193
193
  worktree-cleanup cost dominates. Stick with mode 1 (do-and-judge)
194
194
  or mode 3 (do-in-steps) for those.
195
195
 
196
- **Competitive variant — per-candidate isolation.** Mode 5
197
- (`do-competitively`) + worktrees: each candidate runs in its own
198
- worktree (no cross-candidate state leak). Selection rules:
199
-
200
- - **No auto-merge.** Orchestrator never merges candidate branches.
201
- Hard Floor per [`non-destructive-by-default`](../../rules/non-destructive-by-default.md)
202
- applies even under standing autonomy. ADR-005 records reasoning.
203
- - **Ranked presentation.** Judge ranks 1..N with one-line
204
- justifications; user picks winner.
205
- - **Loser worktrees stay.** Orchestrator does not auto-delete losing
206
- worktrees user keeps option to harvest a partial idea before cleanup.
196
+ **Competitive variant — per-candidate isolation.** When mode 5
197
+ (`do-competitively`) is combined with worktrees, each candidate
198
+ implementer runs in its own worktree (so candidates cannot read each
199
+ other's open files or branch state). Selection rules:
200
+
201
+ - **No auto-merge.** The orchestrator never merges a candidate
202
+ branch. Hard Floor per [`non-destructive-by-default`](../../rules/non-destructive-by-default.md)
203
+ applies even under standing autonomy. ADR-005 records the reasoning.
204
+ - **Ranked presentation.** Judge ranks candidates (1..N) with a
205
+ one-line justification per rank; user picks the winner.
206
+ - **Loser worktrees stay.** The orchestrator does not delete losing
207
+ worktrees automatically — the user keeps the option to harvest a
208
+ partial idea before cleanup.
207
209
 
208
210
  ## Status taxonomy — every subagent return uses one envelope
209
211
 
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: video-director
3
+ description: "Use when turning a scene idea into the 11-block cinematic prompt for live-action AI video — lens, lighting, blocking, motion, negatives. Triggers 'cinematic prompt', 'film-grade scene'."
4
+ personas:
5
+ - hollywood-director
6
+ source: package
7
+ domain: product
8
+ ---
9
+
10
+ # video-director
11
+
12
+ > Turn a scene idea into the **11-block cinematic prompt** the
13
+ > `hollywood-director` persona ships. Output is provider-agnostic
14
+ > prose; provider-specific tuning is handed off to
15
+ > [`motion-choreographer`](../motion-choreographer/SKILL.md).
16
+
17
+ ## When to use
18
+
19
+ - A scene idea, beat, or script line needs to become a cinematic
20
+ prompt ready to feed an image+video pipeline.
21
+ - A draft prompt reads as "AI video" — flat, centered, generic
22
+ golden-hour — and needs directorial choices on the page.
23
+ - Live-action / photoreal scenes. For animation acting beats, route
24
+ to [`pixar-storyteller`](../pixar-storyteller/SKILL.md).
25
+
26
+ Do NOT use when:
27
+
28
+ - The deliverable is a still graphic or poster → `canvas-design`.
29
+ - The work is provider-specific token tuning →
30
+ `motion-choreographer` after this skill has produced the blocks.
31
+ - A character identity must be re-used across scenes → run
32
+ [`character-consistency`](../character-consistency/SKILL.md) first
33
+ to lock identity tokens, then call this skill.
34
+
35
+ ## Procedure
36
+
37
+ ### Step 0: Inspect
38
+
39
+ 1. Confirm the input is a live-action / photoreal beat (not animation).
40
+ 2. If a `character.json` exists under `agents/ai-video/<project>/characters/`,
41
+ read the identity tokens — they are reused verbatim.
42
+ 3. Read the scene's intent in one sentence — what is the camera
43
+ witnessing, and why now?
44
+
45
+ ### Step 1: Draft the 11 blocks
46
+
47
+ Emit each block on its own labeled line. Blocks are mandatory and
48
+ in this order:
49
+
50
+ 1. **SCENE** — location, time-of-day, weather, era.
51
+ 2. **CHARACTER** — verbatim identity tokens from `character.json`
52
+ when present; otherwise silhouette + wardrobe + signature prop.
53
+ 3. **ACTION** — verbs and beats. Anticipation → action → reaction
54
+ named separately. No "doing things" prose.
55
+ 4. **CAMERA** — position, height, distance, move (lock-off, dolly,
56
+ handheld, push, pull). Off-axis when on-axis is the AI default.
57
+ 5. **LENS** — focal length in mm (24 / 35 / 50 / 85 / 200) and
58
+ aperture intent (deep / shallow). "Cinematic" alone fails.
59
+ 6. **LIGHTING** — key, fill, back, practical sources named. "Golden
60
+ hour" requires an angle (low-east 15°, etc.).
61
+ 7. **ENVIRONMENT MOTION** — what the world does (wind, water,
62
+ crowd, traffic) and on which beat.
63
+ 8. **SECONDARY MOTION** — hair, cloth, dust, breath. Names the
64
+ reactive layer that sells the primary action.
65
+ 9. **MOOD** — one emotional read; no compound moods.
66
+ 10. **DURATION** — seconds. Integer or one decimal.
67
+ 11. **NEGATIVE CONSTRAINTS** — clichés to reject, in load-bearing
68
+ order (top survives truncation). Always names: centered framing,
69
+ symmetric composition, generic "cinematic", soap-opera contrast.
70
+
71
+ ### Step 2: Self-review
72
+
73
+ 1. Lens length present? "Cinematic" without mm → fail.
74
+ 2. Lighting direction present? "Golden hour" without angle → fail.
75
+ 3. ACTION names beats, not adjectives?
76
+ 4. NEGATIVE block has at least 4 entries, load-bearing on top?
77
+ 5. CHARACTER block reuses identity tokens verbatim when a lock exists?
78
+
79
+ Any "no" → revise that block before handing off.
80
+
81
+ ### Step 3: Validate
82
+
83
+ 1. Output is plain text, one labeled block per line, ready for
84
+ `scripts/ai-video/lib/parse-blueprint.sh` (Phase 3 Step 5).
85
+ 2. No provider tokens (no `--aspect`, no `--model`). That is
86
+ `motion-choreographer`'s job.
87
+
88
+ ## Output format
89
+
90
+ 1. **`scenes/<id>/prompt.txt`** — 11 labeled blocks, one per line,
91
+ ready for the blueprint parser.
92
+ 2. **`scenes/<id>/review.md`** — one-paragraph rationale per
93
+ non-obvious directorial choice (lens, light angle, camera move).
94
+
95
+ ## Gotcha
96
+
97
+ - The model defaults to centered, on-axis, symmetric — name an
98
+ off-axis or rule-of-thirds camera or it will silently center.
99
+ - "Golden hour" alone reads as a sunset GIF; require a sun angle.
100
+ - ACTION written as a paragraph of adjectives ("dynamically", "powerfully")
101
+ fails — adapters need verbs with beat counts.
102
+ - When `character.json` exists, paraphrasing identity tokens breaks
103
+ Character Lock — copy them verbatim.
104
+ - Negative constraints in the truncated tail get dropped — load-
105
+ bearing ones go first.
106
+
107
+ ## Do NOT
108
+
109
+ - Do NOT emit provider-specific tokens (aspect ratio, model id,
110
+ duration flags) — that is `motion-choreographer`'s scope.
111
+ - Do NOT collapse anticipation / action / reaction into one verb.
112
+ - Do NOT use "cinematic" without lens + lighting + camera move.
113
+ - Do NOT invent character details when a `character.json` exists.
@@ -217,6 +217,23 @@ roadmap:
217
217
  # mandatory before any "roadmap complete" claim, regardless of cadence.
218
218
  quality_cadence: end_of_roadmap
219
219
 
220
+ # --- Quality / CI execution ---
221
+ quality:
222
+ # Run local quality / CI tasks and tests autonomously (true, false)
223
+ # true = agent runs the quality pipeline whenever work is ready
224
+ # for verification, without asking (default)
225
+ # false = agent asks before running quality tools / tests locally
226
+ # Carve-out: NEW CI gates / smoke tests / test files MUST run
227
+ # locally regardless of this flag — without execution the gate is
228
+ # unverified evidence. Iron Law `verify-before-complete` still applies.
229
+ local_auto_run: true
230
+
231
+ # Wait for remote CI to finish on the PR / pipeline (true, false)
232
+ # true = poll GitHub check-runs / pipeline after push and report
233
+ # green / red before handing back
234
+ # false = push and hand back immediately (default)
235
+ wait_for_remote_ci: false
236
+
220
237
  # --- Subagent orchestration ---
221
238
  subagents:
222
239
  # Model for implementer subagents (empty = same tier as the session model)
@@ -447,6 +464,8 @@ the canonical narrative lives in
447
464
  | `hooks.chat_history.script` | path | `scripts/chat_history.py` | Override path to the chat-history CLI. Set only when the script lives outside the standard location. |
448
465
  | `pipelines.skill_improvement` | `true`, `false` | `true` | When `true`: propose learning capture after meaningful tasks. When `false`: silent. Included in every profile except `custom`. |
449
466
  | `roadmap.quality_cadence` | `end_of_roadmap`, `per_phase`, `per_step` | `end_of_roadmap` | When `/roadmap:process-step|phase|full` runs the project's quality pipeline. Default skips per-step / per-phase runs and gates only the final archival. `per_phase` runs once after every phase; `per_step` is the legacy verbose mode. Step checkboxes and the dashboard are always updated regardless. `verify-before-complete` still requires fresh output before any "roadmap complete" claim. |
467
+ | `quality.local_auto_run` | `true`, `false` | `true` | When `true`: agent runs the project's quality pipeline (`task ci`, `make test`, `npm run check`, PHPStan, ECS, Rector, test suites) autonomously when work is ready for verification. When `false`: agent asks before running locally. **Carve-out**: NEW CI gates / smoke tests / test files MUST run locally regardless of this flag — without execution the new gate is unverified evidence. Iron Law `verify-before-complete` still applies; suppressed runs require the agent to surface the gap before claiming completion. |
468
+ | `quality.wait_for_remote_ci` | `true`, `false` | `false` | When `true`: after `git push`, the agent polls GitHub check-runs / pipeline status on the PR and reports green / red before handing back. When `false`: agent pushes and hands back immediately; the user inspects CI themselves (default — saves agent runtime and tokens). |
450
469
  | `subagents.implementer_model` | model alias or empty | _(empty)_ | Model for implementer subagents. Empty = same tier as session model. See [subagent-configuration](../contexts/subagent-configuration.md). |
451
470
  | `subagents.judge_model` | model alias or empty | _(empty)_ | Model for judge subagents. Empty = one tier above implementer (opus if sonnet, sonnet if haiku). |
452
471
  | `subagents.max_parallel` | integer | `3` | Maximum parallel subagent invocations. `1` serializes. |
@@ -39,7 +39,7 @@ schema_version: 1
39
39
  # CI guard: a release bump of `package.json` must update this value
40
40
  # in lockstep — see scripts/check_template_pin_drift.py (road-to-
41
41
  # portable-runtime-and-update-check P3.3).
42
- agent_config_version: "2.21.0"
42
+ agent_config_version: "2.23.0"
43
43
 
44
44
  # --- Project identity ---
45
45
  project:
@@ -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": "2.23.0",
9
+ "version": "2.24.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
@@ -85,6 +85,7 @@
85
85
  "./.claude/skills/chat-history-import",
86
86
  "./.claude/skills/chat-history-learn",
87
87
  "./.claude/skills/chat-history-show",
88
+ "./.claude/skills/character-consistency",
88
89
  "./.claude/skills/check-current-md",
89
90
  "./.claude/skills/check-refs",
90
91
  "./.claude/skills/churn-prevention",
@@ -236,6 +237,7 @@
236
237
  "./.claude/skills/module-create",
237
238
  "./.claude/skills/module-explore",
238
239
  "./.claude/skills/module-management",
240
+ "./.claude/skills/motion-choreographer",
239
241
  "./.claude/skills/multi-tenancy",
240
242
  "./.claude/skills/nextjs-patterns",
241
243
  "./.claude/skills/okr-tree-modeling",
@@ -267,6 +269,7 @@
267
269
  "./.claude/skills/php-debugging",
268
270
  "./.claude/skills/php-service",
269
271
  "./.claude/skills/pipeline-strategy",
272
+ "./.claude/skills/pixar-storyteller",
270
273
  "./.claude/skills/playwright-architect",
271
274
  "./.claude/skills/playwright-testing",
272
275
  "./.claude/skills/po-discovery",
@@ -324,6 +327,7 @@
324
327
  "./.claude/skills/rule-writing",
325
328
  "./.claude/skills/runway-cognition",
326
329
  "./.claude/skills/scenario-modeling",
330
+ "./.claude/skills/scene-expander",
327
331
  "./.claude/skills/script-writing",
328
332
  "./.claude/skills/secrets-management",
329
333
  "./.claude/skills/security",
@@ -367,6 +371,12 @@
367
371
  "./.claude/skills/using-git-worktrees",
368
372
  "./.claude/skills/validate-feature-fit",
369
373
  "./.claude/skills/verify-completion-evidence",
374
+ "./.claude/skills/video",
375
+ "./.claude/skills/video-director",
376
+ "./.claude/skills/video-from-script",
377
+ "./.claude/skills/video-scene",
378
+ "./.claude/skills/video-stitch",
379
+ "./.claude/skills/video-storyboard",
370
380
  "./.claude/skills/vision-articulation",
371
381
  "./.claude/skills/voc-extract",
372
382
  "./.claude/skills/voice-and-tone-design",
package/CHANGELOG.md CHANGED
@@ -702,6 +702,28 @@ our recommendation order, not its support status.
702
702
  > that forces a new era split (`# Era: 2.21.x`, etc.) — see
703
703
  > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
704
704
 
705
+ ## [2.24.0](https://github.com/event4u-app/agent-config/compare/2.23.0...2.24.0) (2026-05-17)
706
+
707
+ ### Features
708
+
709
+ * **settings:** add quality.local_auto_run / wait_for_remote_ci ([a463bf1](https://github.com/event4u-app/agent-config/commit/a463bf1925a7fb192707a80c696740ba73c30ff9))
710
+ * **ai-video:** banana-arc reference project + shared prompt library ([f3afc6d](https://github.com/event4u-app/agent-config/commit/f3afc6dddff8d70cc17572d43a4839a157d62296))
711
+ * **ai-video:** /video:* command cluster (from-script, scene, storyboard, stitch) ([272f2ec](https://github.com/event4u-app/agent-config/commit/272f2ec82539e58a0b8d14c63bf0806618d88c88))
712
+ * **ai-video:** 3 specialist personas (hollywood-director, pixar-storyboard-artist, ai-video-technical-director) ([b16fb50](https://github.com/event4u-app/agent-config/commit/b16fb50c47336da6d0ad6d3864f9aaf489f91f68))
713
+ * **ai-video:** 5 specialist skills + scene-blueprint schema ([b77ecd9](https://github.com/event4u-app/agent-config/commit/b77ecd9df6d894826f172739d534db54969f9818))
714
+ * **ai-video:** adapter contract + 5 provider adapters + smoke test ([b86f1e5](https://github.com/event4u-app/agent-config/commit/b86f1e53661d6ff0e2a7154eee0136fe77ed6d24))
715
+
716
+ ### Bug Fixes
717
+
718
+ * **schema:** trim ai-video-technical-director persona description to 148 chars ([b1afbb1](https://github.com/event4u-app/agent-config/commit/b1afbb1d8d94b62cb49e306d104ae33d84d06f09))
719
+
720
+ ### Chores
721
+
722
+ * **ai-video:** wire pipeline into docs, ownership, schemas, marketplace ([18a98fa](https://github.com/event4u-app/agent-config/commit/18a98fa9098d9cc7a07782e9a6a07cf47e63d842))
723
+ * move council audit ([54074f1](https://github.com/event4u-app/agent-config/commit/54074f18db69682f656719b4de231ea8b1cbd152))
724
+
725
+ Tests: 4569 (+10 since 2.23.0)
726
+
705
727
  ## [2.23.0](https://github.com/event4u-app/agent-config/compare/2.21.0...2.23.0) (2026-05-17)
706
728
 
707
729
  ### Features
package/README.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  # Agent Config — Universal AI Agent OS
4
4
 
5
- [![Skills](https://img.shields.io/badge/Skills-211-1f6feb?style=flat-square)](.augment/skills/) [![Rules](https://img.shields.io/badge/Rules-79-d73a49?style=flat-square)](.augment/rules/) [![Commands](https://img.shields.io/badge/Commands-124-2da44e?style=flat-square)](.augment/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-73-8957e5?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-22-bf8700?style=flat-square)](docs/personas.md) [![Advisors](https://img.shields.io/badge/Advisors-5-fb8500?style=flat-square)](docs/profiles.md) [![AI Tools](https://img.shields.io/badge/AI%20Tools-8-1abc9c?style=flat-square)](docs/architecture.md) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE)
5
+ [![Skills](https://img.shields.io/badge/Skills-216-1f6feb?style=flat-square)](.augment/skills/) [![Rules](https://img.shields.io/badge/Rules-79-d73a49?style=flat-square)](.augment/rules/) [![Commands](https://img.shields.io/badge/Commands-129-2da44e?style=flat-square)](.augment/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-73-8957e5?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-25-bf8700?style=flat-square)](docs/personas.md) [![Advisors](https://img.shields.io/badge/Advisors-5-fb8500?style=flat-square)](docs/profiles.md) [![AI Tools](https://img.shields.io/badge/AI%20Tools-8-1abc9c?style=flat-square)](docs/architecture.md) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE)
6
6
 
7
7
  > **A deterministic orchestration contract for AI agents — audited skills, governance rules, replayable state — usable by developers, founders, and creators alike.**
8
8
 
9
- Give your AI agents an audit-disciplined execution layer: **210 skills**, **79 governance rules**, **124 commands**, and a replayable state machine that turns any host agent (Claude Code, Augment, Cursor, Copilot, Windsurf) into a reliable team member.
9
+ Give your AI agents an audit-disciplined execution layer: **210 skills**, **79 governance rules**, **129 commands**, and a replayable state machine that turns any host agent (Claude Code, Augment, Cursor, Copilot, Windsurf) into a reliable team member.
10
10
 
11
11
  ### Pick your profile — six entry paths
12
12
 
@@ -543,7 +543,7 @@ Deep version of the profile table above (audience · first commands ·
543
543
  first skills · preset default per profile):
544
544
  [`docs/profiles.md`](docs/profiles.md). Curated featured-commands
545
545
  subset: [`docs/featured-commands.md`](docs/featured-commands.md).
546
- [Browse all 124 active commands](.agent-src/commands/) · full catalog:
546
+ [Browse all 129 active commands](.agent-src/commands/) · full catalog:
547
547
  [`docs/catalog.md`](docs/catalog.md) ·
548
548
  [skills only](docs/skills-catalog.md) · [`llms.txt`](llms.txt).
549
549
 
@@ -577,7 +577,7 @@ slash-commands) &nbsp; 📌 = informational marker only (no auto-discovery
577
577
  or manual wiring required)
578
578
 
579
579
  > **What this means in practice:** Claude Code gets the full project-scoped
580
- > package (rules + 211 skills + 124 native commands); Augment Code gets the
580
+ > package (rules + 216 skills + 129 native commands); Augment Code gets the
581
581
  > same content but only from a single global install at `~/.augment/`.
582
582
  > Cursor, Cline, Windsurf, Gemini CLI, GitHub Copilot, Roo Code, Codex CLI,
583
583
  > and Continue.dev only get the **rules** natively; skills and commands are
@@ -225,6 +225,34 @@ roadmap:
225
225
  # only if your team genuinely commits work on a calendar plate.
226
226
  horizon_weeks: 0
227
227
 
228
+ # --- Quality / CI execution ---
229
+ #
230
+ # Controls whether the agent runs the project's quality pipeline
231
+ # (`task ci`, `make test`, `npm run check`, PHPStan, ECS, Rector,
232
+ # test suites) and whether it waits on remote CI after pushing.
233
+ # Iron Law `verify-before-complete` still applies — when these
234
+ # toggles suppress automatic runs, the agent MUST surface that and
235
+ # ask before claiming completion rather than silently skipping
236
+ # verification.
237
+ quality:
238
+ # Run local quality / CI tasks and tests autonomously (true, false)
239
+ # true = agent runs the quality pipeline whenever work is ready
240
+ # for verification, without asking (default)
241
+ # false = agent asks before running quality tools / tests locally
242
+ #
243
+ # Carve-out (always runs regardless of this flag): when the change
244
+ # introduces a NEW CI gate, smoke test, or test file, the agent
245
+ # MUST execute it locally to prove the gate works. Without that
246
+ # execution the new gate is unverified evidence.
247
+ local_auto_run: true
248
+
249
+ # Wait for remote CI to finish on the PR / pipeline (true, false)
250
+ # true = after push, poll GitHub check-runs / pipeline status and
251
+ # report green / red before handing back
252
+ # false = push and hand back immediately; user inspects CI
253
+ # themselves (default — saves agent runtime and tokens)
254
+ wait_for_remote_ci: false
255
+
228
256
  # --- Subagent orchestration ---
229
257
  #
230
258
  # Controls model selection and parallelism for subagent-based workflows
@@ -12,7 +12,7 @@ grammar for tokens. The dialect is documented in
12
12
  the question this ADR records is **whether the dialect should default
13
13
  ON for all consumers**.
14
14
 
15
- The North-Star council ([`council-synthesis.md` § 7](../../../agents/audit-2026-05-14-north-star/council-synthesis.md))
15
+ The North-Star council ([`council-synthesis.md` § 7](../../../agents/council-sessions/audit-2026-05-14-north-star/council-synthesis.md))
16
16
  landed split: two voices (token-efficiency, ops) argued default-ON
17
17
  saves 40 %+ tokens on long sessions; two voices (UX, governance)
18
18
  argued default-ON degrades novice readability and locks in a dialect
@@ -89,5 +89,5 @@ either ships default-on or gets deprecated. No middle state.
89
89
  - [`docs/contracts/compression-default-kill-criterion.md`](../../contracts/compression-default-kill-criterion.md) — kill-criterion contract.
90
90
  - [`.agent-src.uncompressed/rules/caveman-speak.md`](../../../.agent-src.uncompressed/rules/caveman-speak.md) — dialect definition.
91
91
  - [`agents/roadmaps/step-4-measurement-and-benchmark.md`](../../../agents/roadmaps/step-4-measurement-and-benchmark.md) — bench owner.
92
- - [`agents/audit-2026-05-14-north-star/council-synthesis.md`](../../../agents/audit-2026-05-14-north-star/council-synthesis.md) § 7 — council split.
92
+ - [`agents/audit-2026-05-14-north-star/council-synthesis.md`](../../../agents/council-sessions/audit-2026-05-14-north-star/council-synthesis.md) § 7 — council split.
93
93
  - [`agents/roadmaps/step-11-ruflo-parity.md`](../../../agents/roadmaps/step-11-ruflo-parity.md) Phase 4 Step 3 — origin.
@@ -111,4 +111,4 @@ governance-layer charter.
111
111
  - [`scripts/cost/budget.mjs`](../../../scripts/cost/budget.mjs) — evaluator.
112
112
  - [`scripts/cost/preflight.mjs`](../../../scripts/cost/preflight.mjs) — this hook.
113
113
  - [`agents/roadmaps/step-11-ruflo-parity.md`](../../../agents/roadmaps/step-11-ruflo-parity.md) Phase 2 Step 3 — origin.
114
- - [`agents/audit-2026-05-14-north-star/external-findings.md`](../../../agents/audit-2026-05-14-north-star/external-findings.md) § 2 row "hard stop" — upstream Ruflo pattern this absorbs.
114
+ - [`agents/audit-2026-05-14-north-star/external-findings.md`](../../../agents/council-sessions/audit-2026-05-14-north-star/external-findings.md) § 2 row "hard stop" — upstream Ruflo pattern this absorbs.
@@ -7,7 +7,7 @@
7
7
  ## Context
8
8
 
9
9
  The North-Star audit
10
- ([`external-findings.md § 5`](../../../agents/audit-2026-05-14-north-star/external-findings.md))
10
+ ([`external-findings.md § 5`](../../../agents/council-sessions/audit-2026-05-14-north-star/external-findings.md))
11
11
  flagged "smoke contracts" as an absorbed Ruflo pattern: every
12
12
  high-traffic tier needs a fast, deterministic, measurable check that
13
13
  runs in CI and surfaces regressions before they reach the rules /
@@ -95,5 +95,5 @@ baseline, CI-dispatched on path-trigger.
95
95
  - [`scripts/smoke/`](../../../scripts/smoke/) — four scripts.
96
96
  - [`.github/workflows/smoke.yml`](../../../.github/workflows/smoke.yml) — CI dispatch.
97
97
  - [`taskfiles/engine.yml`](../../../taskfiles/engine.yml) — local aggregator.
98
- - [`agents/audit-2026-05-14-north-star/external-findings.md`](../../../agents/audit-2026-05-14-north-star/external-findings.md) § 5 — origin pattern.
98
+ - [`agents/audit-2026-05-14-north-star/external-findings.md`](../../../agents/council-sessions/audit-2026-05-14-north-star/external-findings.md) § 5 — origin pattern.
99
99
  - [`agents/roadmaps/step-11-ruflo-parity.md`](../../../agents/roadmaps/step-11-ruflo-parity.md) Phase 3 (delivery) + Phase 4 Step 3 (this ADR).
@@ -141,9 +141,9 @@ note, package-internal path-swap, description budget, and the
141
141
 
142
142
  | Layer | Count | Purpose |
143
143
  |---|---|---|
144
- | **Skills** | 211 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
144
+ | **Skills** | 216 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
145
145
  | **Rules** | 79 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
146
- | **Commands** | 124 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
146
+ | **Commands** | 129 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
147
147
  | **Guidelines** | 73 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
148
148
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
149
149
  | **Contexts** | 5 | Shared knowledge about the system itself |
package/docs/catalog.md CHANGED
@@ -1,20 +1,20 @@
1
1
  # agent-config — Public Catalog
2
2
 
3
- Consumer-facing catalog of all **484 public artefacts** shipped by
3
+ Consumer-facing catalog of all **494 public artefacts** shipped by
4
4
  this package. Internal package-maintenance rules and deprecation shims
5
5
  are excluded.
6
6
 
7
7
  > **Regenerate:** `python3 scripts/generate_index.py`
8
8
  > Auto-generated — do not edit manually.
9
9
 
10
- ## Skills (211)
10
+ ## Skills (216)
11
11
 
12
12
  | kind | name | extra | description |
13
13
  |---|---|---|---|
14
14
  | skill | [`accessibility-auditor`](../.agent-src/skills/accessibility-auditor/SKILL.md) | | Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'. |
15
15
  | skill | [`activation-design`](../.agent-src/skills/activation-design/SKILL.md) | | Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'. |
16
16
  | skill | [`adr-create`](../.agent-src/skills/adr-create/SKILL.md) | | Use when capturing an architectural decision — naming the file, picking the next ADR number, filling Status / Context / Decision / Consequences, and regenerating the index — even without saying 'ADR'. |
17
- | skill | [`adversarial-review`](../.agent-src/skills/adversarial-review/SKILL.md) | | ONLY when user explicitly requests adversarial review, devil's advocate analysis, stress-testing a plan, or 'poke holes in this' — NOT for regular code review or design feedback. |
17
+ | skill | [`adversarial-review`](../.agent-src/skills/adversarial-review/SKILL.md) | | ONLY when user requests adversarial review, devil's advocate, stress-test, OR honest critique of finished work ('poke holes', 'be brutal', 'was hältst du davon') — NOT for routine code/design review. |
18
18
  | skill | [`agent-docs-writing`](../.agent-src/skills/agent-docs-writing/SKILL.md) | | Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure. |
19
19
  | skill | [`agents-md-thin-root`](../.agent-src/skills/agents-md-thin-root/SKILL.md) | | Use when editing AGENTS.md (package root) or templates/AGENTS.md (consumer) — enforces Thin-Root contract: hard char ceilings, ≥40% pointer ratio, mandatory emergency-triage block. |
20
20
  | skill | [`ai-council`](../.agent-src/skills/ai-council/SKILL.md) | | Use when polling external AIs (OpenAI, Anthropic) outside the host session for a neutral second opinion on a roadmap, diff, prompt, or file set — or 'cross-check with another model'. |
@@ -33,6 +33,7 @@ are excluded.
33
33
  | skill | [`bug-analyzer`](../.agent-src/skills/bug-analyzer/SKILL.md) | | Use when the user shares a Sentry error, Jira bug ticket, or error description and wants root cause analysis. Also for proactive bug hunting and code audits for hidden bugs. |
34
34
  | skill | [`build-buy-partner`](../.agent-src/skills/build-buy-partner/SKILL.md) | | Use when deciding insource vs outsource vs acquire — integration-cost analysis, dependency-risk, optionality preservation. Triggers on 'should we build', 'buy vs partner'. |
35
35
  | skill | [`canvas-design`](../.agent-src/skills/canvas-design/SKILL.md) | | Use when creating static visual art — posters, marketing visuals, brand assets, PDF/PNG design pieces — even if the user just says 'design a poster' or 'mach uns ein Visual'. |
36
+ | skill | [`character-consistency`](../.agent-src/skills/character-consistency/SKILL.md) | | Use when a character must stay visually identical across AI video scenes — locks identity tokens (silhouette, palette, wardrobe, prop) in JSON. Triggers 'character lock', 'same character'. |
36
37
  | skill | [`check-refs`](../.agent-src/skills/check-refs/SKILL.md) | | Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions. |
37
38
  | skill | [`churn-prevention`](../.agent-src/skills/churn-prevention/SKILL.md) | | Use when designing churn defence — health-score signals, churn-cause split (involuntary / value / relationship / fit), early-warning loop. Triggers on 'why are accounts leaving'. |
38
39
  | skill | [`code-refactoring`](../.agent-src/skills/code-refactoring/SKILL.md) | | Use when the user says "refactor this", "rename class", or "move method". Safely refactors PHP code — finds all callers, updates downstream dependencies, and verifies with quality tools. |
@@ -127,6 +128,7 @@ are excluded.
127
128
  | skill | [`migration-creator`](../.agent-src/skills/migration-creator/SKILL.md) | | Use when the user says "create migration", "add column", or "new table". Creates migrations with correct table prefixes, column naming, and multi-tenant awareness. |
128
129
  | skill | [`mobile-e2e-strategy`](../.agent-src/skills/mobile-e2e-strategy/SKILL.md) | | Use when picking a mobile E2E framework — Detox / Appium / Maestro / XCUITest / Espresso — or planning iOS Simulator / Android Emulator coverage in CI for RN, Expo, or native apps. |
129
130
  | skill | [`module-management`](../.agent-src/skills/module-management/SKILL.md) | | Use when the user says "create module", "explore module", or works within app/Modules/. Understands module structure, auto-loading, route registration, and namespace conventions. |
131
+ | skill | [`motion-choreographer`](../.agent-src/skills/motion-choreographer/SKILL.md) | | Use when turning a locked still + blueprint into a provider-tuned motion prompt — camera, primary + secondary motion, physics, native-audio sync. Triggers 'motion prompt for Veo/Kling/Sora'. |
130
132
  | skill | [`multi-tenancy`](../.agent-src/skills/multi-tenancy/SKILL.md) | | Use when working with the multi-tenant architecture — customer DB switching, FQDN routing, tenant isolation, or cross-tenant operations. |
131
133
  | skill | [`nextjs-patterns`](../.agent-src/skills/nextjs-patterns/SKILL.md) | | Writes Next.js App Router code — Server Components, Server Actions, RSC boundaries, route handlers, caching, and streaming — matching framework conventions and project architecture. |
132
134
  | skill | [`okr-tree-modeling`](../.agent-src/skills/okr-tree-modeling/SKILL.md) | | Use when decomposing a company objective into team OKRs, auditing a draft OKR tree, or stress-testing an existing one for measurability and laddering. |
@@ -145,6 +147,7 @@ are excluded.
145
147
  | skill | [`php-debugging`](../.agent-src/skills/php-debugging/SKILL.md) | | Use when debugging PHP with Xdebug — breakpoints, step-through, dual-container setup, IDE configuration, header-based routing — even when the user just says 'why does this blow up on request X'. |
146
148
  | skill | [`php-service`](../.agent-src/skills/php-service/SKILL.md) | | Use when the user says 'create service', 'new service class', or needs a PHP service following SOLID principles with proper DI and repository usage. |
147
149
  | skill | [`pipeline-strategy`](../.agent-src/skills/pipeline-strategy/SKILL.md) | | Use when designing or auditing a sales pipeline — stage exit criteria, per-cell conversion, coverage reasoning, leak detection. Triggers on 'tighten our pipeline', 'where is the leak'. |
150
+ | skill | [`pixar-storyteller`](../.agent-src/skills/pixar-storyteller/SKILL.md) | | Use when turning an idea into a Pixar-style animation prompt — character sheet, scene, image, video — anchored in emotional beat, want, obstacle. Triggers 'Pixar prompt', 'animated scene'. |
148
151
  | skill | [`playwright-architect`](../.agent-src/skills/playwright-architect/SKILL.md) | | Use when shaping a Playwright suite — locator strategy, Page Object boundaries, fixture composition, flake-prevention architecture, CI-vs-local split — even on 'design our E2E tests'. |
149
152
  | skill | [`playwright-testing`](../.agent-src/skills/playwright-testing/SKILL.md) | | Use when writing Playwright E2E tests — browser automation, visual regression testing, Page Objects, fixtures, and reliable test patterns. |
150
153
  | skill | [`po-discovery`](../.agent-src/skills/po-discovery/SKILL.md) | | Use when shaping a fuzzy product ask into a refined backlog item — problem framing, user-story rewrite, AC tightening — even if the user just says 'help me write this ticket'. |
@@ -184,6 +187,7 @@ are excluded.
184
187
  | skill | [`rule-writing`](../.agent-src/skills/rule-writing/SKILL.md) | | Use when creating or editing a rule in .agent-src.uncompressed/rules/ — trigger wording, always vs auto classification, size budget — even when the user just says 'add a rule for X'. |
185
188
  | skill | [`runway-cognition`](../.agent-src/skills/runway-cognition/SKILL.md) | | Use when reasoning about cash runway — burn shape, fundraise triggers, layoff-vs-cut-vs-grow decisions. Triggers on 'how long do we have', 'should we raise', 'cut or grow'. |
186
189
  | skill | [`scenario-modeling`](../.agent-src/skills/scenario-modeling/SKILL.md) | | Use when constructing base / upside / downside scenarios — three-statement modeling, sensitivity analysis, optionality reasoning. Triggers on 'model the scenarios', 'what if growth halves'. |
190
+ | skill | [`scene-expander`](../.agent-src/skills/scene-expander/SKILL.md) | | Use when expanding a one-line idea into the 12-block Cinematic Scene Blueprint — provider-agnostic, includes optional dialogue + ambient. Triggers 'expand this scene', 'blueprint for X'. |
187
191
  | skill | [`script-writing`](../.agent-src/skills/script-writing/SKILL.md) | | Use when adding or editing any script under `scripts/` — `--quiet` flag, `_lib/script_output` helpers, silent Taskfile wiring, Iron-Law carve-outs — even when you just say 'add a check script for X'. |
188
192
  | skill | [`secrets-management`](../.agent-src/skills/secrets-management/SKILL.md) | | Use when picking a secrets store, designing rotation, or wiring scanning gates — multi-cloud (Vault, AWS, Azure, GCP), CI, and Kubernetes — decision framework, provider deep-dives externalized. |
189
193
  | skill | [`security`](../.agent-src/skills/security/SKILL.md) | | Use when applying security best practices — authentication, authorization via Policies, CSRF protection, input sanitization, rate limiting, or secure coding. |
@@ -218,6 +222,7 @@ are excluded.
218
222
  | skill | [`using-git-worktrees`](../.agent-src/skills/using-git-worktrees/SKILL.md) | | Use when starting parallel work in isolation from the current branch — spawn a git worktree with ignore-safety checks and a clean test baseline — even when the user says 'try this on the side'. |
219
223
  | skill | [`validate-feature-fit`](../.agent-src/skills/validate-feature-fit/SKILL.md) | | Validate whether a feature request fits the existing codebase — check for duplicates, contradictions, scope creep, and architectural misfit |
220
224
  | skill | [`verify-completion-evidence`](../.agent-src/skills/verify-completion-evidence/SKILL.md) | | Use when claiming 'done', suggesting a commit, push, or PR — runs the evidence gate so completion claims come from fresh output in this message, not memory or earlier runs. |
225
+ | skill | [`video-director`](../.agent-src/skills/video-director/SKILL.md) | | Use when turning a scene idea into the 11-block cinematic prompt for live-action AI video — lens, lighting, blocking, motion, negatives. Triggers 'cinematic prompt', 'film-grade scene'. |
221
226
  | skill | [`vision-articulation`](../.agent-src/skills/vision-articulation/SKILL.md) | | Use when articulating internal vision — where we're going / why now / why us, founder-mode anchor, distinct from fundraising pitch. Triggers on 'what's our vision', 'why are we doing this'. |
222
227
  | skill | [`voc-extract`](../.agent-src/skills/voc-extract/SKILL.md) | | Use when extracting Voice-of-Customer themes from existing artefacts — GH issues, PR threads, Sentry patterns. Triggers on 'what are users saying', 'recurring complaints', 'top themes'. |
223
228
  | skill | [`voice-and-tone-design`](../.agent-src/skills/voice-and-tone-design/SKILL.md) | | Use when shaping brand voice — voice attributes, tone-by-context matrix, consistency review. Triggers on 'define our voice', 'why does our copy sound different on every surface'. |
@@ -304,7 +309,7 @@ are excluded.
304
309
  | rule | [`user-interaction`](../.agent-src/rules/user-interaction.md) | auto | Asking the user a question, presenting options, or summarizing progress — numbered-options Iron Law, single-recommendation rule, progress indicators |
305
310
  | rule | [`verify-before-complete`](../.agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
306
311
 
307
- ## Commands (124)
312
+ ## Commands (129)
308
313
 
309
314
  | kind | name | cluster | description |
310
315
  |---|---|---|---|
@@ -431,6 +436,11 @@ are excluded.
431
436
  | command | [`threat-model`](../.agent-src/commands/threat-model.md) | | Run a pre-implementation threat model on a proposed change — enumerates abuse cases, trust boundaries, and authorization gaps before the first line of code is written |
432
437
  | command | [`update-form-request-messages`](../.agent-src/commands/update-form-request-messages.md) | | Sync the messages() method of a FormRequest class — add missing entries, link them to language keys, and clean up stale ones |
433
438
  | command | [`upstream-contribute`](../.agent-src/commands/upstream-contribute.md) | | Contribute a learning, skill, rule, or fix from a consumer project back to the shared agent-config package |
439
+ | command | [`video:from-script`](../.agent-src/commands/video/from-script.md) | cluster: video | Drive a script end-to-end through the AI video pipeline — scenes → blueprint → image → operator pick → motion → video → stitch. Dry-run default; network calls require explicit per-turn confirmation. |
440
+ | command | [`video:scene`](../.agent-src/commands/video/scene.md) | cluster: video | Render a single scene from a one-line idea — scene-expander → blueprint → image → operator pick → motion → video. Dry-run default; live calls require explicit per-turn confirmation. |
441
+ | command | [`video:stitch`](../.agent-src/commands/video/stitch.md) | cluster: video | Re-stitch existing clips in `<project>/scenes/*/` after operator edits — no re-render. ffmpeg concat driven by manifest.json. |
442
+ | command | [`video:storyboard`](../.agent-src/commands/video/storyboard.md) | cluster: video | Image-only storyboard — script → scenes → blueprint → image render → contact-sheet PNG via ffmpeg montage. No video calls. |
443
+ | command | [`video`](../.agent-src/commands/video.md) | cluster: video | Video-creation orchestrator — Hollywood-level AI video pipeline. Routes to from-script, scene, storyboard, stitch. |
434
444
  | command | [`work`](../.agent-src/commands/work.md) | | Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, confidence-band gated, no auto-git. |
435
445
 
436
446
  ## Guidelines (73)