@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.
Files changed (161) hide show
  1. package/.agent-src/commands/bug-fix.md +1 -0
  2. package/.agent-src/commands/create-pr/description-only.md +39 -11
  3. package/.agent-src/commands/create-pr.md +59 -5
  4. package/.agent-src/commands/feature/roadmap.md +2 -2
  5. package/.agent-src/commands/fix/seeder.md +3 -2
  6. package/.agent-src/commands/memory/add.md +3 -3
  7. package/.agent-src/commands/module/create.md +1 -0
  8. package/.agent-src/commands/module/explore.md +10 -6
  9. package/.agent-src/commands/onboard.md +9 -1
  10. package/.agent-src/commands/optimize/augmentignore.md +52 -20
  11. package/.agent-src/commands/optimize/rtk.md +56 -30
  12. package/.agent-src/commands/package-test.md +86 -10
  13. package/.agent-src/commands/quality-fix.md +49 -27
  14. package/.agent-src/commands/update-form-request-messages.md +2 -1
  15. package/.agent-src/commands/video/from-script.md +5 -5
  16. package/.agent-src/commands/video/storyboard.md +1 -1
  17. package/.agent-src/contexts/augment-infrastructure.md +4 -7
  18. package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -1
  19. package/.agent-src/contexts/contracts/research-schema.md +1 -1
  20. package/.agent-src/contexts/execution/interrupt-examples.md +34 -0
  21. package/.agent-src/contexts/execution/roadmap-process-loop.md +69 -14
  22. package/.agent-src/contexts/skills-and-commands.md +2 -2
  23. package/.agent-src/personas/README.md +3 -2
  24. package/.agent-src/personas/ai-video-technical-director.md +2 -2
  25. package/.agent-src/personas/hollywood-director.md +3 -3
  26. package/.agent-src/profiles/content_creator.yml +5 -0
  27. package/.agent-src/rules/architecture.md +24 -10
  28. package/.agent-src/rules/artifact-drafting-protocol.md +6 -0
  29. package/.agent-src/rules/augment-edit-discipline.md +28 -0
  30. package/.agent-src/rules/augment-source-of-truth.md +2 -2
  31. package/.agent-src/rules/autonomous-execution.md +31 -0
  32. package/.agent-src/rules/context-hygiene.md +1 -1
  33. package/.agent-src/rules/domain-adoption-policy.md +4 -5
  34. package/.agent-src/rules/domain-safety-disclaimer.md +114 -0
  35. package/.agent-src/rules/domain-safety-pii.md +142 -0
  36. package/.agent-src/rules/domain-safety-retention.md +86 -0
  37. package/.agent-src/rules/downstream-changes.md +4 -4
  38. package/.agent-src/rules/framework-neutrality-in-generic-skills.md +130 -0
  39. package/.agent-src/rules/git-history-discipline.md +99 -0
  40. package/.agent-src/rules/media-governance-routing.md +82 -0
  41. package/.agent-src/rules/minimal-safe-diff.md +6 -0
  42. package/.agent-src/rules/no-roadmap-references.md +4 -2
  43. package/.agent-src/rules/persona-governance.md +90 -0
  44. package/.agent-src/rules/provider-lifecycle-discipline.md +75 -0
  45. package/.agent-src/rules/roadmap-ci-steps-policy.md +145 -0
  46. package/.agent-src/rules/roadmap-progress-sync.md +11 -5
  47. package/.agent-src/rules/user-interrupt-priority.md +46 -0
  48. package/.agent-src/rules/verify-before-complete.md +11 -2
  49. package/.agent-src/skills/adversarial-review/SKILL.md +1 -1
  50. package/.agent-src/skills/ai-council/SKILL.md +1 -0
  51. package/.agent-src/skills/api-endpoint/SKILL.md +58 -154
  52. package/.agent-src/skills/api-testing/SKILL.md +11 -0
  53. package/.agent-src/skills/character-consistency/SKILL.md +12 -1
  54. package/.agent-src/skills/code-refactoring/SKILL.md +36 -30
  55. package/.agent-src/skills/code-review/SKILL.md +41 -36
  56. package/.agent-src/skills/context-authoring/SKILL.md +1 -1
  57. package/.agent-src/skills/dashboard-design/SKILL.md +1 -2
  58. package/.agent-src/skills/database/SKILL.md +8 -3
  59. package/.agent-src/skills/dependency-upgrade/SKILL.md +65 -19
  60. package/.agent-src/skills/developer-like-execution/SKILL.md +25 -14
  61. package/.agent-src/skills/eloquent/SKILL.md +1 -1
  62. package/.agent-src/skills/feature-planning/SKILL.md +1 -1
  63. package/.agent-src/skills/file-editor/SKILL.md +45 -19
  64. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
  65. package/.agent-src/skills/git-workflow/SKILL.md +135 -2
  66. package/.agent-src/skills/laravel-api-endpoint/SKILL.md +187 -0
  67. package/.agent-src/skills/{dto-creator → laravel-dto}/SKILL.md +5 -4
  68. package/.agent-src/skills/{migration-creator → laravel-migration}/SKILL.md +11 -10
  69. package/.agent-src/skills/laravel-reverb/SKILL.md +3 -3
  70. package/.agent-src/skills/{websocket → laravel-websocket}/SKILL.md +4 -3
  71. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -1
  72. package/.agent-src/skills/merge-conflicts/SKILL.md +49 -17
  73. package/.agent-src/skills/migration-architect/SKILL.md +6 -6
  74. package/.agent-src/skills/module-management/SKILL.md +1 -0
  75. package/.agent-src/skills/motion-choreographer/SKILL.md +12 -0
  76. package/.agent-src/skills/multi-tenancy/SKILL.md +15 -8
  77. package/.agent-src/skills/pest-testing/SKILL.md +18 -0
  78. package/.agent-src/skills/php-debugging/SKILL.md +28 -0
  79. package/.agent-src/skills/php-service/SKILL.md +3 -3
  80. package/.agent-src/skills/pixar-storyteller/SKILL.md +19 -6
  81. package/.agent-src/skills/playwright-testing/SKILL.md +16 -1
  82. package/.agent-src/skills/project-analyzer/SKILL.md +68 -42
  83. package/.agent-src/skills/readme-writing-package/SKILL.md +94 -23
  84. package/.agent-src/skills/roadmap-management/SKILL.md +1 -1
  85. package/.agent-src/skills/roadmap-writing/SKILL.md +10 -0
  86. package/.agent-src/skills/rtk-output-filtering/SKILL.md +23 -8
  87. package/.agent-src/skills/rule-refactor/SKILL.md +145 -0
  88. package/.agent-src/skills/rule-writing/SKILL.md +34 -8
  89. package/.agent-src/skills/scene-expander/SKILL.md +22 -7
  90. package/.agent-src/skills/security/SKILL.md +38 -29
  91. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
  92. package/.agent-src/skills/test-driven-development/SKILL.md +4 -4
  93. package/.agent-src/skills/test-performance/SKILL.md +6 -5
  94. package/.agent-src/skills/verify-completion-evidence/SKILL.md +24 -27
  95. package/.agent-src/skills/video-director/SKILL.md +13 -0
  96. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  97. package/.agent-src/templates/copilot-instructions.md +2 -2
  98. package/.agent-src/templates/roadmaps.md +16 -0
  99. package/.agent-src/templates/rule.md +2 -2
  100. package/.claude-plugin/marketplace.json +6 -4
  101. package/AGENTS.md +1 -1
  102. package/CHANGELOG.md +80 -133
  103. package/README.md +6 -4
  104. package/config/agent-settings.template.yml +26 -0
  105. package/docs/architecture.md +2 -2
  106. package/docs/archive/CHANGELOG-pre-2.25.0.md +191 -0
  107. package/docs/catalog.md +20 -12
  108. package/docs/contracts/file-ownership-matrix.json +588 -90
  109. package/docs/contracts/kernel-membership.md +17 -0
  110. package/docs/contracts/provider-lifecycle.md +122 -0
  111. package/docs/contracts/smoke-contracts.md +8 -8
  112. package/docs/decisions/ADR-011-domain-pack-readiness.md +213 -0
  113. package/docs/decisions/INDEX.md +1 -0
  114. package/docs/getting-started-by-role.md +10 -0
  115. package/docs/getting-started.md +1 -1
  116. package/docs/guidelines/php/api-design.md +1 -1
  117. package/docs/guidelines/php/controllers.md +1 -1
  118. package/docs/guidelines/php/resources.md +1 -1
  119. package/docs/guidelines/php/validations.md +1 -1
  120. package/docs/personas.md +73 -26
  121. package/docs/profiles.md +9 -4
  122. package/package.json +1 -1
  123. package/scripts/_tmp_scan_framework_leakage.py +119 -0
  124. package/scripts/ai-video/adapters/gemini-veo.sh +5 -0
  125. package/scripts/ai-video/adapters/higgsfield.sh +6 -0
  126. package/scripts/ai-video/adapters/kling.sh +5 -0
  127. package/scripts/ai-video/adapters/openai-images.sh +5 -0
  128. package/scripts/ai-video/adapters/sora.sh +6 -0
  129. package/scripts/build_linear_digest.py +0 -1
  130. package/scripts/check_portability.py +6 -0
  131. package/scripts/lint_framework_leakage.py +348 -0
  132. package/scripts/lint_framework_leakage_allowlist.json +476 -0
  133. package/scripts/lint_media_policy_linkage.py +140 -0
  134. package/scripts/lint_persona_governance.py +164 -0
  135. package/scripts/lint_roadmap_ci_steps.py +182 -0
  136. package/scripts/measure_augment_budget.py +6 -0
  137. package/scripts/schemas/command.schema.json +5 -0
  138. package/scripts/schemas/skill.schema.json +5 -0
  139. package/scripts/skill_linter.py +60 -7
  140. package/scripts/smoke/kernel.sh +4 -4
  141. package/scripts/smoke/router.sh +2 -2
  142. package/scripts/smoke/schema.sh +1 -1
  143. package/.agent-src/personas/pixar-storyboard-artist.md +0 -98
  144. package/.agent-src/rules/agent-docs.md +0 -20
  145. package/.agent-src/rules/augment-portability.md +0 -23
  146. package/.agent-src/rules/capture-learnings.md +0 -19
  147. package/.agent-src/rules/docs-sync.md +0 -20
  148. package/.agent-src/rules/domain-safety-disclaimer-consulting.md +0 -52
  149. package/.agent-src/rules/domain-safety-disclaimer-financial.md +0 -54
  150. package/.agent-src/rules/domain-safety-disclaimer-legal.md +0 -49
  151. package/.agent-src/rules/domain-safety-disclaimer-medical.md +0 -56
  152. package/.agent-src/rules/domain-safety-export-redact.md +0 -65
  153. package/.agent-src/rules/domain-safety-logging-pii-floor.md +0 -55
  154. package/.agent-src/rules/domain-safety-pii-finance.md +0 -57
  155. package/.agent-src/rules/domain-safety-pii-marketing.md +0 -60
  156. package/.agent-src/rules/domain-safety-pii-recruiting.md +0 -56
  157. package/.agent-src/rules/domain-safety-pii-support.md +0 -57
  158. package/.agent-src/rules/domain-safety-retention-finance.md +0 -48
  159. package/.agent-src/rules/domain-safety-retention-support.md +0 -55
  160. package/.agent-src/rules/e2e-testing.md +0 -19
  161. package/.agent-src/rules/no-unsolicited-rebase.md +0 -107
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: package-test
3
3
  tier: 2
