@event4u/agent-config 2.24.0 → 2.26.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/bug-fix.md +1 -0
- package/.agent-src/commands/create-pr/description-only.md +39 -11
- package/.agent-src/commands/create-pr.md +59 -5
- package/.agent-src/commands/feature/roadmap.md +2 -2
- package/.agent-src/commands/fix/seeder.md +3 -2
- package/.agent-src/commands/memory/add.md +3 -3
- package/.agent-src/commands/module/create.md +1 -0
- package/.agent-src/commands/module/explore.md +10 -6
- package/.agent-src/commands/onboard.md +9 -1
- package/.agent-src/commands/optimize/augmentignore.md +52 -20
- package/.agent-src/commands/optimize/rtk.md +56 -30
- package/.agent-src/commands/package-test.md +86 -10
- package/.agent-src/commands/quality-fix.md +49 -27
- package/.agent-src/commands/update-form-request-messages.md +2 -1
- package/.agent-src/commands/video/from-script.md +5 -5
- package/.agent-src/commands/video/storyboard.md +1 -1
- package/.agent-src/contexts/augment-infrastructure.md +4 -7
- package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -1
- package/.agent-src/contexts/contracts/research-schema.md +1 -1
- package/.agent-src/contexts/execution/interrupt-examples.md +34 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +69 -14
- package/.agent-src/contexts/skills-and-commands.md +2 -2
- 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/architecture.md +24 -10
- package/.agent-src/rules/artifact-drafting-protocol.md +6 -0
- package/.agent-src/rules/augment-edit-discipline.md +28 -0
- package/.agent-src/rules/augment-source-of-truth.md +2 -2
- package/.agent-src/rules/autonomous-execution.md +31 -0
- package/.agent-src/rules/context-hygiene.md +1 -1
- package/.agent-src/rules/domain-adoption-policy.md +4 -5
- package/.agent-src/rules/domain-safety-disclaimer.md +114 -0
- package/.agent-src/rules/domain-safety-pii.md +142 -0
- package/.agent-src/rules/domain-safety-retention.md +86 -0
- package/.agent-src/rules/downstream-changes.md +4 -4
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +130 -0
- package/.agent-src/rules/git-history-discipline.md +99 -0
- package/.agent-src/rules/media-governance-routing.md +82 -0
- package/.agent-src/rules/minimal-safe-diff.md +6 -0
- package/.agent-src/rules/no-roadmap-references.md +4 -2
- package/.agent-src/rules/persona-governance.md +90 -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/rules/user-interrupt-priority.md +46 -0
- package/.agent-src/rules/verify-before-complete.md +11 -2
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -1
- package/.agent-src/skills/ai-council/SKILL.md +1 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +58 -154
- package/.agent-src/skills/api-testing/SKILL.md +11 -0
- package/.agent-src/skills/character-consistency/SKILL.md +12 -1
- package/.agent-src/skills/code-refactoring/SKILL.md +36 -30
- package/.agent-src/skills/code-review/SKILL.md +41 -36
- package/.agent-src/skills/context-authoring/SKILL.md +1 -1
- package/.agent-src/skills/dashboard-design/SKILL.md +1 -2
- package/.agent-src/skills/database/SKILL.md +8 -3
- package/.agent-src/skills/dependency-upgrade/SKILL.md +65 -19
- package/.agent-src/skills/developer-like-execution/SKILL.md +25 -14
- package/.agent-src/skills/eloquent/SKILL.md +1 -1
- package/.agent-src/skills/feature-planning/SKILL.md +1 -1
- package/.agent-src/skills/file-editor/SKILL.md +45 -19
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/.agent-src/skills/git-workflow/SKILL.md +135 -2
- package/.agent-src/skills/laravel-api-endpoint/SKILL.md +187 -0
- package/.agent-src/skills/{dto-creator → laravel-dto}/SKILL.md +5 -4
- package/.agent-src/skills/{migration-creator → laravel-migration}/SKILL.md +11 -10
- package/.agent-src/skills/laravel-reverb/SKILL.md +3 -3
- package/.agent-src/skills/{websocket → laravel-websocket}/SKILL.md +4 -3
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -1
- package/.agent-src/skills/merge-conflicts/SKILL.md +49 -17
- package/.agent-src/skills/migration-architect/SKILL.md +6 -6
- package/.agent-src/skills/module-management/SKILL.md +1 -0
- package/.agent-src/skills/motion-choreographer/SKILL.md +12 -0
- package/.agent-src/skills/multi-tenancy/SKILL.md +15 -8
- package/.agent-src/skills/pest-testing/SKILL.md +18 -0
- package/.agent-src/skills/php-debugging/SKILL.md +28 -0
- package/.agent-src/skills/php-service/SKILL.md +3 -3
- package/.agent-src/skills/pixar-storyteller/SKILL.md +19 -6
- package/.agent-src/skills/playwright-testing/SKILL.md +16 -1
- package/.agent-src/skills/project-analyzer/SKILL.md +68 -42
- package/.agent-src/skills/readme-writing-package/SKILL.md +94 -23
- package/.agent-src/skills/roadmap-management/SKILL.md +1 -1
- package/.agent-src/skills/roadmap-writing/SKILL.md +10 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +23 -8
- package/.agent-src/skills/rule-refactor/SKILL.md +145 -0
- package/.agent-src/skills/rule-writing/SKILL.md +34 -8
- package/.agent-src/skills/scene-expander/SKILL.md +22 -7
- package/.agent-src/skills/security/SKILL.md +38 -29
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/test-driven-development/SKILL.md +4 -4
- package/.agent-src/skills/test-performance/SKILL.md +6 -5
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +24 -27
- 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/copilot-instructions.md +2 -2
- package/.agent-src/templates/roadmaps.md +16 -0
- package/.agent-src/templates/rule.md +2 -2
- package/.claude-plugin/marketplace.json +6 -4
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +80 -133
- package/README.md +6 -4
- package/config/agent-settings.template.yml +26 -0
- package/docs/architecture.md +2 -2
- package/docs/archive/CHANGELOG-pre-2.25.0.md +191 -0
- package/docs/catalog.md +20 -12
- package/docs/contracts/file-ownership-matrix.json +588 -90
- package/docs/contracts/kernel-membership.md +17 -0
- package/docs/contracts/provider-lifecycle.md +122 -0
- package/docs/contracts/smoke-contracts.md +8 -8
- 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/guidelines/php/api-design.md +1 -1
- package/docs/guidelines/php/controllers.md +1 -1
- package/docs/guidelines/php/resources.md +1 -1
- package/docs/guidelines/php/validations.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/build_linear_digest.py +0 -1
- package/scripts/check_portability.py +6 -0
- package/scripts/lint_framework_leakage.py +348 -0
- package/scripts/lint_framework_leakage_allowlist.json +476 -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/measure_augment_budget.py +6 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +5 -0
- package/scripts/skill_linter.py +60 -7
- package/scripts/smoke/kernel.sh +4 -4
- package/scripts/smoke/router.sh +2 -2
- package/scripts/smoke/schema.sh +1 -1
- package/.agent-src/personas/pixar-storyboard-artist.md +0 -98
- package/.agent-src/rules/agent-docs.md +0 -20
- package/.agent-src/rules/augment-portability.md +0 -23
- package/.agent-src/rules/capture-learnings.md +0 -19
- package/.agent-src/rules/docs-sync.md +0 -20
- package/.agent-src/rules/domain-safety-disclaimer-consulting.md +0 -52
- package/.agent-src/rules/domain-safety-disclaimer-financial.md +0 -54
- package/.agent-src/rules/domain-safety-disclaimer-legal.md +0 -49
- package/.agent-src/rules/domain-safety-disclaimer-medical.md +0 -56
- package/.agent-src/rules/domain-safety-export-redact.md +0 -65
- package/.agent-src/rules/domain-safety-logging-pii-floor.md +0 -55
- package/.agent-src/rules/domain-safety-pii-finance.md +0 -57
- package/.agent-src/rules/domain-safety-pii-marketing.md +0 -60
- package/.agent-src/rules/domain-safety-pii-recruiting.md +0 -56
- package/.agent-src/rules/domain-safety-pii-support.md +0 -57
- package/.agent-src/rules/domain-safety-retention-finance.md +0 -48
- package/.agent-src/rules/domain-safety-retention-support.md +0 -55
- package/.agent-src/rules/e2e-testing.md +0 -19
- package/.agent-src/rules/no-unsolicited-rebase.md +0 -107
|
@@ -145,6 +145,23 @@ Future edits to any kernel rule must keep the Iron-Law SHA stable
|
|
|
145
145
|
(or land a deliberate ADR-tracked SHA update). Cap re-raise requires
|
|
146
146
|
a new ADR.
|
|
147
147
|
|
|
148
|
+
### § 4.2 — Post-P2.2 kernel addition (`user-interrupt-priority`)
|
|
149
|
+
|
|
150
|
+
After the P2.2 lock, `user-interrupt-priority` was admitted as the
|
|
151
|
+
10th kernel rule. It satisfies criterion (1) (Iron Law: stop → ask
|
|
152
|
+
→ resume on user-interrupt signals) and criterion (3a) (pre-send
|
|
153
|
+
gate — must fire before continuing the current task). The smoke
|
|
154
|
+
baseline is bumped accordingly:
|
|
155
|
+
|
|
156
|
+
- `scripts/smoke/kernel.sh` — `EXPECTED_KERNEL_COUNT=10`,
|
|
157
|
+
`EXPECTED_FENCE_CARRIERS=9`.
|
|
158
|
+
- `docs/contracts/smoke-contracts.md` § 3.1 — `10 kernel rules · 9
|
|
159
|
+
carry Iron-Law fences · 1 dispatch index · ≤ 2 budget breaches`.
|
|
160
|
+
|
|
161
|
+
The § 4 / § 4.1 tables remain the locked P2.2 baseline (9-rule
|
|
162
|
+
snapshot, 2026-05-06); the 10th rule is tracked separately here
|
|
163
|
+
until the next kernel re-measurement.
|
|
164
|
+
|
|
148
165
|
† **agent-authority swap candidate (P1.4 ADR).** Sonnet 4.5 argues
|
|
149
166
|
this is a routing index (zero Iron Law fences, dispatches to other
|
|
150
167
|
kernel rules) and should be `compress-and-keep` (auto-tier-3),
|
|
@@ -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.
|
|
@@ -51,11 +51,11 @@ constant in the script body and the row below.
|
|
|
51
51
|
### § 3.1 — Kernel (`scripts/smoke/kernel.sh`)
|
|
52
52
|
|
|
53
53
|
```
|
|
54
|
-
|
|
54
|
+
10 kernel rules · 9 carry Iron-Law fences · 1 dispatch index · ≤ 2 budget breaches
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
57
|
+
- **10 kernel rules** — fixed by [`kernel-membership.md`](kernel-membership.md).
|
|
58
|
+
- **9 carry Iron-Law fences** — measured 2026-05-16. `agent-authority`
|
|
59
59
|
is the **dispatch index** (priority table pointing at the other four
|
|
60
60
|
authority rules); it is structurally exempt from the Iron-Law-fence
|
|
61
61
|
requirement and listed in the script's `EXEMPT_FROM_FENCE` set.
|
|
@@ -70,13 +70,13 @@ constant in the script body and the row below.
|
|
|
70
70
|
### § 3.2 — Router (`scripts/smoke/router.sh`)
|
|
71
71
|
|
|
72
72
|
```
|
|
73
|
-
|
|
73
|
+
68 router ids · 0 broken rule pointers · 36 routes_to refs · 2 missing contracts
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
- **
|
|
76
|
+
- **68 ids** — 10 kernel + 23 tier_1 + 35 tier_2; every id resolves to
|
|
77
77
|
`.agent-src/rules/<id>.md`.
|
|
78
78
|
- **0 broken rule pointers** — hard assertion; smoke fails on any miss.
|
|
79
|
-
- **
|
|
79
|
+
- **36 routes_to refs** across tier_1 + tier_2; resolver honours the
|
|
80
80
|
four prefixes (`skill:`, `command:`, `guideline:`, `contract:`).
|
|
81
81
|
- **2 missing contracts** — measured 2026-05-16:
|
|
82
82
|
`contract:artifact-engagement-flow`,
|
|
@@ -130,7 +130,7 @@ the final baseline line) for CI summary parsing.
|
|
|
130
130
|
|
|
131
131
|
| Symptom | Likely cause | Fix |
|
|
132
132
|
|---|---|---|
|
|
133
|
-
| `kernel.sh` reports >
|
|
133
|
+
| `kernel.sh` reports > 9 missing fences | Kernel rule lost its Iron Law block during edit | Restore the fence; update `EXEMPT_FROM_FENCE` only for new dispatch indexes |
|
|
134
134
|
| `router.sh` reports > 0 broken pointers | `router.json` references an id without a rule file | Add the rule or remove the route — never edit the smoke baseline up |
|
|
135
135
|
| `schema.sh` reports FAILs | A skill / rule lost a required field | Restore via [`scripts/schemas/skill.schema.json`](../../scripts/schemas/skill.schema.json) |
|
|
136
136
|
| `skills.sh` 5/5 random sample fails | Hand-edit broke frontmatter or renamed directory without updating `name:` | Restore filename ↔ slug coupling |
|
|
@@ -139,6 +139,6 @@ the final baseline line) for CI summary parsing.
|
|
|
139
139
|
|
|
140
140
|
- [`measurement-baseline.md`](measurement-baseline.md) — measurement substrate.
|
|
141
141
|
- [`cost-enforcement.md`](cost-enforcement.md) — cost ladder, sibling smoke surface.
|
|
142
|
-
- [`kernel-membership.md`](kernel-membership.md) — the
|
|
142
|
+
- [`kernel-membership.md`](kernel-membership.md) — the 10-rule kernel set.
|
|
143
143
|
- [`rule-router.md`](rule-router.md) — router contract.
|
|
144
144
|
- `road-to-kernel-and-router.md` — kernel budget reduction path.
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 011
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-05-17
|
|
5
|
+
decision: domain-pack-readiness
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: v2.x · universal-platform-refinement Phase 6
|
|
9
|
+
type: prospective
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-011 — Domain-Pack Readiness
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
**Accepted** · 2026-05-17 · one-round council pass complete
|
|
17
|
+
(`agents/council-responses/adr-011-domain-pack-readiness.json/debate-round-1.json`, actual spend $0.0300). <!-- council-ref-allowed: ADR decision trace; convergence summary inline in §Council-debate-trace -->
|
|
18
|
+
Split verdict — Anthropic accepted *with* tightened trigger; OpenAI
|
|
19
|
+
accepted as written. The host folded Anthropic's structural critique
|
|
20
|
+
into the trigger and added the escape clause both members' reasoning
|
|
21
|
+
implied. Trace under §Council-debate-trace.
|
|
22
|
+
|
|
23
|
+
## Context
|
|
24
|
+
|
|
25
|
+
`event4u/agent-config` shipped its first heavyweight domain capability
|
|
26
|
+
in PR #176 (AI Video Pipeline, merged at `2.24.0`): 5 provider
|
|
27
|
+
adapters, 3 personas, 5 skills, the `/video:*` command cluster, a
|
|
28
|
+
Banana-Arc pixel-similarity regression harness, secret redaction at
|
|
29
|
+
every adapter boundary, and 50 roadmap steps clean. The strategic
|
|
30
|
+
review that followed gave the work `8.9 / 10` overall (engineering
|
|
31
|
+
`9.7`, governance `9.2`, UX `10`) but flagged scope discipline at
|
|
32
|
+
`6.8 / 10` and named a `8.9 → 9.6` target delta. The named gap is
|
|
33
|
+
*not* engineering — it is the positioning / role-guide / rule-layer
|
|
34
|
+
surface that did not catch up to the new capability. The current
|
|
35
|
+
roadmap (`universal-platform-refinement`) closes that gap in Phases
|
|
36
|
+
1–5; Phase 6 records the *non-extraction* decision so the deferral is
|
|
37
|
+
auditable.
|
|
38
|
+
|
|
39
|
+
The pressure to extract video into a separately-installable
|
|
40
|
+
"domain pack" comes from three places:
|
|
41
|
+
|
|
42
|
+
1. The strategic review's `8.9 → 9.6` argument — "make the future
|
|
43
|
+
audio / image / docs / exports domains land cheaply". Cited at
|
|
44
|
+
`agents/roadmaps/universal-platform-refinement.md` lines 19 and 132.
|
|
45
|
+
2. PR #176's scope-discipline score (`6.8 / 10`) — the load-bearing
|
|
46
|
+
data point against premature extraction. Cited at line 19, 117.
|
|
47
|
+
3. The predecessor council's explicit rejection of milestone-split
|
|
48
|
+
shipping of the video pipeline. Trace:
|
|
49
|
+
[`archive/ai-video-pipeline.md` § Divergences (no consensus)](../../agents/roadmaps/archive/ai-video-pipeline.md#L162-L164):
|
|
50
|
+
*"Single-PR vs. milestone split — Reviewer B recommended splitting
|
|
51
|
+
into milestone PRs; Sonnet R3 and GPT-4o final pass both reject
|
|
52
|
+
this, citing the roadmap's explicit single-PR iron constraint and
|
|
53
|
+
the dead-code risk of partial states. Host: the iron constraint
|
|
54
|
+
stands."* Same reasoning applies one level up: extracting video
|
|
55
|
+
today creates a domain-pack abstraction with no peer to share with
|
|
56
|
+
and a dead-code risk in the not-yet-built domains.
|
|
57
|
+
|
|
58
|
+
The repository currently has exactly **one** heavyweight domain
|
|
59
|
+
(video). Audio, image, docs, and exports are named future concerns —
|
|
60
|
+
none is built. An abstraction whose only consumer is the abstraction
|
|
61
|
+
itself is a structural liability, not an asset.
|
|
62
|
+
|
|
63
|
+
## Decision
|
|
64
|
+
|
|
65
|
+
> **The platform stays thin-root and ships future domains (audio,
|
|
66
|
+
> image, docs, exports) as in-repo capability bundles, not as
|
|
67
|
+
> separately-installable packs, until at least two independent
|
|
68
|
+
> domains exist with overlapping execution surfaces.**
|
|
69
|
+
|
|
70
|
+
"Overlapping execution surfaces" means shared code beyond the kernel
|
|
71
|
+
+ router — e.g. two adapters that both implement the four-method
|
|
72
|
+
shell contract, two skill clusters that both consume the
|
|
73
|
+
`media-governance-routing` rule, two domains that both need
|
|
74
|
+
provider-lifecycle tiering. The video adapters alone do not satisfy
|
|
75
|
+
this — they are a single execution surface.
|
|
76
|
+
|
|
77
|
+
## Consequences
|
|
78
|
+
|
|
79
|
+
### (i) What stays under `.agent-src.uncompressed/` today
|
|
80
|
+
|
|
81
|
+
The complete video capability stays in the existing flat layout —
|
|
82
|
+
no path changes, no symlink relocation, no namespace prefix:
|
|
83
|
+
|
|
84
|
+
- `.agent-src.uncompressed/skills/{character-consistency,motion-choreographer,pixar-storyteller,scene-expander,video-director}/`
|
|
85
|
+
- `.agent-src.uncompressed/personas/{ai-video-technical-director,hollywood-director}.md`
|
|
86
|
+
(the third video persona, `pixar-storyboard-artist`, was folded
|
|
87
|
+
into `skills/pixar-storyteller/` per the persona-cap council pass
|
|
88
|
+
recorded in `persona-governance`)
|
|
89
|
+
- `.agent-src.uncompressed/commands/video/{from-script,scene,storyboard,stitch}.md`
|
|
90
|
+
- `scripts/ai-video/` (the 5 adapter scripts + `lib/`)
|
|
91
|
+
- `agents/policies/media/` (Phase 2 output — already structured as
|
|
92
|
+
a project-local policy directory, *not* a pack)
|
|
93
|
+
|
|
94
|
+
### (ii) The trigger that flips this decision
|
|
95
|
+
|
|
96
|
+
The non-extraction stance is **falsifiable**. The trigger is split
|
|
97
|
+
into a *design gate* (fires before domain 2 is built) and two
|
|
98
|
+
*confirmation gates* (fire after domain 2 ships) — sequenced this way
|
|
99
|
+
to avoid the "two-domain monolith" trap the council flagged in
|
|
100
|
+
round 1 (Anthropic, Option 2): if condition 1 only fires *after*
|
|
101
|
+
domain 2 is built, the shared infrastructure is already entangled
|
|
102
|
+
and extraction is materially harder than predicting overlap in
|
|
103
|
+
advance.
|
|
104
|
+
|
|
105
|
+
**Design gate (fires BEFORE domain 2 implementation starts):**
|
|
106
|
+
|
|
107
|
+
1. **Overlap-prediction document.** Before the first commit on a
|
|
108
|
+
second heavyweight domain (audio, image, docs, exports, or other),
|
|
109
|
+
write `docs/contracts/domain-pack-overlap-inventory.md` listing
|
|
110
|
+
≥ 3 structural patterns *predicted* to be shared between video
|
|
111
|
+
and the new domain (e.g. shared adapter contract, shared
|
|
112
|
+
governance routing, shared provider-lifecycle declaration, shared
|
|
113
|
+
persona-cap policy). Each prediction includes a falsifiable test
|
|
114
|
+
that confirms or refutes it after domain 2 ships. If ≥ 3 testable
|
|
115
|
+
predictions cannot be written, the domain is not yet a candidate
|
|
116
|
+
for shared abstraction — build it in-repo, revisit when patterns
|
|
117
|
+
emerge.
|
|
118
|
+
|
|
119
|
+
**Confirmation gates (fire AFTER domain 2 ships):**
|
|
120
|
+
|
|
121
|
+
2. **Heavyweight-domain landing.** A second domain has landed in
|
|
122
|
+
`main` matching the PR #176 shape: adapter cluster + skill
|
|
123
|
+
cluster + command cluster + governance rule + policy directory.
|
|
124
|
+
One-skill additions do not count.
|
|
125
|
+
3. **Shared-abstraction stability.** The patterns named in the
|
|
126
|
+
prediction document have shipped without breaking changes for at
|
|
127
|
+
least one minor release. Stability proves the predictions were
|
|
128
|
+
real, not refactoring churn.
|
|
129
|
+
|
|
130
|
+
**Escape clause (Anthropic round-1 critique, folded back):** if all
|
|
131
|
+
three gates fire and extraction is then judged "too expensive" by
|
|
132
|
+
the team, **this decision was wrong**. Re-open the ADR and record
|
|
133
|
+
the failure mode — the trigger structure is one-way unless this
|
|
134
|
+
clause is honoured. Without it, the ADR becomes a one-way door
|
|
135
|
+
disguised as a two-way door.
|
|
136
|
+
|
|
137
|
+
The placeholder roadmap
|
|
138
|
+
[`agents/roadmaps/domain-pack-extraction-when-triggered.md`](../../agents/roadmaps/domain-pack-extraction-when-triggered.md)
|
|
139
|
+
holds the marker; status `draft` keeps it dashboard-suppressed until
|
|
140
|
+
the design gate fires.
|
|
141
|
+
|
|
142
|
+
### (iii) What is **not** extracted today
|
|
143
|
+
|
|
144
|
+
Explicitly enumerated so a future reader does not mistake silence
|
|
145
|
+
for ambiguity:
|
|
146
|
+
|
|
147
|
+
- The five video adapters (`gemini-veo`, `kling`, `openai-images`,
|
|
148
|
+
`higgsfield`, `sora`) — stay in `scripts/ai-video/`.
|
|
149
|
+
- The two remaining video personas — stay in `.agent-src.uncompressed/personas/`.
|
|
150
|
+
- The `/video:*` command cluster — stays in `.agent-src.uncompressed/commands/video/`.
|
|
151
|
+
- The `media-governance-routing` rule + `agents/policies/media/`
|
|
152
|
+
policy files — stay where Phase 2 placed them.
|
|
153
|
+
- The provider-lifecycle contract + the `provider-lifecycle-discipline`
|
|
154
|
+
rule — stay where Phase 3 placed them.
|
|
155
|
+
- The three Phase 4 test files (`tests/test_ai_video_blueprint_schema.py`,
|
|
156
|
+
`test_prompt_optimization.py`, `test_ai_video_adapter_contract.py`)
|
|
157
|
+
— stay in the root `tests/` tree.
|
|
158
|
+
|
|
159
|
+
## Alternatives Considered
|
|
160
|
+
|
|
161
|
+
### A) Extract video into `agents/domain-packs/ai-video/` today
|
|
162
|
+
|
|
163
|
+
Rejected. The extraction creates an abstraction with no peer, so the
|
|
164
|
+
shape of the pack interface is determined by exactly one consumer.
|
|
165
|
+
When the second domain arrives, the interface is likely wrong (cited
|
|
166
|
+
predecessor council reasoning on milestone-split: dead-code risk of
|
|
167
|
+
partial states). The strategic review's `8.9 → 9.6` argument is
|
|
168
|
+
**real** but **not unlocked by extracting today** — see roadmap §Notes
|
|
169
|
+
line 132.
|
|
170
|
+
|
|
171
|
+
### B) Ship the placeholder roadmap as `proposed` instead of `draft`
|
|
172
|
+
|
|
173
|
+
Rejected. A `proposed` roadmap appears in the dashboard and creates
|
|
174
|
+
implicit pressure to schedule it. A `draft` marker keeps the trigger
|
|
175
|
+
visible to future maintainers without scheduling work that depends
|
|
176
|
+
on conditions that do not yet hold.
|
|
177
|
+
|
|
178
|
+
### C) Pin a date for re-evaluation
|
|
179
|
+
|
|
180
|
+
Rejected. The trigger is structural (two domains + overlap inventory),
|
|
181
|
+
not temporal. Pinning a date (e.g. "review 2027-Q1") replaces a
|
|
182
|
+
condition-based gate with a calendar-based one, which `no-roadmap-references`
|
|
183
|
+
treats as a smell.
|
|
184
|
+
|
|
185
|
+
## Council-debate trace
|
|
186
|
+
|
|
187
|
+
One round · 2 members · actual spend $0.0300 · raw responses at
|
|
188
|
+
[`agents/council-responses/adr-011-domain-pack-readiness.json/debate-round-1.json`](../../agents/council-responses/adr-011-domain-pack-readiness.json/debate-round-1.json). <!-- council-ref-allowed: ADR decision-trace to originating council response -->
|
|
189
|
+
|
|
190
|
+
| Member | Pick | Core argument | Folded back? |
|
|
191
|
+
|---|---|---|---|
|
|
192
|
+
| `anthropic/claude-sonnet-4-5` | **Option 2** (accept with tightened trigger) | Trigger as originally written is waterfall-sequenced (build → discover → stabilise) — condition 1 only fires *after* domain 2 is built, creating the "two-domain monolith" trap. Fix: move overlap-prediction to a *design gate* before domain 2 implementation, plus add an escape clause naming the failure mode when extraction is later judged too expensive. | **Yes** — Consequences §(ii) split into design gate + confirmation gates; escape clause added verbatim. |
|
|
193
|
+
| `openai/gpt-4o` | **Option 1** (accept as written) | Triggers are structural, not temporal — appropriate guard against premature abstraction. Secondary signal worth tracking: developer-sentiment / community feedback on perceived lack of shared infrastructure. | **Partial** — host did not promote qualitative signals to gates (would conflict with the "structural, not temporal" principle both members affirmed), but the escape clause covers the team-cost case Anthropic named and OpenAI implied. |
|
|
194
|
+
|
|
195
|
+
### Host verdict
|
|
196
|
+
|
|
197
|
+
Anthropic's structural critique is load-bearing: the original trigger
|
|
198
|
+
was sequenced as a waterfall where the gating condition could not be
|
|
199
|
+
checked until after the gate had implicitly been passed. The fix —
|
|
200
|
+
moving overlap-prediction to a design-stage document — is a strict
|
|
201
|
+
improvement that costs nothing today (no domain 2 exists; no design
|
|
202
|
+
gate to clear). Folding the escape clause closes the one-way-door
|
|
203
|
+
risk both members' reasoning pointed at, even though only Anthropic
|
|
204
|
+
named it explicitly.
|
|
205
|
+
|
|
206
|
+
OpenAI's qualitative-signal point is noted but not promoted to a
|
|
207
|
+
gate: every "is the lack of shared infrastructure slowing us down?"
|
|
208
|
+
question is answerable by writing the overlap-prediction document
|
|
209
|
+
and seeing whether ≥ 3 testable predictions emerge. The design gate
|
|
210
|
+
absorbs the qualitative signal into a structural check.
|
|
211
|
+
|
|
212
|
+
Status: `proposed → accepted` with the council-driven trigger
|
|
213
|
+
revision and escape clause in place.
|
package/docs/decisions/INDEX.md
CHANGED
|
@@ -14,6 +14,7 @@ _Auto-generated by `scripts/adr/regenerate_index.py`. Do not edit._
|
|
|
14
14
|
| [ADR-008](ADR-008-installed-tools-manifest.md) | Committed Installed Tools Manifest Separate From Settings | proposed | 2026-05-12 | — |
|
|
15
15
|
| [ADR-009](ADR-009-event4u-namespace.md) | Event4U Namespace And Claude Desktop Zip Bundles | accepted | 2026-05-13 | — |
|
|
16
16
|
| [ADR-010](ADR-010-profile-pack-preset-boundary.md) | Profile Pack Preset Boundary | proposed | 2026-05-16 | — |
|
|
17
|
+
| [ADR-011](ADR-011-domain-pack-readiness.md) | Domain Pack Readiness | accepted | 2026-05-17 | — |
|
|
17
18
|
|
|
18
19
|
## Unnumbered (legacy)
|
|
19
20
|
|
|
@@ -16,6 +16,16 @@
|
|
|
16
16
|
- [`messaging-architecture`](../.agent-src/skills/messaging-architecture/SKILL.md) — primary message + supporting proofs + audience-by-message matrix.
|
|
17
17
|
- [`editorial-calendar`](../.agent-src/skills/editorial-calendar/SKILL.md) — evergreen vs campaign vs reactive cadence across channels.
|
|
18
18
|
|
|
19
|
+
### Video
|
|
20
|
+
|
|
21
|
+
- [`/video:from-script`](../.agent-src/commands/video/from-script.md) — end-to-end pipeline: script → character-locked image → motion+audio prompt → provider render → stitched clip.
|
|
22
|
+
- [`/video:storyboard`](../.agent-src/commands/video/storyboard.md) — expand a one-line idea into the 12-block Cinematic Scene Blueprint (provider-agnostic).
|
|
23
|
+
- [`/video:scene`](../.agent-src/commands/video/scene.md) — render a single scene from an existing blueprint against the configured provider adapter.
|
|
24
|
+
- [`/video:stitch`](../.agent-src/commands/video/stitch.md) — assemble rendered scenes into the final clip via ffmpeg.
|
|
25
|
+
- [`character-consistency`](../.agent-src/skills/character-consistency/SKILL.md) — lock identity tokens (silhouette, palette, wardrobe, prop) so a character stays visually identical across scenes.
|
|
26
|
+
|
|
27
|
+
`AIV_DRYRUN=true` is the mandatory default — no provider call, no spend until you opt in.
|
|
28
|
+
|
|
19
29
|
**Install path:** **MCP recommended.** Claude Desktop is the lowest-friction entry; no terminal required. See [`docs/mcp.md`](mcp.md). CLI install works too if you already use a code editor.
|
|
20
30
|
|
|
21
31
|
---
|
package/docs/getting-started.md
CHANGED
|
@@ -106,7 +106,7 @@ Your agent is now:
|
|
|
106
106
|
- **Respecting your codebase** — no conflicting patterns
|
|
107
107
|
- **Following standards** — consistent code quality
|
|
108
108
|
|
|
109
|
-
This is enforced automatically by
|
|
109
|
+
This is enforced automatically by 72 rules. No configuration needed.
|
|
110
110
|
|
|
111
111
|
---
|
|
112
112
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> API conventions — response format, status codes, pagination, error handling, rate limiting, route naming.
|
|
4
4
|
|
|
5
|
-
**Related Skills:** `api-design`, `api-endpoint`, `api-testing`
|
|
5
|
+
**Related Skills:** `api-design`, `laravel-api-endpoint`, `api-testing`
|
|
6
6
|
**Related Guidelines:** [controllers.md](controllers.md), [resources.md](resources.md)
|
|
7
7
|
|
|
8
8
|
## Response Format
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Project-specific controller conventions. Thin controllers, single-action pattern, OpenAPI annotations.
|
|
4
4
|
|
|
5
|
-
**Related Skills:** `api-endpoint`, `laravel`, `openapi`
|
|
5
|
+
**Related Skills:** `laravel-api-endpoint`, `laravel`, `openapi`
|
|
6
6
|
**Related Guidelines:** [validations.md](validations.md), [resources.md](resources.md)
|
|
7
7
|
|
|
8
8
|
## Core Rules
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Project-specific API Resource conventions. Base class, versioning (v1/v2), OpenAPI schemas.
|
|
4
4
|
|
|
5
|
-
**Related Skills:** `api-endpoint`, `api-design`, `openapi`
|
|
5
|
+
**Related Skills:** `laravel-api-endpoint`, `api-design`, `openapi`
|
|
6
6
|
**Related Guidelines:** [controllers.md](controllers.md)
|
|
7
7
|
|
|
8
8
|
## Core Rule
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Project-specific FormRequest conventions. Array syntax, route params, property mapping.
|
|
4
4
|
|
|
5
|
-
**Related Skills:** `laravel-validation`, `api-endpoint`
|
|
5
|
+
**Related Skills:** `laravel-validation`, `laravel-api-endpoint`
|
|
6
6
|
**Related Guidelines:** [controllers.md](controllers.md)
|
|
7
7
|
|
|
8
8
|
## Core Rules
|
package/docs/personas.md
CHANGED
|
@@ -5,32 +5,79 @@ skill — not sub-agents, not execution modes. Each persona shapes
|
|
|
5
5
|
*what* the agent looks for in a diff, plan, or artifact; the host
|
|
6
6
|
identity, tools, and workflow stay the same.
|
|
7
7
|
|
|
8
|
-
This page catalogs the
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
8
|
+
This page catalogs the **24 active personas** shipped with
|
|
9
|
+
`event4u/agent-config` (6 core + 18 specialists), plus the 5
|
|
10
|
+
**advisor** personas in `personas/advisors/`. It also explains how
|
|
11
|
+
`personas:` (lens axis) interacts with `/mode` (role-mode axis).
|
|
12
|
+
Removed personas are deleted in-commit (no soak window) — see
|
|
13
|
+
[`persona-governance § Deprecation path`](../.agent-src/rules/persona-governance.md).
|
|
14
|
+
|
|
15
|
+
## Catalog — Core (always-loaded, 6)
|
|
16
|
+
|
|
17
|
+
| ID | Role | Wing | Owner | Lens summary |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| `developer` | Developer | — | package | Pragmatic implementer voice — what's the smallest correct change? |
|
|
20
|
+
| `senior-engineer` | Senior Engineer | — | package | Long-horizon impact — what does this look like in 6 months? |
|
|
21
|
+
| `stakeholder` | Stakeholder | — | package | Risk and politics — who owns the rollback if this fails? |
|
|
22
|
+
| `critical-challenger` | Critical Challenger | — | package | Devil's-advocate voice — what assumption is load-bearing here? |
|
|
23
|
+
| `ai-agent` | AI Agent | — | package | Tool-economy voice — token cost, prompt clarity, automation seam. |
|
|
24
|
+
|
|
25
|
+
Note: `product-owner` was reclassified to **specialist** at v2.0 — see below.
|
|
26
|
+
|
|
27
|
+
## Catalog — Specialists (opt-in, 18 active)
|
|
28
|
+
|
|
29
|
+
| ID | Role | Wing | Owner | Lens summary |
|
|
30
|
+
|---|---|---|---|---|
|
|
31
|
+
| `qa` | QA | — | package | Test coverage and regression gates. |
|
|
32
|
+
| `backend-architect` | Backend Architect | — | package | Service-layer boundaries, transaction scope, contract changes. |
|
|
33
|
+
| `eloquent-tamer` | Eloquent Tamer | — | package | N+1, query shape, ORM idioms that melt the database. |
|
|
34
|
+
| `security-engineer` | Security Engineer | — | package | OWASP-shaped failure modes, secret leakage, trust boundaries. |
|
|
35
|
+
| `frontend-engineer` | Frontend Engineer | — | package | Component lifecycle, reactive state, hydration boundaries. |
|
|
36
|
+
| `product-owner` | Product Owner | — | package | Outcomes named, AC unfalsifiable, scope on record. |
|
|
37
|
+
| `tech-writer` | Tech Writer | — | package | Release narratives, READMEs, AGENTS.md thin. |
|
|
38
|
+
| `revops-maintainer` | RevOps Maintainer | — | package | Contributor lifecycle, package adoption funnel, release readiness. |
|
|
39
|
+
| `discovery-lead` | Discovery Lead | — | package | Switch events, falsifiable hypotheses, theme ranking. |
|
|
40
|
+
| `hollywood-director` | Hollywood Director (`ai-video`) | — | package | Live-action lens, lighting, blocking, negative constraints. |
|
|
41
|
+
| `ai-video-technical-director` | AI Video Technical Director (`ai-video`) | — | package | Provider tuning — Veo / Kling / Sora / Higgsfield / OpenAI grammar. |
|
|
42
|
+
| `cmo` | CMO | 3 | package | Positioning anchored, messaging stacked, launches sequenced. |
|
|
43
|
+
| `growth-pm` | Growth PM | 3 | package | Leaky-bucket vs growth-loop classified, activation correlated. |
|
|
44
|
+
| `customer-success-lead` | Customer Success Lead | 3 | package | TTFV falsifiable, churn cause split, expansion pulled, NRR. |
|
|
45
|
+
| `revops` | RevOps | 3 | package | Stage exit criteria, MEDDIC slots, forecast falsifiable. |
|
|
46
|
+
| `engineering-manager` | Engineering Manager | 4 | package | 1:1 cadence, hiring loop, throughput-vs-morale tradeoff. |
|
|
47
|
+
| `people-strategist` | People Strategist | 4 | package | Team shape, comp bands, ramp definitions, feedback craft. |
|
|
48
|
+
| `finance-partner` | Finance Partner | 4 | package | Unit economics, runway, scenarios, the next 18 months. |
|
|
49
|
+
| `strategist` | Strategist | 4 | package | Build-vs-buy, market entry, moat, vision, contracts, privacy. |
|
|
50
|
+
|
|
51
|
+
## Per-domain count (persona-governance cap: max 2 specialists per domain)
|
|
52
|
+
|
|
53
|
+
| Domain | Active specialists | Within cap |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| `ai-video` | `hollywood-director`, `ai-video-technical-director` | ✅ 2/2 |
|
|
56
|
+
| GTM (Wing 3) | `cmo`, `growth-pm`, `customer-success-lead`, `revops` | ✅ (wing, not domain) |
|
|
57
|
+
| Ops / Money (Wing 4) | `engineering-manager`, `people-strategist`, `finance-partner`, `strategist` | ✅ (wing, not domain) |
|
|
58
|
+
| Backend | `backend-architect`, `eloquent-tamer` | ✅ 2/2 |
|
|
59
|
+
|
|
60
|
+
Per-domain count is enforced by `scripts/lint_persona_governance.py` (wired into `task ci`).
|
|
61
|
+
|
|
62
|
+
## Advisors (`personas/advisors/`, 5)
|
|
63
|
+
|
|
64
|
+
Adversarial / second-opinion voices invoked by `ai-council` debates,
|
|
65
|
+
not cited by skills directly:
|
|
66
|
+
|
|
67
|
+
| ID | Lens |
|
|
68
|
+
|---|---|
|
|
69
|
+
| `contrarian` | Opposing the consensus position |
|
|
70
|
+
| `executor` | Shipping bias — what's the minimum to land it? |
|
|
71
|
+
| `expansionist` | Scope-widening — what else does this unlock? |
|
|
72
|
+
| `first-principles` | Refuses analogy — derive from physics of the problem |
|
|
73
|
+
| `outsider` | Naive reader — does this hold without prior context? |
|
|
74
|
+
|
|
75
|
+
## Tier rules
|
|
76
|
+
|
|
77
|
+
- **Core (≤ 6)** — always-loaded cast. 5 sections (Focus · Mindset · Unique Questions · Output Expectations · Anti-Patterns), ≤ 120 lines.
|
|
78
|
+
- **Specialist** — opt-in lenses. 7 sections (Core-5 + Critical Rules + Workflows). Line cap is wing-scoped: ≤ 100 (no wing / Wings 1–2), ≤ 140 (Wings 3–4) per [`persona-schema § 4`](contracts/persona-schema.md).
|
|
79
|
+
|
|
80
|
+
Schema contract: [`docs/contracts/persona-schema.md`](contracts/persona-schema.md). Governance rule: [`persona-governance`](../.agent-src/rules/persona-governance.md).
|
|
34
81
|
|
|
35
82
|
## When to invoke a persona
|
|
36
83
|
|
package/docs/profiles.md
CHANGED
|
@@ -25,10 +25,15 @@ Next.js · React · Node. **Preset default: `balanced`.**
|
|
|
25
25
|
## ✍️ `content_creator` — writers, ghostwriters, marketers
|
|
26
26
|
|
|
27
27
|
Draft in someone else's voice, plan a quarter of content, ship a
|
|
28
|
-
launch announcement
|
|
29
|
-
public-figure voice profile; `/post-as`
|
|
30
|
-
your own voice (`.agent-user.md`);
|
|
31
|
-
`messaging-architecture` lock the brand
|
|
28
|
+
launch announcement, render a cinematic AI video. `/ghostwriter`
|
|
29
|
+
fetches and writes against a public-figure voice profile; `/post-as`
|
|
30
|
+
is the same primitive for your own voice (`.agent-user.md`);
|
|
31
|
+
`voice-and-tone-design` and `messaging-architecture` lock the brand
|
|
32
|
+
frame before any copy ships; `/video:from-script` and `/video:storyboard`
|
|
33
|
+
drive the AI video pipeline (script → character-locked image →
|
|
34
|
+
motion+audio prompt → provider render → stitched clip), with
|
|
35
|
+
`character-consistency` locking identity tokens across scenes and
|
|
36
|
+
`AIV_DRYRUN=true` as the cost-safety default.
|
|
32
37
|
**Preset default: `balanced`.**
|
|
33
38
|
[Profile YAML](../.agent-src.uncompressed/profiles/content_creator.yml) ·
|
|
34
39
|
[Role guide](getting-started-by-role.md#creator-writer-marketer-indie-content-shop).
|
package/package.json
CHANGED