@event4u/agent-config 2.24.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.
- package/.agent-src/commands/create-pr/description-only.md +39 -11
- package/.agent-src/commands/create-pr.md +59 -5
- package/.agent-src/commands/video/from-script.md +5 -5
- package/.agent-src/commands/video/storyboard.md +1 -1
- package/.agent-src/contexts/execution/roadmap-process-loop.md +69 -14
- package/.agent-src/personas/README.md +3 -2
- package/.agent-src/personas/ai-video-technical-director.md +2 -2
- package/.agent-src/personas/hollywood-director.md +3 -3
- package/.agent-src/profiles/content_creator.yml +5 -0
- package/.agent-src/rules/media-governance-routing.md +82 -0
- package/.agent-src/rules/persona-governance.md +90 -0
- package/.agent-src/rules/post-push-rewrite-discipline.md +70 -0
- package/.agent-src/rules/provider-lifecycle-discipline.md +75 -0
- package/.agent-src/rules/roadmap-ci-steps-policy.md +145 -0
- package/.agent-src/rules/roadmap-progress-sync.md +11 -5
- package/.agent-src/skills/character-consistency/SKILL.md +12 -1
- package/.agent-src/skills/git-workflow/SKILL.md +133 -0
- package/.agent-src/skills/motion-choreographer/SKILL.md +12 -0
- package/.agent-src/skills/pixar-storyteller/SKILL.md +19 -6
- package/.agent-src/skills/roadmap-writing/SKILL.md +10 -0
- package/.agent-src/skills/scene-expander/SKILL.md +22 -7
- package/.agent-src/skills/video-director/SKILL.md +13 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/roadmaps.md +16 -0
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +43 -0
- package/README.md +5 -3
- package/config/agent-settings.template.yml +26 -0
- package/docs/architecture.md +1 -1
- package/docs/catalog.md +5 -2
- package/docs/contracts/file-ownership-matrix.json +81 -13
- package/docs/contracts/provider-lifecycle.md +122 -0
- package/docs/decisions/ADR-011-domain-pack-readiness.md +213 -0
- package/docs/decisions/INDEX.md +1 -0
- package/docs/getting-started-by-role.md +10 -0
- package/docs/getting-started.md +1 -1
- package/docs/personas.md +73 -26
- package/docs/profiles.md +9 -4
- package/package.json +1 -1
- package/scripts/_tmp_scan_framework_leakage.py +119 -0
- package/scripts/ai-video/adapters/gemini-veo.sh +5 -0
- package/scripts/ai-video/adapters/higgsfield.sh +6 -0
- package/scripts/ai-video/adapters/kling.sh +5 -0
- package/scripts/ai-video/adapters/openai-images.sh +5 -0
- package/scripts/ai-video/adapters/sora.sh +6 -0
- package/scripts/check_portability.py +6 -0
- package/scripts/lint_media_policy_linkage.py +140 -0
- package/scripts/lint_persona_governance.py +164 -0
- package/scripts/lint_roadmap_ci_steps.py +182 -0
- package/scripts/smoke/schema.sh +1 -1
- package/.agent-src/personas/pixar-storyboard-artist.md +0 -98
package/CHANGELOG.md
CHANGED
|
@@ -702,6 +702,49 @@ 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.25.0](https://github.com/event4u-app/agent-config/compare/2.24.0...2.25.0) (2026-05-18)
|
|
706
|
+
|
|
707
|
+
### Features
|
|
708
|
+
|
|
709
|
+
* **rules:** add post-push-rewrite-discipline tier-2a guard ([1af51e1](https://github.com/event4u-app/agent-config/commit/1af51e1809de3522bd344453cc7e6206032f5d4a))
|
|
710
|
+
* enforce roadmap CI-steps policy as Hard Gate ([a2ec868](https://github.com/event4u-app/agent-config/commit/a2ec868e81a9d9a4644d04704ff964b67754b2b2))
|
|
711
|
+
* **provider-lifecycle:** tier adapters and enforce safety gates ([e9771e6](https://github.com/event4u-app/agent-config/commit/e9771e672e07804ff80b4f182c7b095acec6995d))
|
|
712
|
+
* **policy:** add media governance policy layer ([4adc2ac](https://github.com/event4u-app/agent-config/commit/4adc2ac19fa31a6b0393ba4f662d91e85e6c63d0))
|
|
713
|
+
|
|
714
|
+
### Bug Fixes
|
|
715
|
+
|
|
716
|
+
* **ci:** extend portability skip-list with roadmap-ci-steps-policy files ([c68893d](https://github.com/event4u-app/agent-config/commit/c68893dfcb6189a951deb0ebab9802683e705d7a))
|
|
717
|
+
* **ci:** repair archived-roadmap refs + bump smoke warn baseline ([11e181b](https://github.com/event4u-app/agent-config/commit/11e181b78a8303fc54cc4aa79138753b1c0c4148))
|
|
718
|
+
|
|
719
|
+
### Performance
|
|
720
|
+
|
|
721
|
+
* **roadmap:** batchable dashboard regen + parallel step reads in autonomous runs ([c1aa3a5](https://github.com/event4u-app/agent-config/commit/c1aa3a51cf1d99e71151f1d7116ab970d36cd85b))
|
|
722
|
+
* **create-pr:** mandate single github-api call and parallel context fetch ([cbade08](https://github.com/event4u-app/agent-config/commit/cbade08df40b0d501791eeb6847e6452b2971d1d))
|
|
723
|
+
|
|
724
|
+
### Documentation
|
|
725
|
+
|
|
726
|
+
* **skills:** expand git-workflow with safe-squash and divergent-state recovery ([745859f](https://github.com/event4u-app/agent-config/commit/745859f100c1ffd6d607de81f701dacefb1feff0))
|
|
727
|
+
* **roadmap:** add framework-neutrality-audit roadmap + scan evidence ([6daf8b8](https://github.com/event4u-app/agent-config/commit/6daf8b8a0a16880f02a7afb1fb07cf7526be3c28))
|
|
728
|
+
* **adr:** record ADR-011 domain-pack readiness (Phase 6) ([830cefa](https://github.com/event4u-app/agent-config/commit/830cefafdbec8474d1f6f71421457d1761f746ab))
|
|
729
|
+
* **roadmap:** file Phase 5 advisory issues #178-#180 and sync dashboard ([3859d08](https://github.com/event4u-app/agent-config/commit/3859d085ebf7cf9bc091ae55d3e8ad1e15893dcb))
|
|
730
|
+
* **roadmap:** add universal-platform-refinement roadmap ([0912bb5](https://github.com/event4u-app/agent-config/commit/0912bb505dac59ac5d4cc5e25b42b2f1d6efa694))
|
|
731
|
+
|
|
732
|
+
### Tests
|
|
733
|
+
|
|
734
|
+
* **ai-video:** add blueprint, prompt-optimizer, adapter-contract suites (Phase 4) ([7762df7](https://github.com/event4u-app/agent-config/commit/7762df720412049f6d3b12bd328cd7c9a78b215b))
|
|
735
|
+
|
|
736
|
+
### Chores
|
|
737
|
+
|
|
738
|
+
* add claude rules ([744328d](https://github.com/event4u-app/agent-config/commit/744328d57b4ba3c502ab3b41ded10e25ba3db8cf))
|
|
739
|
+
* compress 4 .md files into .agent-src/ ([96ef2f9](https://github.com/event4u-app/agent-config/commit/96ef2f94504661f71b86a3fb16762069c39caaa7))
|
|
740
|
+
* regenerate compiled trees for new rule (82 to 83) ([8b8af6a](https://github.com/event4u-app/agent-config/commit/8b8af6a4a918e927dbaafaeadc4402e3a7220981))
|
|
741
|
+
|
|
742
|
+
### Other
|
|
743
|
+
|
|
744
|
+
* Clarify skills, rules, and commands description ([b586a0c](https://github.com/event4u-app/agent-config/commit/b586a0c6895da701a2719aeb4758f14cbe3fc2db))
|
|
745
|
+
|
|
746
|
+
Tests: 4664 (+95 since 2.24.0)
|
|
747
|
+
|
|
705
748
|
## [2.24.0](https://github.com/event4u-app/agent-config/compare/2.23.0...2.24.0) (2026-05-17)
|
|
706
749
|
|
|
707
750
|
### Features
|
package/README.md
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
# Agent Config — Universal AI Agent OS
|
|
4
4
|
|
|
5
|
-
[](.augment/skills/) [](.augment/skills/) [](.augment/rules/) [](.augment/commands/) [](docs/guidelines/) [](docs/personas.md) [](docs/profiles.md) [](docs/architecture.md) [](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: **
|
|
9
|
+
Give your AI agents an audit-disciplined execution layer: multiple **skills**, **governance rules**, **commands**, and a replayable state machine that turns any host agent (Claude Code, Augment, Cursor, Copilot, Windsurf) into a reliable team member.
|
|
10
|
+
|
|
11
|
+
> **Cinematic AI video** — script → character-locked image → motion+audio prompt → provider render → stitched clip, with `AIV_DRYRUN=true` as the cost-safety default. See [`/video:from-script`](.augment/commands/video/from-script.md).
|
|
10
12
|
|
|
11
13
|
### Pick your profile — six entry paths
|
|
12
14
|
|
|
@@ -17,7 +19,7 @@ entries, no role-detection guesswork.
|
|
|
17
19
|
| Profile (`profile.id`) | Audience | First commands | First skills |
|
|
18
20
|
|---|---|---|---|
|
|
19
21
|
| 👩💻 [`developer`](docs/profiles.md#profile-developer) | IC engineer | `/implement-ticket` · `/work` · `/review-changes` · `/fix` · `/commit` | `developer-like-execution` · `verify-completion-evidence` · `minimal-safe-diff` · `systematic-debugging` · `test-driven-development` |
|
|
20
|
-
| ✍️ [`content_creator`](docs/profiles.md#profile-content_creator) | Writers, ghostwriters, marketers | `/work` · `/post-as` · `/ghostwriter` · `/optimize-prompt` | `voice-and-tone-design` · `messaging-architecture` · `editorial-calendar` · `release-comms` · `
|
|
22
|
+
| ✍️ [`content_creator`](docs/profiles.md#profile-content_creator) | Writers, ghostwriters, marketers | `/work` · `/post-as` · `/ghostwriter` · `/optimize-prompt` · `/video:from-script` · `/video:storyboard` | `voice-and-tone-design` · `messaging-architecture` · `editorial-calendar` · `release-comms` · `character-consistency` |
|
|
21
23
|
| 🚀 [`founder`](docs/profiles.md#profile-founder) | Solo / early-stage founder | `/work` · `/feature` · `/challenge-me` · `/council` | `refine-prompt` · `rice-prioritization` · `vision-articulation` · `fundraising-narrative` · `runway-cognition` |
|
|
22
24
|
| 🏛 [`agency`](docs/profiles.md#profile-agency) | Multi-client delivery shop | `/work` · `/implement-ticket` · `/refine-ticket` · `/feature` · `/roadmap` | `doc-coauthoring` · `decision-record` · `refine-ticket` · `estimate-ticket` · `perf-feedback-craft` |
|
|
23
25
|
| 💼 [`finance`](docs/profiles.md#profile-finance) | CFO / fractional finance / FP&A | `/work` · `/council` · `/challenge-me` | `dcf-modeling` · `forecasting` · `scenario-modeling` · `unit-economics-modeling` · `runway-cognition` |
|
|
@@ -209,6 +209,32 @@ roadmap:
|
|
|
209
209
|
# is mandatory before any "roadmap complete" claim regardless of cadence.
|
|
210
210
|
quality_cadence: end_of_roadmap
|
|
211
211
|
|
|
212
|
+
# Dashboard regen cadence inside autonomous runs (process-step /
|
|
213
|
+
# process-phase / process-full). Controls how often
|
|
214
|
+
# `./agent-config roadmap:progress` runs **between** steps in a
|
|
215
|
+
# single session. The dashboard is always regenerated at the start
|
|
216
|
+
# of the run, at every phase boundary, and at run end — this knob
|
|
217
|
+
# only affects the inter-step beat.
|
|
218
|
+
#
|
|
219
|
+
# per_step = legacy default: regen after every checkbox flip.
|
|
220
|
+
# Safest for crash recovery; highest subprocess
|
|
221
|
+
# overhead. Use when a session may be killed
|
|
222
|
+
# mid-roadmap and a fresh dashboard must always
|
|
223
|
+
# reflect the last-saved step.
|
|
224
|
+
# every_5_steps = batch flips, regen every 5 closed steps + at
|
|
225
|
+
# every phase boundary. Balanced cost/freshness
|
|
226
|
+
# for runs of 20–100 steps.
|
|
227
|
+
# phase_boundary = regen only at phase boundaries + run end.
|
|
228
|
+
# Cheapest for long roadmaps (100+ steps).
|
|
229
|
+
# The checkbox flip itself is still inline per
|
|
230
|
+
# Iron Law 2 — only the subprocess regen batches.
|
|
231
|
+
#
|
|
232
|
+
# `process-step` ignores this knob (single-step runs always regen
|
|
233
|
+
# at the end of the step). The Iron Law 1 mandate to regen on any
|
|
234
|
+
# file-shape touch (rename / phase add / archive) still fires
|
|
235
|
+
# immediately regardless of this setting.
|
|
236
|
+
dashboard_regen_cadence: per_step
|
|
237
|
+
|
|
212
238
|
# Visible-horizon framing in roadmap authoring (integer weeks, default 0).
|
|
213
239
|
# 0 = off (default). Time-boxed plate / horizon framing is forbidden:
|
|
214
240
|
# no `## Horizon (N-week visible plate)` sections, no
|
package/docs/architecture.md
CHANGED
|
@@ -142,7 +142,7 @@ note, package-internal path-swap, description budget, and the
|
|
|
142
142
|
| Layer | Count | Purpose |
|
|
143
143
|
|---|---|---|
|
|
144
144
|
| **Skills** | 216 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
|
|
145
|
-
| **Rules** |
|
|
145
|
+
| **Rules** | 84 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
|
|
146
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 |
|
package/docs/catalog.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# agent-config — Public Catalog
|
|
2
2
|
|
|
3
|
-
Consumer-facing catalog of all **
|
|
3
|
+
Consumer-facing catalog of all **497 public artefacts** shipped by
|
|
4
4
|
this package. Internal package-maintenance rules and deprecation shims
|
|
5
5
|
are excluded.
|
|
6
6
|
|
|
@@ -228,7 +228,7 @@ are excluded.
|
|
|
228
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'. |
|
|
229
229
|
| skill | [`websocket`](../.agent-src/skills/websocket/SKILL.md) | | Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'. |
|
|
230
230
|
|
|
231
|
-
## Rules (
|
|
231
|
+
## Rules (79)
|
|
232
232
|
|
|
233
233
|
| kind | name | type | description |
|
|
234
234
|
|---|---|---|---|
|
|
@@ -276,6 +276,7 @@ are excluded.
|
|
|
276
276
|
| rule | [`laravel-translations`](../.agent-src/rules/laravel-translations.md) | auto | Laravel language files, translations, i18n, lang/de, lang/en, __() helper, localization, multilingual text |
|
|
277
277
|
| rule | [`low-impact-corpus-privacy-floor`](../.agent-src/rules/low-impact-corpus-privacy-floor.md) | auto | Writing, editing, or upstreaming entries in `agents/low-impact-decisions.md` — non-bypassable privacy floor for the learning corpus. |
|
|
278
278
|
| rule | [`markdown-safe-codeblocks`](../.agent-src/rules/markdown-safe-codeblocks.md) | auto | Generating markdown output that contains code blocks — prevent broken nesting |
|
|
279
|
+
| rule | [`media-governance-routing`](../.agent-src/rules/media-governance-routing.md) | auto | When generating AI video/image/voice — surface project-local media policies (likeness, style, public-figures, voice-cloning, disclosure) |
|
|
279
280
|
| rule | [`minimal-safe-diff`](../.agent-src/rules/minimal-safe-diff.md) | auto | When writing or reviewing a diff — the smallest change that solves the stated problem; no drive-by edits, opportunistic refactors, or reformatting |
|
|
280
281
|
| rule | [`missing-tool-handling`](../.agent-src/rules/missing-tool-handling.md) | auto | When a CLI tool needed for the task is not installed — ask before working around it; do NOT install silently |
|
|
281
282
|
| rule | [`model-recommendation`](../.agent-src/rules/model-recommendation.md) | auto | Starting a new task, switching task type, or invoking a command — detect complexity and recommend optimal model (Opus/Sonnet/GPT) before work |
|
|
@@ -286,8 +287,10 @@ are excluded.
|
|
|
286
287
|
| rule | [`non-destructive-by-default`](../.agent-src/rules/non-destructive-by-default.md) | always | Agent is never destructive — Hard Floor always asks for prod-trunk merges, deploys, pushes, prod data/infra, bulk deletions, and bulk-deletion/infra commits; no autonomy or roadmap bypass |
|
|
287
288
|
| rule | [`onboarding-gate`](../.agent-src/rules/onboarding-gate.md) | auto | First turn of a conversation on a project — check onboarding.onboarded in .agent-settings.yml; when false, prompt to run /onboard before any request |
|
|
288
289
|
| rule | [`package-ci-checks`](../.agent-src/rules/package-ci-checks.md) | manual | Before pushing to remote or creating a PR in the agent-config package — run all CI checks locally first |
|
|
290
|
+
| rule | [`persona-governance`](../.agent-src/rules/persona-governance.md) | auto | When creating, editing, or proposing personas — enforce per-domain cap (≤ 2 specialists), ≥ 1 skill citation, and the deprecation path |
|
|
289
291
|
| rule | [`php-coding`](../.agent-src/rules/php-coding.md) | auto | Writing or reviewing PHP code — strict types, naming, comparisons, early returns, Eloquent conventions |
|
|
290
292
|
| rule | [`preservation-guard`](../.agent-src/rules/preservation-guard.md) | auto | When merging, refactoring, compressing, or restructuring skills, rules, commands, or guidelines — prevent quality loss |
|
|
293
|
+
| rule | [`provider-lifecycle-discipline`](../.agent-src/rules/provider-lifecycle-discipline.md) | auto | When editing an AI video/image/audio adapter — declare lifecycle tier (experimental \| stable \| deprecated \| community); never default to non-stable |
|
|
291
294
|
| rule | [`reviewer-awareness`](../.agent-src/rules/reviewer-awareness.md) | auto | When suggesting reviewers or flagging risk hotspots — anchor in paths/risk + ownership-map + bug-patterns; medium/high needs primary + secondary |
|
|
292
295
|
| rule | [`roadmap-progress-sync`](../.agent-src/rules/roadmap-progress-sync.md) | auto | Any roadmap touch (file move, checkbox flip, phase change) regens dashboard same response; archive at 0 open. Autonomous runs flip checkboxes inline |
|
|
293
296
|
| rule | [`role-mode-adherence`](../.agent-src/rules/role-mode-adherence.md) | auto | When roles.active_role is set in .agent-settings.yml — closing outputs must match the mode's contract and emit the structured mode marker |
|
|
@@ -1095,12 +1095,6 @@
|
|
|
1095
1095
|
"load_context": [],
|
|
1096
1096
|
"load_context_eager": []
|
|
1097
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
|
-
},
|
|
1104
1098
|
".agent-src.uncompressed/personas/product-owner.md": {
|
|
1105
1099
|
"kind": "persona",
|
|
1106
1100
|
"rule_type": null,
|
|
@@ -1451,6 +1445,12 @@
|
|
|
1451
1445
|
"load_context": [],
|
|
1452
1446
|
"load_context_eager": []
|
|
1453
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
|
+
},
|
|
1454
1454
|
".agent-src.uncompressed/rules/minimal-safe-diff.md": {
|
|
1455
1455
|
"kind": "rule",
|
|
1456
1456
|
"rule_type": "auto",
|
|
@@ -1513,6 +1513,12 @@
|
|
|
1513
1513
|
"load_context": [],
|
|
1514
1514
|
"load_context_eager": []
|
|
1515
1515
|
},
|
|
1516
|
+
".agent-src.uncompressed/rules/persona-governance.md": {
|
|
1517
|
+
"kind": "rule",
|
|
1518
|
+
"rule_type": "auto",
|
|
1519
|
+
"load_context": [],
|
|
1520
|
+
"load_context_eager": []
|
|
1521
|
+
},
|
|
1516
1522
|
".agent-src.uncompressed/rules/php-coding.md": {
|
|
1517
1523
|
"kind": "rule",
|
|
1518
1524
|
"rule_type": "auto",
|
|
@@ -1525,6 +1531,12 @@
|
|
|
1525
1531
|
"load_context": [],
|
|
1526
1532
|
"load_context_eager": []
|
|
1527
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
|
+
},
|
|
1528
1540
|
".agent-src.uncompressed/rules/reviewer-awareness.md": {
|
|
1529
1541
|
"kind": "rule",
|
|
1530
1542
|
"rule_type": "auto",
|
|
@@ -6116,6 +6128,13 @@
|
|
|
6116
6128
|
"via": "body_link",
|
|
6117
6129
|
"depth": 1
|
|
6118
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
|
+
},
|
|
6119
6138
|
{
|
|
6120
6139
|
"source": ".agent-src.uncompressed/personas/_template-specialist/persona.md",
|
|
6121
6140
|
"target": ".agent-src.uncompressed/personas/_template-specialist/persona.md",
|
|
@@ -6263,13 +6282,6 @@
|
|
|
6263
6282
|
"via": "self",
|
|
6264
6283
|
"depth": 0
|
|
6265
6284
|
},
|
|
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
|
-
},
|
|
6273
6285
|
{
|
|
6274
6286
|
"source": ".agent-src.uncompressed/personas/product-owner.md",
|
|
6275
6287
|
"target": ".agent-src.uncompressed/personas/product-owner.md",
|
|
@@ -7117,6 +7129,13 @@
|
|
|
7117
7129
|
"via": "self",
|
|
7118
7130
|
"depth": 0
|
|
7119
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
|
+
},
|
|
7120
7139
|
{
|
|
7121
7140
|
"source": ".agent-src.uncompressed/rules/minimal-safe-diff.md",
|
|
7122
7141
|
"target": ".agent-src.uncompressed/rules/minimal-safe-diff.md",
|
|
@@ -7327,6 +7346,27 @@
|
|
|
7327
7346
|
"via": "self",
|
|
7328
7347
|
"depth": 0
|
|
7329
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
|
+
},
|
|
7330
7370
|
{
|
|
7331
7371
|
"source": ".agent-src.uncompressed/rules/php-coding.md",
|
|
7332
7372
|
"target": ".agent-src.uncompressed/rules/php-coding.md",
|
|
@@ -7341,6 +7381,27 @@
|
|
|
7341
7381
|
"via": "self",
|
|
7342
7382
|
"depth": 0
|
|
7343
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
|
+
},
|
|
7344
7405
|
{
|
|
7345
7406
|
"source": ".agent-src.uncompressed/rules/reviewer-awareness.md",
|
|
7346
7407
|
"target": ".agent-src.uncompressed/rules/reviewer-awareness.md",
|
|
@@ -11338,6 +11399,13 @@
|
|
|
11338
11399
|
"via": "body_link",
|
|
11339
11400
|
"depth": 1
|
|
11340
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
|
+
},
|
|
11341
11409
|
{
|
|
11342
11410
|
"source": ".agent-src.uncompressed/skills/scene-expander/SKILL.md",
|
|
11343
11411
|
"target": ".agent-src.uncompressed/skills/scene-expander/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.
|