4
- skills: [composer, npm]
4
+ skills: [composer, npm, python-packages, go-modules, cargo-packages]
5
5
  description: /package-test
6
6
  disable-model-invocation: true
7
7
  suggestion:
@@ -17,15 +17,28 @@ Test a local package in the current project by linking it via Composer or npm.
17
17
 
18
18
  ### 1. Detect or ask for package manager
19
19
 
20
- Check the project root for `composer.json` and `package.json`.
20
+ Check the project root for a package manifest. Supported (try in this order, take the first match — the project can have several):
21
21
 
22
- - **Both exist** ask:
22
+ | Manifest | Ecosystem | Link mechanism |
23
+ |-------------------------------------------------------------------|------------------|----------------------------------------------------------|
24
+ | `composer.json` | PHP / Composer | `repositories[].type: path` + `composer require @dev` |
25
+ | `package.json` | JS / TS / Node | `npm link` / `pnpm link` / `yarn link` / `file:../path` |
26
+ | `pyproject.toml`, `setup.py`, or `setup.cfg` | Python | `pip install -e <path>` / `uv pip install -e <path>` / `poetry add --editable <path>` |
27
+ | `go.mod` | Go | `go mod edit -replace example.com/pkg=<path>` |
28
+ | `Cargo.toml` | Rust | `cargo add --path <path>` or `[patch.crates-io]` block |
29
+ | `Gemfile` | Ruby | `bundle config local.<gem> <path>` |
30
+
31
+ - **Multiple manifests exist** → ask:
23
32
 
24
33
  ```
25
34
  Which package manager?
26
35
 
27
36
  1. Composer (PHP)
28
- 2. npm (JavaScript/TypeScript)
37
+ 2. npm / pnpm / yarn (JavaScript / TypeScript)
38
+ 3. Python (pip / poetry / uv)
39
+ 4. Go modules
40
+ 5. Cargo (Rust)
41
+ 6. Bundler (Ruby)
29
42
  ```
30
43
 
31
44
  - **Only one exists** → use that one automatically, confirm:
@@ -37,7 +50,7 @@ Detected: {manager}. Proceeding.
37
50
  - **Neither exists** → abort:
38
51
 
39
52
  ```
40
- ❌ No composer.json or package.json found in project root. Cannot link a local package.
53
+ ❌ No supported package manifest (composer.json / package.json / pyproject.toml / setup.py / go.mod / Cargo.toml / Gemfile) found in project root. Cannot link a local package.
41
54
  ```
42
55
 
43
56
  ### 2. Ask for the local package path
@@ -51,15 +64,19 @@ Example: ../my-package or /Users/me/projects/my-package
51
64
 
52
65
  Validate:
53
66
  - Path exists and is a directory
54
- - For Composer: directory contains `composer.json`
55
- - For npm: directory contains `package.json`
67
+ - The directory contains a manifest matching the ecosystem chosen in the detection step (`composer.json`, `package.json`, `pyproject.toml` / `setup.py`, `go.mod`, `Cargo.toml`, or `Gemfile`)
68
+ - If the directory has multiple manifests, ask the user which one to link (rare but possible — e.g. a Composer package that also ships a JS bundle)
56
69
 
57
70
  If invalid, show error and ask again.
58
71
 
59
72
  ### 3. Read the package name
60
73
 
61
- - **Composer:** Read `name` from the package's `composer.json`
62
- - **npm:** Read `name` from the package's `package.json`
74
+ - **Composer:** Read `name` from the package's `composer.json` (e.g. `vendor/package`)
75
+ - **npm / pnpm / yarn:** Read `name` from the package's `package.json` (e.g. `@scope/package`)
76
+ - **Python:** Read `[project].name` from `pyproject.toml`, or `setup(name=...)` from `setup.py`
77
+ - **Go:** Read `module` from `go.mod` (e.g. `example.com/vendor/package`)
78
+ - **Rust:** Read `[package].name` from `Cargo.toml`
79
+ - **Ruby:** Read the gem name from the `*.gemspec` file in the package directory
63
80
 
64
81
  Confirm:
65
82
 
@@ -118,10 +135,69 @@ Or for workspaces, add to `package.json`:
118
135
 
119
136
  Then: `npm install`
120
137
 
138
+ #### Python
139
+
140
+ Editable install (preferred):
141
+
142
+ ```bash
143
+ pip install -e {package-path}
144
+ # or, if the project uses uv:
145
+ uv pip install -e {package-path}
146
+ # or, if the project uses poetry:
147
+ cd {project-root} && poetry add --editable {package-path}
148
+ ```
149
+
150
+ Re-sync after upstream changes:
151
+
152
+ ```bash
153
+ pip install -e {package-path} --force-reinstall --no-deps
154
+ ```
155
+
156
+ #### Go
157
+
158
+ Edit `go.mod` in the **project** root to add a `replace` directive:
159
+
160
+ ```
161
+ replace example.com/vendor/package => ../my-package
162
+ ```
163
+
164
+ Then run `go mod tidy` so the lockfile picks up the local path. Remove the `replace` line before publishing.
165
+
166
+ #### Rust / Cargo
167
+
168
+ Add as a path dependency in the **project's** `Cargo.toml`:
169
+
170
+ ```toml
171
+ [dependencies]
172
+ vendor_package = { path = "../my-package" }
173
+ ```
174
+
175
+ Or, to override a published crate without rewriting the dependency line, use `[patch.crates-io]`:
176
+
177
+ ```toml
178
+ [patch.crates-io]
179
+ vendor_package = { path = "../my-package" }
180
+ ```
181
+
182
+ Run `cargo build` to re-resolve.
183
+
184
+ #### Ruby / Bundler
185
+
186
+ ```bash
187
+ bundle config local.{gem-name} {package-path}
188
+ bundle install
189
+ ```
190
+
191
+ Remove with `bundle config --delete local.{gem-name}`.
192
+
121
193
  ### 5. Verify
122
194
 
123
195
  - **Composer:** Check that `vendor/{package-name}` is a symlink → the local path
124
- - **npm:** Check that `node_modules/{package-name}` is a symlink → the local path
196
+ - **npm / pnpm / yarn:** Check that `node_modules/{package-name}` is a symlink → the local path
197
+ - **Python:** `pip show {package-name}` → `Location` should point inside `{package-path}` (editable installs show the source dir, not site-packages)
198
+ - **Go:** `go list -m {module-path}` → resolved path should match the `replace` target
199
+ - **Rust:** `cargo metadata --format-version 1 | jq '.packages[] | select(.name=="{package-name}") | .manifest_path'` → should point inside `{package-path}`
200
+ - **Ruby:** `bundle config get local.{gem-name}` → should return the linked path
125
201
 
126
202
  Report result:
127
203
 
@@ -6,8 +6,8 @@ description: Run quality pipeline (PHP and/or JS/TS) and fix all errors — auto
6
6
  disable-model-invocation: true
7
7
  suggestion:
8
8
  eligible: true
9
- trigger_description: "fix the quality errors, run PHPStan and fix issues, fix code style"
10
- trigger_context: "PHPStan/Rector/ECS output in recent tool results"
9
+ trigger_description: "fix the quality errors run the project's type-checker / linter / formatter and resolve every issue (PHPStan / tsc / mypy / golangci-lint / clippy / …)"
10
+ trigger_context: "type-checker / linter / formatter output in recent tool results (PHPStan, Rector, ECS, tsc, eslint, prettier, ruff, mypy, golangci-lint, clippy)"
11
11
  ---
12
12
 
13
13
  # quality-fix
@@ -33,34 +33,56 @@ git diff --name-only origin/{default}..HEAD
33
33
  ### Prerequisites
34
34
 
35
35
  - All commands run **inside the PHP container** (e.g. `docker compose exec -T <service> ...`).
36
- - Detect the project type:
37
- - Project ships a `quality:*` wrapper (Artisan or Composer script) prefer `php artisan quality:phpstan` / `php artisan quality:rector --fix`
38
- - `phpstan/phpstan` installed `vendor/bin/phpstan analyse`
39
- - `rector/rector` installed `vendor/bin/rector process`
40
- - `symplify/easy-coding-standard` installed `vendor/bin/ecs check --fix`
41
-
42
- ### Step 1: PHPStan fix all errors
43
-
44
- 1. Run PHPStan and capture the full output.
36
+ - Detect the project's quality toolchain **before** doing anything else. Pick the first match:
37
+ 1. Project ships a wrapper script prefer the wrapper over invoking tools directly:
38
+ - PHP: `php artisan quality:*` (Laravel), `composer run quality`, `composer run lint`
39
+ - JS / TS: `npm run lint`, `npm run typecheck`, `pnpm lint`, `pnpm typecheck`, `yarn lint`, `yarn typecheck`
40
+ - Python: `make lint`, `nox -s lint`, `tox -e lint`
41
+ - Polyglot: `Taskfile.yml`, `Makefile`, or `justfile` with a `quality` / `lint` / `check` target
42
+ 2. No wrapperinvoke tools directly based on which are installed:
43
+ - PHP: `vendor/bin/phpstan analyse`, `vendor/bin/rector process`, `vendor/bin/ecs check --fix`
44
+ - JS / TS: `npx tsc --noEmit`, `npx eslint . --fix`, `npx prettier . --write`, `npx biome check --apply`
45
+ - Python: `ruff check . --fix`, `ruff format .`, `mypy .`, `pyright`
46
+ - Go: `golangci-lint run --fix`, `go vet ./...`, `gofmt -w .`
47
+ - Rust: `cargo clippy --fix --allow-dirty`, `cargo fmt`
48
+ 3. Nothing detected → ask the user which command runs the project's quality pipeline. Do not invent one.
49
+
50
+ ### Step 1: Type-checker — fix all errors
51
+
52
+ Run the project's type-checker (chosen in the detection step):
53
+ - PHP → PHPStan
54
+ - JS / TS → `tsc --noEmit`
55
+ - Python → mypy / pyright
56
+ - Go → `go vet` + `go build`
57
+ - Rust → `cargo check`
58
+
59
+ 1. Run the type-checker and capture the full output.
45
60
  2. For each error, **fix it in code**. Resolve the root cause.
46
- 3. **Do NOT add errors to the baseline or phpstan.neon ignore lists.**
47
- 4. If truly impossible (confirmed false positive), use inline ignore with reason.
48
- 5. After fixing, run PHPStan again.
61
+ 3. **Do NOT add errors to the baseline or ignore list** (`phpstan-baseline.neon`, `tsconfig.json` `exclude`, `# type: ignore`, `// @ts-ignore`, `#[allow(...)]`, `//nolint`).
62
+ 4. If truly impossible (confirmed false positive), use the language-native inline ignore with a one-line reason: `@phpstan-ignore`, `// @ts-expect-error: <reason>`, `# type: ignore[<code>] # <reason>`, `//nolint:<linter> // <reason>`, `#[allow(<lint>)] // <reason>`.
63
+ 5. After fixing, re-run the type-checker.
49
64
  6. Repeat until **0 errors**.
50
65
 
51
- ### Step 2: Rector — apply automated refactoring
66
+ ### Step 2: Auto-fixer / refactoring tool — apply transforms
67
+
68
+ Run the project's auto-fixer / refactoring tool (skip the step entirely if the project does not ship one):
69
+ - PHP → `vendor/bin/rector process`
70
+ - JS / TS → `npx eslint . --fix` (rule auto-fixes), `npx biome check --apply-unsafe` (safe transforms only)
71
+ - Python → `ruff check . --fix` (lint auto-fixes), `ruff check . --fix --unsafe-fixes` (broader)
72
+ - Go → `golangci-lint run --fix`, `gofmt -w .`, `goimports -w .`
73
+ - Rust → `cargo clippy --fix --allow-dirty --allow-staged`, `cargo fmt`
52
74
 
53
- 1. Run Rector with the fix flag.
54
- 2. Review what Rector changed it may introduce new PHPStan errors.
55
- 3. Run Rector again to verify no further changes are applied.
56
- 4. Repeat until Rector produces no more changes.
75
+ 1. Run the auto-fixer with the apply / fix flag.
76
+ 2. Review the diffauto-fixes may introduce new type-checker errors or change semantics on edge cases.
77
+ 3. Re-run the auto-fixer to verify it produces no further changes.
78
+ 4. Repeat until the auto-fixer is idempotent.
57
79
 
58
- ### Step 3: Final PHPStan verification
80
+ ### Step 3: Final type-checker verification
59
81
 
60
- 1. Run PHPStan one more time.
61
- 2. If new errors appeared (e.g. from Rector changes), fix them as in Step 1.
82
+ 1. Run the type-checker (from Step 1) one more time.
83
+ 2. If new errors appeared (e.g. from auto-fixer changes), fix them as in Step 1.
62
84
  3. If fixes were needed, go back to Step 2.
63
- 4. Done when PHPStan reports **0 errors** and Rector has **no changes**.
85
+ 4. Done when the type-checker reports **0 errors** **and** the auto-fixer is idempotent. Also run the formatter once at the very end (`vendor/bin/ecs check --fix` / `prettier --write` / `ruff format` / `cargo fmt`) to normalise whitespace.
64
86
 
65
87
  ---
66
88
 
@@ -105,7 +127,7 @@ git diff --name-only origin/{default}..HEAD
105
127
  ## Rules
106
128
 
107
129
  - **Do NOT commit or push.** Only apply local changes.
108
- - **Do NOT modify baseline files** (`phpstan-baseline.neon`) or config files (`biome.json`, `tsconfig.json`).
109
- - **Do NOT add entries to `ignoreErrors`** in `phpstan.neon`.
110
- - Inline ignores (`@phpstan-ignore`, `@ts-expect-error`, `biome-ignore`) are a last resort.
111
- - Run `php -l` on modified PHP files if you made significant structural changes.
130
+ - **Do NOT modify baseline files** (`phpstan-baseline.neon`, `tsconfig.json` `exclude`, `.mypy.ini` ignore list, `.eslintrc` `ignorePatterns`, `clippy.toml` `allow` list).
131
+ - **Do NOT widen ignore lists** in the config (`ignoreErrors`, `exclude`, `# type: ignore` blanket, `eslint-disable` file-wide).
132
+ - Inline ignores (`@phpstan-ignore`, `@ts-expect-error`, `# type: ignore[code]`, `biome-ignore`, `eslint-disable-next-line`, `//nolint:`, `#[allow(...)]`) are a last resort and must carry a one-line reason.
133
+ - After significant structural changes, run a language-level syntax check (`php -l <file>`, `node --check <file>`, `python -m py_compile <file>`, `go build ./...`, `cargo check`) before claiming the file is fixed.
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: update-form-request-messages
3
3
  tier: 2
4
+ framework: laravel
4
5
  skills: [laravel-validation]
5
- description: Sync the messages() method of a FormRequest class — add missing entries, link them to language keys, and clean up stale ones
6
+ description: "Sync the messages() method of a FormRequest class — add missing entries, link them to language keys, and clean up stale ones."
6
7
  disable-model-invocation: true
7
8
  suggestion:
8
9
  eligible: true
@@ -5,7 +5,7 @@ cluster: video
5
5
  sub: from-script
6
6
  description: 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.
7
7
  disable-model-invocation: true
8
- personas: [hollywood-director, ai-video-technical-director, pixar-storyboard-artist]
8
+ personas: [hollywood-director, ai-video-technical-director]
9
9
  skills: [scene-expander, video-director, pixar-storyteller, character-consistency, motion-choreographer]
10
10
  suggestion:
11
11
  eligible: true
@@ -19,7 +19,7 @@ suggestion:
19
19
 
20
20
  Drives a Markdown script through the full pipeline. Provider flags
21
21
  override the `<default-image-provider>` / `<default-video-provider>`
22
- from [`agents/.ai-video.xml`](../../agents/.ai-video.xml.example);
22
+ from [`agents/.ai-video.xml`](../../../agents/.ai-video.xml.example);
23
23
  absent flags fall back to the XML defaults.
24
24
 
25
25
  **Block-on-ambiguity:** a missing scene heading, an unparseable
@@ -49,7 +49,7 @@ provider in this order: command flag → `agents/.ai-video.xml` default
49
49
  Run the `scene-expander` skill: split on `## Scene N` headings, extract
50
50
  dialogue / action / ambient blocks, and emit one `scene-blueprint.yaml`
51
51
  per scene under `<project>/scenes/<id>/`. Schema:
52
- [`scene-blueprint.schema.yaml`](../skills/scene-expander/scene-blueprint.schema.yaml).
52
+ [`scene-blueprint.schema.yaml`](../../skills/scene-expander/scene-blueprint.schema.yaml).
53
53
 
54
54
  ### 4. Character lock
55
55
 
@@ -66,7 +66,7 @@ For each scene blueprint:
66
66
  2. **Safety gate (Phase 5 Step 6).** If `AIV_DRYRUN=false`, print the
67
67
  adapter, model, scene count, and estimated cost; refuse to continue
68
68
  without an explicit operator confirmation **in this turn**. Mirrors
69
- [`non-destructive-by-default`](../rules/non-destructive-by-default.md).
69
+ [`non-destructive-by-default`](../../rules/non-destructive-by-default.md).
70
70
  3. Call the image adapter (`run` subcommand) N times where N =
71
71
  `<tuning/best-of-n>` (default 1).
72
72
 
@@ -120,4 +120,4 @@ estimated cost (live mode) or `dry-run` marker. No commit. No push.
120
120
  - [`/video:scene`](scene.md) — single-scene iteration
121
121
  - [`/video:storyboard`](storyboard.md) — image-only contact sheet
122
122
  - [`/video:stitch`](stitch.md) — re-stitch after operator edits
123
- - [`scripts/ai-video/lib/adapter-contract.md`](../../scripts/ai-video/lib/adapter-contract.md)
123
+ - [`scripts/ai-video/lib/adapter-contract.md`](../../../scripts/ai-video/lib/adapter-contract.md)
@@ -5,7 +5,7 @@ cluster: video
5
5
  sub: storyboard
6
6
  description: Image-only storyboard — script → scenes → blueprint → image render → contact-sheet PNG via ffmpeg montage. No video calls.
7
7
  disable-model-invocation: true
8
- personas: [hollywood-director, pixar-storyboard-artist]
8
+ personas: [hollywood-director]
9
9
  skills: [scene-expander, video-director, character-consistency]
10
10
  suggestion:
11
11
  eligible: true
@@ -57,17 +57,14 @@ Define hard constraints: coding standards, Docker usage, language preferences, s
57
57
  |---|---|
58
58
  | `quality-workflow.md` | PHP (PHPStan → Rector → PHPStan) and JS/TS pipelines |
59
59
  | `downstream-changes.md` | After every edit, find and update ALL callers, tests, imports |
60
- | `docs-sync.md` | Keep docs in sync when skills/rules change |
60
+ | `augment-edit-discipline.md` | Edits inside `.augment/` / `.agent-src.uncompressed/` stay project-agnostic AND sync counts + cross-references in the same edit |
61
61
  | `context-hygiene.md` | 3-failure rule, state dumps |
62
62
  | `architecture.md` | Architecture principles, file placement |
63
63
  | `docker-commands.md` | All PHP commands run inside Docker containers |
64
64
  | `commit-conventions.md` | Conventional Commits format |
65
65
  | `dev-efficiency.md` | Running CLI commands with verbose output — git, tests, linters, docker, build tools |
66
- | `e2e-testing.md` | Playwright E2E tests — locators, assertions, Page Objects, CI |
67
66
  | `lang-files.md` | Laravel lang files, both de/ and en/ always in sync |
68
67
  | `rtk.md` | Using rtk for token-efficient CLI output filtering |
69
- | `agent-docs.md` | When to read/create/update documentation |
70
- | `augment-portability.md` | Everything in `.augment/` must be project-agnostic |
71
68
  | `roadmap-progress-sync.md` | Checkbox edits in `agents/roadmaps/*.md` must regenerate `agents/roadmaps-progress.md` in the same response |
72
69
 
73
70
  ### Skills (`.augment/skills/`)
@@ -79,14 +76,14 @@ Skills organized by domain:
79
76
 
80
77
  | Category | Skills |
81
78
  |---|---|
82
- | **PHP/Laravel** | `php`, `php-coder`, `laravel`, `eloquent`, `laravel-validation`, `php-service`, `dto-creator`, `artisan-commands`, `laravel-horizon`, `laravel-mail`, `laravel-middleware`, `laravel-notifications`, `laravel-pennant`, `laravel-pulse`, `laravel-reverb`, `laravel-scheduling` |
79
+ | **PHP/Laravel** | `php`, `php-coder`, `laravel`, `eloquent`, `laravel-validation`, `php-service`, `laravel-dto`, `artisan-commands`, `laravel-horizon`, `laravel-mail`, `laravel-middleware`, `laravel-notifications`, `laravel-pennant`, `laravel-pulse`, `laravel-reverb`, `laravel-scheduling` |
83
80
  | **API** | `api-endpoint`, `api-design`, `api-versioning`, `api-testing`, `openapi` |
84
81
  | **Analysis** | `analysis-autonomous-mode`, `universal-project-analysis`, `project-analysis-laravel`, `bug-analyzer`, `security-audit`, `performance-analysis` |
85
82
  | **Testing** | `pest-testing`, `test-generator`, `test-performance`, `php-debugging`, `playwright-testing` |
86
83
  | **Frontend** | `javascript`, `typescript`, `vue`, `react`, `nextjs`, `nuxt`, `tailwind`, `livewire`, `flux`, `blade-ui`, `fe-design` |
87
84
  | **Infrastructure** | `docker`, `aws-infrastructure`, `terraform`, `terragrunt`, `devcontainer`, `github-ci`, `cloudflare-workers`, `traefik` |
88
- | **Data** | `database`, `migration-creator`, `multi-tenancy`, `performance`, `sql-writing` |
89
- | **Jobs/Events** | `jobs-events`, `logging-monitoring`, `grafana`, `websocket` |
85
+ | **Data** | `database`, `laravel-migration`, `multi-tenancy`, `performance`, `sql-writing` |
86
+ | **Jobs/Events** | `jobs-events`, `logging-monitoring`, `grafana`, `laravel-websocket` |
90
87
  | **Packages** | `composer`, `composer-packages`, `npm`, `npm-packages` |
91
88
  | **Design** | `dashboard-design`, `design-review`, `fe-design` |
92
89
  | **Agent System** | `agent-docs-writing`, `agents-audit`, `context-create`, `commands`, `copilot-config`, `copilot-agents-optimization`, `feature-planning`, `file-editor`, `guidelines`, `mcp`, `override-management`, `project-docs`, `roadmap-management`, `module-management`, `naming`, `project-analyzer`, `sequential-thinking`, `skill-reviewer` |
@@ -33,7 +33,7 @@ before writing or reviewing code); this file is the catalog.
33
33
  | `performance.md` | Performance conventions — caching, Redis, eager loading, response time targets |
34
34
  | `security.md` | Security conventions — auth, authorization, SQL injection, XSS, CSRF, headers |
35
35
  | `sql.md` | Raw SQL conventions — parameterization, MariaDB syntax, common mistakes |
36
- | `websocket.md` | WebSocket conventions — Broadcasting, channel types, connection management |
36
+ | `laravel-websocket.md` | Laravel Broadcasting conventions — channel types, connection management, Echo client |
37
37
  | `patterns.md` | Design patterns index (links to `patterns/` subdirectory) |
38
38
 
39
39
  ## PHP Patterns (`docs/guidelines/php/patterns/`)
@@ -103,7 +103,7 @@ properties:
103
103
  Upstream (`Weizhena/Deep-Research-skills`) shipped a `validate_json.py`
104
104
  Pydantic-based validator that assumed `~/.claude/` paths and a Python
105
105
  runtime in the consumer environment. Both are
106
- `augment-portability` violations for this package (zero-runtime-Python
106
+ `augment-edit-discipline` violations for this package (zero-runtime-Python
107
107
  goal, host-agnostic distribution). The schema reference above lets the
108
108
  agent validate by reading; consumers needing programmatic validation
109
109
  can pipe the YAML through any JSON-Schema validator they prefer
@@ -0,0 +1,34 @@
1
+ # Interrupt Examples — Non-Interrupts, Failure Modes
2
+
3
+ Loaded by the [`user-interrupt-priority`](../../rules/user-interrupt-priority.md)
4
+ rule when concrete examples sharpen a classification call. The Iron
5
+ Law, classification table, and stop-ask-resume protocol live in the
6
+ rule itself.
7
+
8
+ ## What does NOT count as an interrupt
9
+
10
+ - **Clarifying question about the current task** — answer in place,
11
+ keep going.
12
+ - **Quoted text / code / log content** containing imperative verbs
13
+ ("stop", "abort") — content, not instruction. Speech-act check, same
14
+ as [`autonomous-execution § opt-in detection`](../../rules/autonomous-execution.md#opt-in-detection--match-by-intent-not-exact-string).
15
+ - **User pasting an error or screenshot** without a redirect —
16
+ diagnostic input for the current task.
17
+ - **"Why are you doing X?"** as a question — answer it, then continue
18
+ (unless the answer reveals the current task is wrong, in which case
19
+ STOP and confirm).
20
+
21
+ ## Failure modes
22
+
23
+ - **Silent-resume** — treated the interrupt as a pause, returned to the
24
+ old task without asking. Iron Law violation.
25
+ - **Partial-execution-then-resume** — answered the new ask in two
26
+ sentences, then went back to the old task without completing the new
27
+ one. Treat meta-tasks (process audits, council consultations, rule
28
+ changes) as full tasks, not as quick acknowledgments.
29
+ - **Greedy-bundling** — appended the new task to the old task's plan
30
+ and continued the old plan first. New task runs **first**, alone, in
31
+ full.
32
+ - **Autonomy-as-cover** — "user said autonomy on, so I just continued"
33
+ — autonomy never overrides a fresh instruction. See
34
+ [`autonomous-execution § Task-scope`](../../rules/autonomous-execution.md).
@@ -61,9 +61,12 @@ matching `commit:` / `git commit` / `Commit phase` patterns).
61
61
  - **Commit steps present, non-autonomous** → ask before each commit
62
62
  step inside the loop.
63
63
 
64
- ## 4. Resolve quality cadence
64
+ ## 4. Resolve cadences — read once, cache for the run
65
65
 
66
- Read `roadmap.quality_cadence` from `.agent-settings.yml` once:
66
+ Read both keys from `.agent-settings.yml` once and cache for the whole
67
+ run. Do **not** re-read inside the step loop.
68
+
69
+ **`roadmap.quality_cadence`** — when to run the quality pipeline:
67
70
 
68
71
  | Value | Pipeline runs |
69
72
  |---|---|
@@ -75,28 +78,80 @@ Missing / unreadable / unknown → fall back to `end_of_roadmap`.
75
78
  The Iron Law [`verify-before-complete`](../../rules/verify-before-complete.md)
76
79
  still mandates fresh quality output before any "complete" claim.
77
80
 
81
+ **`roadmap.dashboard_regen_cadence`** — when to run the dashboard
82
+ subprocess between steps:
83
+
84
+ | Value | `./agent-config roadmap:progress` runs |
85
+ |---|---|
86
+ | `per_step` (default) | After every checkbox flip |
87
+ | `every_5_steps` | Every 5th closed step + at phase boundary + at reply end |
88
+ | `phase_boundary` | Only at phase boundaries + run end |
89
+
90
+ `process-step` ignores this — single-step runs always regen at step
91
+ end. Any file-shape touch (rename / phase add / archive — Iron Law 1
92
+ of [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md))
93
+ forces an immediate regen regardless of cadence. The checkbox flip
94
+ itself is **never** batchable — only the subprocess.
95
+
78
96
  ## 5. Step loop
79
97
 
80
98
  For each open step in the working set (scope-bound — see wrapper):
81
99
 
82
- 1. Read the step description and inline notes.
100
+ 0. **CI-step gate** per
101
+ [`roadmap-ci-steps-policy`](../../rules/roadmap-ci-steps-policy.md).
102
+ When `quality.local_auto_run: false` and the step text matches a
103
+ CI-shaped literal (`task ci`, `task ci-fast`, `task ci-strict`,
104
+ `make ci`, `make test`, `npm/pnpm run check`, `yarn check`,
105
+ `composer test`, whole-suite `vendor/bin/phpunit`, whole-suite
106
+ `php artisan test`) **without** an inline
107
+ `<!-- carve-out: new-gate-verification -->` marker → flip the
108
+ checkbox to `[-]`, append
109
+ `<!-- skipped: quality.local_auto_run=false → remote CI is the gate -->`
110
+ on the same line, regenerate the dashboard, continue to the next
111
+ step. Never run the gate. Carve-out marker present → run normally
112
+ (new gate must be verified once locally). Setting `true` → run
113
+ normally.
114
+ 1. **Bundled read — one parallel tool-call block.** The step
115
+ description, the immediately-relevant code files, and any
116
+ guideline/context the step cites are **independent** reads and
117
+ **must** be dispatched together, not serially.
118
+
119
+ ```
120
+ parallel:
121
+ - view agents/roadmaps/<file>.md (the step's section)
122
+ - view <files cited in the step text>
123
+ - codebase-retrieval (only if the step is vague)
124
+ ```
125
+
126
+ Anti-pattern: `view step` → think → `view file A` → think →
127
+ `view file B`. That's 3 round-trips for what should be 1.
83
128
  2. Analyze the codebase for what the step requires.
84
129
  3. Decide and act — implement. **No "should I implement this?" prompt.**
85
130
  4. **Open question handling:**
86
131
  - **Council on** → invoke per [`ai-council`](../../skills/ai-council/SKILL.md),
87
132
  integrate convergence, proceed. Token spend was opted in.
88
133
  - **Council off** → halt, surface once, wait. Resume on next turn.
89
- 5. **Atomic flip + regen** before moving to step N+1, in the **same
90
- reply** that landed step N's work:
91
- 1. Flip the checkbox in `agents/roadmaps/<file>.md`: `[x]` done ·
92
- `[~]` partial · `[-]` skipped.
93
- 2. Run `./agent-config roadmap:progress` to regenerate the
94
- dashboard.
95
- This pair is **non-skippable** and **non-batchable** per Iron Law 2
96
- of [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md). A
97
- loop iteration that lands work without flipping its box is a rule
98
- violation. Do not save flips for the archive commit.
99
- 6. Run quality pipeline if cadence is `per_step`.
134
+ 5. **Atomic flip — same reply, every step.**
135
+ Flip the checkbox in `agents/roadmaps/<file>.md`: `[x]` done ·
136
+ `[~]` partial · `[-]` skipped. **Non-skippable, non-batchable**
137
+ per Iron Law 2 of
138
+ [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md).
139
+ A loop iteration that lands work without flipping its box is a
140
+ rule violation. Do not save flips for the archive commit.
141
+ 6. **Dashboard regen — cadence-gated.** Run
142
+ `./agent-config roadmap:progress` when due per
143
+ `roadmap.dashboard_regen_cadence` (resolved in § 4):
144
+ - `per_step` always after the flip.
145
+ - `every_5_steps` → after the 5th, 10th, … closed step **of this
146
+ run**, or when the reply ends with closed steps pending regen.
147
+ - `phase_boundary` → skip; the boundary handler in § 5 wrapper /
148
+ § 6 runs the regen.
149
+ - Any file-shape touch (rename / phase add / archive — Iron Law 1)
150
+ → run immediately regardless of cadence.
151
+
152
+ Skipped regens accumulate into the next due regen — the markdown
153
+ file is the source of truth between regens.
154
+ 7. Run quality pipeline if cadence is `per_step`.
100
155
 
101
156
  ### Halt conditions
102
157
 
@@ -95,13 +95,13 @@ Commands often chain together. Here are the main workflows:
95
95
  | Area | Skills |
96
96
  |---|---|
97
97
  | API endpoints | `api-endpoint`, `api-design`, `api-versioning`, `api-testing`, `openapi`, `laravel-validation` |
98
- | Database | `eloquent`, `database`, `migration-creator`, `multi-tenancy`, `sql-writing` |
98
+ | Database | `eloquent`, `database`, `laravel-migration`, `multi-tenancy`, `sql-writing` |
99
99
  | Background jobs | `jobs-events`, `laravel-horizon`, `laravel-scheduling`, `performance` |
100
100
  | Email/Notifications | `laravel-mail`, `laravel-notifications` |
101
101
  | Middleware/Auth | `laravel-middleware`, `security` |
102
102
  | Feature flags | `laravel-pennant` |
103
103
  | Monitoring | `laravel-pulse`, `logging-monitoring`, `grafana`, `sentry-integration` |
104
- | Real-time | `laravel-reverb`, `websocket` |
104
+ | Real-time | `laravel-reverb`, `laravel-websocket` |
105
105
  | Testing | `pest-testing`, `test-generator`, `playwright-testing` |
106
106
  | Frontend | `livewire`, `flux`, `blade-ui`, `tailwind`, `vue`, `react`, `fe-design` |
107
107
  | Infrastructure | `docker`, `aws-infrastructure`, `terraform`, `terragrunt`, `cloudflare-workers`, `traefik` |
@@ -63,11 +63,12 @@ the linter check list.
63
63
  |---|---|---|
64
64
  | `qa` | specialist | testability, failure scenarios |
65
65
  | `hollywood-director` | specialist | live-action cinematic prompts — lens, lighting, blocking, negative constraints |
66
- | `pixar-storyboard-artist` | specialist | animation acting — emotional beat, want / obstacle, environment reaction |
67
66
  | `ai-video-technical-director` | specialist | provider tuning — Veo / Kling / OpenAI / Higgsfield / Sora grammar, token caps, audio flags |
68
67
 
69
68
  More specialists may land in v1.1+ — each must pass the
70
- Unique-Questions heuristic before being drafted.
69
+ Unique-Questions heuristic before being drafted. Removed personas
70
+ are deleted in-commit (no soak window) per
71
+ [`persona-governance § Deprecation path`](../rules/persona-governance.md).
71
72
 
72
73
  ## How skills use personas
73
74
 
@@ -18,7 +18,7 @@ audio capability. Refuses one-prompt-fits-all; demands a tuned variant
18
18
  per adapter. Catches prompts that would silently truncate, fall back
19
19
  to a default aspect, or drop audio on a video-only model. Not
20
20
  responsible for camera grammar (`hollywood-director`) or acting
21
- (`pixar-storyboard-artist`).
21
+ (`pixar-storyteller` skill).
22
22
 
23
23
  ## Mindset
24
24
 
@@ -77,5 +77,5 @@ count.
77
77
  ## Composes well with
78
78
 
79
79
  - `hollywood-director` — consumes the 11-block prompt; folds it into provider grammar.
80
- - `pixar-storyboard-artist` — consumes the four-block storyboard; preserves beat counts in MOTION PROMPT.
80
+ - `pixar-storyteller` skill — consumes the four-block storyboard; preserves beat counts in MOTION PROMPT.
81
81
  - `motion-choreographer` skill — drafts per-provider motion + audio directions against this output.
@@ -17,7 +17,7 @@ lens, the light, the camera move, blocking, and negative constraints
17
17
  are all on the page. Refuses "cinematic" as a word — it is a budget,
18
18
  a choice of glass, and a position relative to the sun. Catches shots
19
19
  still readable as stock footage. Not responsible for animation pacing
20
- (`pixar-storyboard-artist`) or provider tokens (`ai-video-technical-director`).
20
+ (`pixar-storyteller` skill) or provider tokens (`ai-video-technical-director`).
21
21
 
22
22
  ## Mindset
23
23
 
@@ -92,8 +92,8 @@ declarative sentence — no adjective stacks, no "ultra-realistic".
92
92
 
93
93
  ## Composes well with
94
94
 
95
- - `pixar-storyboard-artist` — when the beat is emotional rather than
96
- procedural; the storyboard artist names the acting, this persona
95
+ - `pixar-storyteller` skill — when the beat is emotional rather than
96
+ procedural; the storyteller skill names the acting, this persona
97
97
  names the camera around it.
98
98
  - `ai-video-technical-director` — runs after this persona to map the
99
99
  11-block prompt to the target provider's prompt grammar.
@@ -16,10 +16,15 @@ profile:
16
16
  - editorial-calendar
17
17
  - release-comms
18
18
  - prompt-engineering-patterns
19
+ - character-consistency
19
20
  surface:
20
21
  commands_hint:
21
22
  - work
22
23
  - post-as
23
24
  - ghostwriter
24
25
  - optimize-prompt
26
+ - video:from-script
27
+ - video:storyboard
28
+ - video:scene
29
+ - video:stitch
25
30
  docs_first_pointer: "docs/getting-started-by-role.md#content_creator"