aiwg 2026.7.18 → 2026.7.20

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 (109) hide show
  1. package/agentic/code/addons/aiwg-utils/rules/subagent-scoping.md +17 -5
  2. package/agentic/code/addons/aiwg-utils/skills/new-bundle/SKILL.md +53 -0
  3. package/agentic/code/addons/aiwg-utils/skills/package-all-plugins/SKILL.md +28 -33
  4. package/agentic/code/addons/aiwg-utils/skills/package-plugin/SKILL.md +58 -29
  5. package/agentic/code/addons/aiwg-utils/skills/promote/SKILL.md +48 -0
  6. package/agentic/code/addons/aiwg-utils/skills/steward-quickref/SKILL.md +1 -0
  7. package/agentic/code/addons/aiwg-utils/skills/update/SKILL.md +8 -5
  8. package/agentic/code/frameworks/media-curator/README.md +5 -0
  9. package/agentic/code/frameworks/media-curator/skills/diarize-media/SKILL.md +92 -0
  10. package/agentic/code/frameworks/media-curator/skills/diarize-media/scripts/diarize_media.mjs +8 -0
  11. package/agentic/code/frameworks/media-curator/skills/media-curator-quickref/SKILL.md +2 -1
  12. package/agentic/code/frameworks/media-curator/skills/transcribe-media/SKILL.md +60 -1
  13. package/agentic/code/frameworks/media-curator/skills/transcribe-media/scripts/transcribe_media.mjs +463 -0
  14. package/agentic/code/plugins/media-curator/README.md +8 -0
  15. package/agentic/code/plugins/media-curator/skills/diarize-media/SKILL.md +92 -0
  16. package/agentic/code/plugins/media-curator/skills/diarize-media/scripts/diarize_media.mjs +8 -0
  17. package/agentic/code/plugins/media-curator/skills/media-curator-quickref/SKILL.md +2 -1
  18. package/agentic/code/plugins/media-curator/skills/transcribe-media/SKILL.md +60 -1
  19. package/agentic/code/plugins/media-curator/skills/transcribe-media/scripts/transcribe_media.mjs +463 -0
  20. package/agentic/code/plugins/utils/skills/new-bundle/SKILL.md +53 -0
  21. package/agentic/code/plugins/utils/skills/package-all-plugins/SKILL.md +28 -33
  22. package/agentic/code/plugins/utils/skills/package-plugin/SKILL.md +58 -29
  23. package/agentic/code/plugins/utils/skills/promote/SKILL.md +48 -0
  24. package/agentic/code/plugins/utils/skills/steward-quickref/SKILL.md +1 -0
  25. package/agentic/code/plugins/utils/skills/update/SKILL.md +8 -5
  26. package/dist/src/artifacts/cli.js +59 -5
  27. package/dist/src/artifacts/discover-facets.js +15 -0
  28. package/dist/src/artifacts/discovery-eval.js +290 -0
  29. package/dist/src/artifacts/fortemi-core-query-adapter.js +1 -1
  30. package/dist/src/artifacts/fortemi-shard-export.js +1 -1
  31. package/dist/src/artifacts/query-engine.js +10 -6
  32. package/dist/src/cli/handlers/help.js +2 -1
  33. package/dist/src/cli/handlers/index.js +3 -1
  34. package/dist/src/cli/handlers/resource-versions.js +247 -0
  35. package/dist/src/cli/handlers/subcommands.js +55 -3
  36. package/dist/src/cli/handlers/use.js +15 -3
  37. package/dist/src/cli/handlers/utilities.js +27 -26
  38. package/dist/src/config/cli.js +13 -9
  39. package/dist/src/config/project-artifacts-runtime.mjs +68 -0
  40. package/dist/src/config/project-artifacts.js +1 -68
  41. package/dist/src/extensions/commands/definitions.js +36 -2
  42. package/dist/src/extensions/project-local-discovery.js +86 -2
  43. package/dist/src/extensions/project-local-remove.js +52 -56
  44. package/dist/src/extensions/shadow-resolver.js +3 -1
  45. package/dist/src/plugins/standalone-packager.js +143 -0
  46. package/dist/src/resources/cache-cleanup.js +67 -0
  47. package/dist/src/resources/doctor.js +107 -0
  48. package/dist/src/resources/lockfile.js +125 -0
  49. package/dist/src/resources/resolver.js +133 -0
  50. package/dist/src/resources/web-release.d.ts +8 -0
  51. package/dist/src/resources/web-release.js +159 -1
  52. package/dist/src/smiths/context-pipeline/aiwg-md.js +5 -1
  53. package/dist/src/smiths/context-pipeline/claude-hook.js +21 -1
  54. package/dist/src/smiths/context-pipeline/finalization.js +5 -3
  55. package/dist/src/smiths/context-pipeline/generator.js +4 -1
  56. package/dist/src/smiths/context-pipeline/parallelism-section.js +34 -1
  57. package/dist/src/smiths/context-pipeline/workspace-context.js +15 -3
  58. package/dist/src/smiths/mcpsmith/example.js +3 -1
  59. package/dist/src/smiths/mcpsmith/generator.js +3 -1
  60. package/dist/src/smiths/toolsmith/runtime-discovery.mjs +2 -1
  61. package/dist/src/storage/cli.js +3 -2
  62. package/dist/src/storage/subsystem-cli.js +7 -2
  63. package/dist/src/update/notifier.mjs +1 -1
  64. package/dist/src/update/service.mjs +123 -0
  65. package/docs/CLI_USAGE.md +43 -10
  66. package/docs/_manifest.json +8 -0
  67. package/docs/addons/aiwg-utils/agent-examples/aiwg-steward-examples.md +13 -12
  68. package/docs/addons/aiwg-utils/agent-examples/aiwg-steward-routing-reference.md +110 -8
  69. package/docs/addons/aiwg-utils/agent-examples.md +12 -12
  70. package/docs/architecture-overview.md +6 -5
  71. package/docs/cli-reference.md +21 -9
  72. package/docs/configuration/model-configuration.md +10 -0
  73. package/docs/contributing/secret-rotation.md +3 -1
  74. package/docs/contributing/versioning.md +40 -3
  75. package/docs/customization/standalone-plugin-repository.md +72 -0
  76. package/docs/discovery-and-kernel-skills.md +36 -3
  77. package/docs/frameworks/ops-complete/extensions-guide.md +36 -36
  78. package/docs/frameworks/ops-complete/overview.md +1 -1
  79. package/docs/frameworks/ops-complete/quickstart.md +0 -2
  80. package/docs/frameworks/sdlc-complete/orchestrator-architecture.md +62 -483
  81. package/docs/how-it-works.md +2 -2
  82. package/docs/install/web-backed-resources.md +203 -10
  83. package/docs/integrations/fortemi-index-export.md +29 -7
  84. package/docs/references/README.md +35 -7
  85. package/docs/references/REF-067-semver-2.md +56 -0
  86. package/docs/references/REF-068-npm-dist-tags-lockfile-integrity.md +62 -0
  87. package/docs/references/REF-069-oci-distribution-spec.md +54 -0
  88. package/docs/references/REF-070-oci-image-spec.md +56 -0
  89. package/docs/references/REF-071-w3c-subresource-integrity.md +51 -0
  90. package/docs/references/REF-072-the-update-framework.md +68 -0
  91. package/docs/references/REF-073-cryptographic-registry-provenance.md +58 -0
  92. package/docs/references/REF-074-signing-is-not-enough-provenance-graph.md +56 -0
  93. package/docs/references/REF-075-supply-chain-poisoning-agent-skills.md +58 -0
  94. package/docs/references/_manifest.json +11 -1
  95. package/docs/references/acquisition-status-web-resource-distribution.md +42 -0
  96. package/docs/releases/v2026.7.18-announcement.md +16 -0
  97. package/docs/releases/v2026.7.19-announcement.md +68 -0
  98. package/docs/releases/v2026.7.20-announcement.md +67 -0
  99. package/docs/reports/agentskills-adoption-issue-plan-2026-07-25.md +228 -0
  100. package/docs/reports/agentskills-standard-audit-2026-07-25.md +329 -0
  101. package/docs/reports/discovery-relevance-decision-2026-07-25.md +92 -0
  102. package/docs/research/architecture-rationale.md +1 -1
  103. package/docs/research/research-background.md +1 -1
  104. package/package.json +4 -2
  105. package/prebuilt/fortemi-core/framework/aiwg-fortemi-index-v2.json +1 -1
  106. package/prebuilt/fortemi-core/framework/manifest.json +2 -2
  107. package/tools/agents/providers/base.mjs +2 -1
  108. package/tools/cli/update.mjs +14 -64
  109. package/tools/plugin/package-plugins.mjs +37 -1
@@ -13,7 +13,7 @@ enforcement: high
13
13
 
14
14
  Prevent context overload when delegating to subagents by enforcing focused, single-purpose invocations with minimal context and explicit output boundaries. Overloading causes context overflow/truncation, degraded output, premature termination, and expensive re-runs.
15
15
 
16
- **Core distinction**: These rules limit what goes INTO each subagent — NOT how many subagents an orchestrator spawns. Spawning 50 focused subagents (one per atomic subtask) is correct; giving one subagent 20 tasks is wrong. The anti-pattern is overload per subagent, never count.
16
+ **Core distinction**: These rules primarily limit what goes INTO each subagent, while provider, project, context, framework, and natural-decomposition caps limit concurrent count. Focused delegation is useful only when its coordination cost and shared-state risk are lower than keeping the work local.
17
17
 
18
18
  ## Mandatory Rules
19
19
 
@@ -26,8 +26,17 @@ Include only context directly relevant to the task. **FORBIDDEN**: dumping full
26
26
  ### Rule 3: Task Decomposition Before Delegation
27
27
  Decompose complex tasks into atomic units before spawning. **FORBIDDEN**: "Implement the entire user registration flow." **REQUIRED**: split into atomic subagents (validate input, duplicate check, hash password, DB insert, send email, build response) — each succeeds/fails independently.
28
28
 
29
- ### Rule 4: Parallel Over Sequential Overload
30
- When N related tasks exist, spawn N separate subagents in parallel. **FORBIDDEN**: one subagent "write tests for login, logout, refreshToken, validateSession." **REQUIRED**: 4 parallel test-writing subagents, one per function. If decomposition produces 20 atomic tasks, spawn 20 subagents — the limit is per-subagent input, not count.
29
+ ### Rule 4: Parallelize Independent Work Only
30
+ When N independent tasks exist and delegation is beneficial, use separate focused subagents up to the effective cap. **FORBIDDEN**: parallel edits with serial dependencies or likely shared-state collisions. **REQUIRED**: keep tightly coupled work serial and retain integration in the primary agent.
31
+
32
+ ### Rule 4a: Select the Model Wrapper by Work Characteristics
33
+ When the provider supports delegation, prefer AIWG's deployed wrappers instead of selecting the most capable model by default:
34
+
35
+ - `aiwg-model-efficiency-worker` for discovery, inventory, focused edits, and bounded low-cost work.
36
+ - `aiwg-model-coding-worker` for implementation, tests, debugging, and routine technical delivery.
37
+ - `aiwg-model-reasoning-worker` for architecture, synthesis, difficult analysis, and high-consequence review.
38
+
39
+ The primary agent remains responsible for orchestration, final integration, conflict resolution, validation, and the user-facing result. On global-only, compiled, inherited, or unsupported provider surfaces, describe actual enforcement honestly; never claim a per-worker pin that the provider cannot enforce.
31
40
 
32
41
  ### Rule 5: Output Scoping
33
42
  State exactly what format and scope to return. **FORBIDDEN**: "Analyze the auth system and provide recommendations" (output unspecified). **REQUIRED**: "Identify the top 3 security risks — list of exactly 3, each with name + severity + 1-sentence description, ≤300 words."
@@ -85,7 +94,7 @@ Override for higher-tier plans: `aiwg config set --project parallelism.max_paral
85
94
 
86
95
  ## Orchestrator Fan-Out
87
96
 
88
- Spawn many subagents when subtasks are independent (large multi-component feature 10-20+; one per file/function/service/endpoint/doc-section). The decision per subtask: atomic? context minimal (<20% of window)? output scoped? — if yes to all, spawn one subagent per subtask and execute in parallel (in sequential waves if `AIWG_CONTEXT_WINDOW` budget requires), then aggregate. Spawning 50 focused subagents beats 5 overloaded ones.
97
+ Consider subagents when non-trivial work decomposes into independent, bounded units. The decision per subtask is: atomic, context minimal (<20% of window), output scoped, independent, collision-safe, and worth the coordination cost? If yes, dispatch up to the effective cap and aggregate in the primary agent. If no—especially for trivial, tightly coupled, inherently serial, or shared-state-sensitive work—keep it local.
89
98
 
90
99
  ## Integration with Other Rules
91
100
 
@@ -104,12 +113,15 @@ Before spawning a subagent:
104
113
  - [ ] Context is only what's directly relevant (<20% of window)
105
114
  - [ ] Output format/scope explicit
106
115
  - [ ] Task is atomic
116
+ - [ ] Task is independent and collision-safe
117
+ - [ ] Delegation benefit exceeds coordination cost
118
+ - [ ] Efficiency, coding, or reasoning wrapper matches the task and consequence
107
119
  - [ ] Similar tasks → separate subagents, not bundled
108
120
  - [ ] Delegation depth ≤ 2 levels
109
121
  - [ ] Budget estimated <50% of window; if `AIWG_CONTEXT_WINDOW` set, parallel count within budget AND provider cap (Rule 8)
110
122
 
111
123
  Before giving one subagent multiple tasks: **STOP** — can these be separate subagents? Document why only if truly inseparable.
112
- Before limiting subagent count: **STOP** — the rules limit per-subagent input, not count; if each is atomic, many subagents is correct.
124
+ Before setting concurrency: take the minimum of provider, project, context, framework, and natural-decomposition caps.
113
125
 
114
126
  ## References
115
127
 
@@ -0,0 +1,53 @@
1
+ ---
2
+ namespace: aiwg
3
+ name: new-bundle
4
+ platforms: [all]
5
+ description: Scaffold a project-local extension, addon, framework, plugin, or provider bundle under the configured AIWG artifact root.
6
+ triggers:
7
+ - new-bundle
8
+ - new bundle
9
+ - scaffold project-local
10
+ - create project-local bundle
11
+ - project-local bundle
12
+ - new extension
13
+ - new addon
14
+ - new provider
15
+ ---
16
+
17
+ # New Bundle
18
+
19
+ Create a version-controlled project-local bundle under `.aiwg/`.
20
+
21
+ ## Behavior
22
+
23
+ 1. Determine the bundle name and type.
24
+ 2. Select an optional starter artifact.
25
+ 3. Preview when requested, then run:
26
+
27
+ ```bash
28
+ aiwg new-bundle <name> \
29
+ [--type extension|addon|framework|plugin|provider] \
30
+ [--starter skill|rule|agent|minimal] \
31
+ [--description "..."] \
32
+ [--dry-run]
33
+ ```
34
+
35
+ 4. Deploy the completed bundle with `aiwg use <name>`.
36
+ 5. Validate project-local health with `aiwg doctor`.
37
+ 6. When the bundle is ready to graduate, use `aiwg promote <name> --dry-run`.
38
+
39
+ The default type is `extension`; the default starter is `skill`. The aliases
40
+ `new-extension`, `new-addon`, `new-framework`, `new-plugin`, and `new-provider`
41
+ select their corresponding type.
42
+
43
+ ## Safety
44
+
45
+ - Use `--dry-run` before scaffolding when the target or layout is uncertain.
46
+ - Refuse to overwrite an existing bundle.
47
+ - Keep project-local source in version control; provider deployment copies are
48
+ generated artifacts.
49
+
50
+ ## References
51
+
52
+ - @$AIWG_ROOT/src/cli/handlers/subcommands.ts — `new-bundle` command handler
53
+ - @$AIWG_ROOT/agentic/code/addons/aiwg-utils/skills/steward-quickref/SKILL.md
@@ -17,7 +17,6 @@ Alternate expressions and non-obvious activations (primary phrases are matched a
17
17
  - "build all plugin archives" → batch package all plugins
18
18
  - "bundle all plugins" → batch package all plugins
19
19
  - "batch package the plugins" → batch package all plugins
20
- - "publish all plugins" → batch package all plugins (with --publish)
21
20
 
22
21
  ## Trigger Patterns Reference
23
22
 
@@ -25,18 +24,16 @@ Alternate expressions and non-obvious activations (primary phrases are matched a
25
24
  |---------|---------|--------|
26
25
  | Package all | "package all plugins" | Run `aiwg package-all-plugins` |
27
26
  | Bundle all | "bundle all plugins" | Run `aiwg package-all-plugins` |
28
- | Publish all | "publish all plugins" | Run `aiwg package-all-plugins --publish` |
29
27
  | Batch package | "batch package plugins" | Run `aiwg package-all-plugins` |
30
28
  | Dry run all | "validate all plugins before packaging" | Run `aiwg package-all-plugins --dry-run` |
31
- | Skip failures | "package all, skip broken ones" | Run `aiwg package-all-plugins --continue-on-error` |
32
29
 
33
30
  ## Behavior
34
31
 
35
32
  When triggered:
36
33
 
37
34
  1. **Extract intent**:
38
- - Should packages be published after creation, or archived locally only?
39
- - Should the batch abort on first failure, or continue and report all failures?
35
+ - Which provider wrappers should be generated?
36
+ - Should existing generated output be cleaned first?
40
37
  - Is this a dry run (validate only)?
41
38
 
42
39
  2. **Run the appropriate command**:
@@ -48,17 +45,11 @@ When triggered:
48
45
  # Validate all plugins — no archives created
49
46
  aiwg package-all-plugins --dry-run
50
47
 
51
- # Package and publish all to marketplace
52
- aiwg package-all-plugins --publish
48
+ # Package all Codex wrappers
49
+ aiwg package-all-plugins --provider codex
53
50
 
54
- # Continue on individual failures, report all at end
55
- aiwg package-all-plugins --continue-on-error
56
-
57
- # Specify output directory for all archives
58
- aiwg package-all-plugins --output dist/plugins/
59
-
60
- # Bump all versions before packaging
61
- aiwg package-all-plugins --bump patch
51
+ # Clean generated output before rebuilding
52
+ aiwg package-all-plugins --clean
62
53
  ```
63
54
 
64
55
  3. **Report the result** — list each marketplace wrapper with its status (packaged, failed, skipped), total count, and any errors.
@@ -68,10 +59,10 @@ When triggered:
68
59
  ```
69
60
  Packaging all plugins (4)...
70
61
 
71
- sdlc ✓ packaged dist/plugins/sdlc-2026.4.0.aiwg-plugin.tar.gz
72
- voice ✓ packaged dist/plugins/voice-2026.4.0.aiwg-plugin.tar.gz
73
- marketing ✓ packaged dist/plugins/marketing-2026.4.0.aiwg-plugin.tar.gz
74
- utils ✗ failed validate-metadata: 1 error in soul-blend/SKILL.md
62
+ sdlc ✓ generated agentic/code/plugins/sdlc
63
+ voice ✓ generated agentic/code/plugins/voice
64
+ marketing ✓ generated agentic/code/plugins/marketing
65
+ utils ✗ failed source validation error
75
66
 
76
67
  Packaged: 3 / 4
77
68
  Failed: 1 (utils)
@@ -79,11 +70,11 @@ Failed: 1 (utils)
79
70
 
80
71
  ## Failure Behavior
81
72
 
82
- By default (`--abort-on-error`), the batch stops at the first failure and reports the error. Use `--continue-on-error` to package all plugins and collect all errors for a single remediation pass.
73
+ The batch reports an error and exits non-zero when packaging cannot complete.
83
74
 
84
75
  ## Relationship to `package-plugin`
85
76
 
86
- `package-all-plugins` is a thin loop over `package-plugin`. Each marketplace wrapper runs through the same validation and packaging logic as a single `package-plugin` call. Flags like `--dry-run`, `--publish`, and `--bump` are forwarded to each invocation.
77
+ `package-all-plugins` uses the same packager as `package-plugin`. Supported shared flags are `--provider`, `--clean`, and `--dry-run`.
87
78
 
88
79
  ## Examples
89
80
 
@@ -98,7 +89,7 @@ By default (`--abort-on-error`), the batch stops at the first failure and report
98
89
  aiwg package-all-plugins
99
90
  ```
100
91
 
101
- **Response**: "Packaged 4/4 plugins. Archives in dist/plugins/: sdlc-2026.4.0, voice-2026.4.0, marketing-2026.4.0, utils-2026.4.0. All metadata validation passed."
92
+ **Response**: "Generated 4/4 wrappers under `agentic/code/plugins/`."
102
93
 
103
94
  ### Example 2: Validate everything before tagging
104
95
 
@@ -113,34 +104,38 @@ aiwg package-all-plugins --dry-run
113
104
 
114
105
  **Response**: "Dry run: 4 plugins validated. 3 passed. 1 error: utils plugin — soul-blend/SKILL.md missing required field `id`. Fix and re-run."
115
106
 
116
- ### Example 3: Package and publish in one step
107
+ ### Example 3: Package every Codex wrapper
117
108
 
118
- **User**: "Package and publish everything for the release"
109
+ **User**: "Package every plugin for Codex"
119
110
 
120
- **Extraction**: Batch package and publish
111
+ **Extraction**: Batch package for Codex
121
112
 
122
113
  **Action**:
123
114
  ```bash
124
- aiwg package-all-plugins --publish
115
+ aiwg package-all-plugins --provider codex
125
116
  ```
126
117
 
127
- **Response**: "Packaged and published 4/4 plugins to the AIWG marketplace. sdlc, voice, marketing, utils — all at v2026.4.0."
118
+ **Response**: "Generated every supported Codex plugin wrapper."
128
119
 
129
- ### Example 4: Continue through failures
120
+ ### Example 4: Clean rebuild
130
121
 
131
- **User**: "Package all plugins but don't stop if one fails — I want to see all the errors at once"
122
+ **User**: "Clean and rebuild all plugin wrappers"
132
123
 
133
- **Extraction**: Batch with `--continue-on-error`
124
+ **Extraction**: Clean existing generated output and rebuild
134
125
 
135
126
  **Action**:
136
127
  ```bash
137
- aiwg package-all-plugins --continue-on-error
128
+ aiwg package-all-plugins --clean
138
129
  ```
139
130
 
140
- **Response**: "Packaged 3/4 plugins. 1 failure: utils — validate-metadata error in soul-blend/SKILL.md line 4 (missing `id`). All other packages created in dist/plugins/."
131
+ **Response**: "Cleaned and regenerated all supported plugin wrappers."
132
+
133
+ ## Unsupported legacy examples
134
+
135
+ Earlier skill revisions documented `--publish`, `--bump`, `--output`, `--continue-on-error`, and `--abort-on-error`; the packager never implemented those flags. They are intentionally removed from the command contract. Use the repository release workflow for publication and update authoritative manifests separately before packaging.
141
136
 
142
137
  ## References
143
138
 
144
- - @$AIWG_ROOT/src/cli/handlers/utilities.ts — Command handler
139
+ - @$AIWG_ROOT/src/cli/handlers/subcommands.ts — Command handler
145
140
  - @$AIWG_ROOT/docs/cli-reference.md — CLI reference
146
141
  - @$AIWG_ROOT/agentic/code/addons/aiwg-utils/skills/package-plugin/SKILL.md — Single-plugin packaging
@@ -2,12 +2,19 @@
2
2
  namespace: aiwg
3
3
  name: package-plugin
4
4
  platforms: [all]
5
- description: Bundle a single marketplace delivery wrapper into a distributable archive, validating metadata and optionally publishing
5
+ description: Package a built-in or standalone project-local AIWG plugin wrapper for marketplace distribution
6
+ triggers:
7
+ - standalone plugin repository
8
+ - publish project-local plugin
9
+ - package project-local plugin
10
+ - community plugin repository
6
11
  ---
7
12
 
8
13
  # Package Plugin
9
14
 
10
- You bundle a single marketplace delivery wrapper for the AIWG marketplace. In AIWG vocabulary, the plugin layer packages an extension, addon, or framework payload for distribution. You validate metadata, create the package archive, and optionally publish to the registry.
15
+ You validate and package either a built-in marketplace wrapper or a standalone
16
+ project-local wrapper. Standalone wrappers are auto-discovered under
17
+ `.aiwg/plugins/<name>/` and emitted as deterministic provider archives.
11
18
 
12
19
  ## Triggers
13
20
 
@@ -15,8 +22,9 @@ Alternate expressions and non-obvious activations (primary phrases are matched a
15
22
 
16
23
  - "bundle the voice plugin for release" → package voice plugin
17
24
  - "prepare the SDLC plugin for distribution" → package sdlc plugin
18
- - "I want to publish my plugin" → package and optionally publish
19
- - "create the plugin archive" → package without publishing
25
+ - "create the plugin wrapper" → package the generated provider wrapper
26
+ - "publish project-local plugin" → validate and package the repository-local wrapper
27
+ - "standalone plugin repository" → use the community/team repository workflow
20
28
 
21
29
  ## Trigger Patterns Reference
22
30
 
@@ -24,10 +32,10 @@ Alternate expressions and non-obvious activations (primary phrases are matched a
24
32
  |---------|---------|--------|
25
33
  | Package plugin | "package plugin sdlc" | Run `aiwg package-plugin sdlc` |
26
34
  | Bundle plugin | "bundle plugin voice" | Run `aiwg package-plugin voice` |
27
- | Publish plugin | "publish plugin marketing" | Run `aiwg package-plugin marketing --publish` |
28
35
  | Create package | "create plugin package utils" | Run `aiwg package-plugin utils` |
29
36
  | Dry run | "validate sdlc plugin before packaging" | Run `aiwg package-plugin sdlc --dry-run` |
30
- | With version bump | "package voice with new version" | Run `aiwg package-plugin voice --bump patch` |
37
+ | Standalone wrapper | "package project-local plugin team-tools" | Run `aiwg package-plugin team-tools --dry-run` |
38
+ | Explicit source | "package wrapper from wrappers/team-tools" | Run `aiwg package-plugin team-tools --source wrappers/team-tools` |
31
39
 
32
40
  ## Behavior
33
41
 
@@ -35,8 +43,8 @@ When triggered:
35
43
 
36
44
  1. **Extract intent**:
37
45
  - Which delivery wrapper is being packaged?
38
- - Should it be published after packaging, or just archived locally?
39
- - Is a version bump needed?
46
+ - Which provider wrapper is needed?
47
+ - Should existing generated output be cleaned first?
40
48
  - Is this a validation dry run?
41
49
 
42
50
  2. **Run the appropriate command**:
@@ -50,22 +58,24 @@ When triggered:
50
58
  # Validate only — no archive created
51
59
  aiwg package-plugin sdlc --dry-run
52
60
 
53
- # Package and publish to marketplace
54
- aiwg package-plugin sdlc --publish
61
+ # Build one provider-specific wrapper
62
+ aiwg package-plugin sdlc --provider codex
55
63
 
56
- # Bump version before packaging
57
- aiwg package-plugin voice --bump patch
58
- aiwg package-plugin voice --bump minor
64
+ # Clean generated output before rebuilding
65
+ aiwg package-plugin sdlc --clean
59
66
 
60
- # Specify output directory
61
- aiwg package-plugin sdlc --output dist/plugins/
67
+ # Standalone/project-local wrapper (auto-discovered)
68
+ aiwg package-plugin team-tools --provider all --output dist/plugins
69
+
70
+ # Explicit in-repository source
71
+ aiwg package-plugin team-tools --source wrappers/team-tools --provider codex
62
72
  ```
63
73
 
64
- 3. **Report the result** — confirm archive path, included file count, and publish status.
74
+ 3. **Report the result** — confirm generated wrapper path and included file counts.
65
75
 
66
76
  ## What the Package Contains
67
77
 
68
- A plugin package archive (`.aiwg-plugin.tar.gz`) is a delivery wrapper. It includes the manifest plus the payload files being distributed:
78
+ A generated plugin wrapper includes provider metadata plus the selected payload files:
69
79
 
70
80
  | Contents | Path in Archive |
71
81
  |----------|----------------|
@@ -101,7 +111,7 @@ Packaging fails if any validation step fails.
101
111
  aiwg package-plugin voice
102
112
  ```
103
113
 
104
- **Response**: "Packaged voice@aiwg v2026.4.0. Archive: dist/plugins/voice-2026.4.0.aiwg-plugin.tar.gz (42 files, 1.2MB). Metadata validation passed. Ready to publish with `aiwg package-plugin voice --publish`."
114
+ **Response**: "Generated the voice marketplace wrapper under `agentic/code/plugins/voice`."
105
115
 
106
116
  ### Example 2: Validate before packaging
107
117
 
@@ -116,34 +126,53 @@ aiwg package-plugin sdlc --dry-run
116
126
 
117
127
  **Response**: "Dry run: sdlc plugin metadata passed (58 agents, 42 commands, 12 skills, 33 rules validated). Ready to package. 1 warning: CHANGELOG.md not found — package will be created without it."
118
128
 
119
- ### Example 3: Package and publish in one step
129
+ ### Example 3: Package for Codex
120
130
 
121
- **User**: "Publish the marketing plugin to the marketplace"
131
+ **User**: "Build the marketing plugin for Codex"
122
132
 
123
- **Extraction**: Package and publish marketing plugin
133
+ **Extraction**: Package marketing for the Codex provider
124
134
 
125
135
  **Action**:
126
136
  ```bash
127
- aiwg package-plugin marketing --publish
137
+ aiwg package-plugin marketing --provider codex
128
138
  ```
129
139
 
130
- **Response**: "Packaged and published marketing@aiwg v2026.4.0 to the AIWG marketplace. Archive: dist/plugins/marketing-2026.4.0.aiwg-plugin.tar.gz. Registry updated."
140
+ **Response**: "Generated the Codex marketing wrapper under `agentic/code/plugins/marketing`."
131
141
 
132
- ### Example 4: Package with version bump
142
+ ### Example 4: Clean rebuild
133
143
 
134
- **User**: "Bump and package the utils plugin with a patch version"
144
+ **User**: "Clean and rebuild the utils plugin"
135
145
 
136
- **Extraction**: Bump patch version then package
146
+ **Extraction**: Remove prior generated output, then package
137
147
 
138
148
  **Action**:
139
149
  ```bash
140
- aiwg package-plugin utils --bump patch
150
+ aiwg package-plugin utils --clean
141
151
  ```
142
152
 
143
- **Response**: "Bumped utils version 2026.3.5 → 2026.4.0. Packaged. Archive: dist/plugins/utils-2026.4.0.aiwg-plugin.tar.gz."
153
+ **Response**: "Cleaned and regenerated the utils wrapper."
154
+
155
+ ## Standalone repository contract
156
+
157
+ The wrapper must contain `manifest.json` with `type: plugin` and a
158
+ `pluginConfig` declaring `payloadType` and traversal-safe `payloadPath`. The
159
+ payload requires its own matching manifest. Sources must remain inside the
160
+ current repository; symlink escapes and output collisions are rejected.
161
+ Payload files are copied byte-for-byte into deterministic Claude and/or Codex
162
+ archives.
163
+
164
+ See `docs/customization/standalone-plugin-repository.md` for the complete
165
+ scaffold, validation, install-smoke, versioning, licensing, and publication
166
+ workflow.
167
+
168
+ ## Unsupported legacy examples
169
+
170
+ `--publish` and `--bump` remain intentionally unsupported. Publish generated
171
+ archives through the repository's release workflow and change versions in the
172
+ authoritative wrapper/payload manifests before packaging.
144
173
 
145
174
  ## References
146
175
 
147
- - @$AIWG_ROOT/src/cli/handlers/utilities.ts — Command handler
176
+ - @$AIWG_ROOT/src/cli/handlers/subcommands.ts — Command handler
148
177
  - @$AIWG_ROOT/docs/cli-reference.md — CLI reference
149
178
  - @$AIWG_ROOT/docs/contributing/versioning.md — CalVer versioning rules
@@ -0,0 +1,48 @@
1
+ ---
2
+ namespace: aiwg
3
+ name: promote
4
+ platforms: [all]
5
+ description: Promote or graduate a project-local bundle to its upstream AIWG location or to a private corpus path.
6
+ triggers:
7
+ - promote bundle
8
+ - promote project-local
9
+ - graduate project-local bundle
10
+ - graduate to upstream
11
+ - project-local bundle
12
+ ---
13
+
14
+ # Promote Project-Local Bundle
15
+
16
+ Graduate a proven project-local bundle without losing its source provenance.
17
+
18
+ ## Behavior
19
+
20
+ 1. Identify the project-local bundle and its intended destination.
21
+ 2. Preview the copy and registry transition:
22
+
23
+ ```bash
24
+ aiwg promote <name> --dry-run
25
+ ```
26
+
27
+ 3. Promote to the declared upstream location or a private corpus:
28
+
29
+ ```bash
30
+ aiwg promote <name> --to upstream
31
+ aiwg promote <name> --to corpus <path>
32
+ ```
33
+
34
+ 4. Use `--cleanup` only when the project-local source should be removed after
35
+ successful promotion. Use `--force` only after reviewing a destination
36
+ conflict.
37
+
38
+ ## Safety
39
+
40
+ - Run `aiwg doctor` and a dry run before promotion.
41
+ - Promotion verifies the bundle manifest and destination before copying.
42
+ - Omit `--cleanup` to retain the project-local source.
43
+
44
+ ## References
45
+
46
+ - @$AIWG_ROOT/src/cli/handlers/subcommands.ts — `promote` command handler
47
+ - @$AIWG_ROOT/src/extensions/project-local-promote.ts — promotion implementation
48
+ - @$AIWG_ROOT/agentic/code/addons/aiwg-utils/skills/steward-quickref/SKILL.md
@@ -51,6 +51,7 @@ command output.
51
51
  | Create an addon | `aiwg discover "create an addon"` | `scaffold-addon` |
52
52
  | Build a framework | `aiwg discover "scaffold a framework"` | `scaffold-framework` |
53
53
  | Pilot then graduate a project-local bundle | `aiwg discover "project-local bundle"` | `new-bundle`, `promote` |
54
+ | Package a standalone/community plugin repository | `aiwg discover "standalone plugin repository"` | `package-plugin` |
54
55
 
55
56
  ## Domain 2 — Persona / SOUL identity (author **and** select)
56
57
 
@@ -2,13 +2,13 @@
2
2
  namespace: aiwg
3
3
  name: update
4
4
  platforms: [all]
5
- description: Update AIWG to the latest stable version and re-deploy all installed frameworks from the registry
5
+ description: Update AIWG through its install-aware updater and re-deploy all installed frameworks from the registry
6
6
 
7
7
  ---
8
8
 
9
9
  # AIWG Update
10
10
 
11
- You update AIWG to the latest stable version and re-deploy all installed frameworks from the registry.
11
+ You update AIWG through its canonical install-aware command and re-deploy all installed frameworks from the registry.
12
12
 
13
13
  ## Triggers
14
14
 
@@ -64,7 +64,10 @@ When triggered:
64
64
  ```
65
65
 
66
66
  Execution sequence:
67
- 1. Check npm/git for a newer version (unless `--skip-check`)
67
+ 1. Detect the active distribution and update safely (unless `--skip-check`)
68
+ - full `aiwg` npm package: preserve `stable`, `next`, or `nightly`
69
+ - lightweight `@aiwg/cli`: follow its signed web resource channel without replacing it with the full package
70
+ - source/dev checkout: print the supported Git/build workflow without overwriting the checkout
68
71
  2. Read `.aiwg/frameworks/registry.json` to find installed frameworks
69
72
  3. Re-deploy each installed framework via `aiwg use <framework> [--provider <name>]`
70
73
  4. Print update summary with per-framework pass/fail status
@@ -77,7 +80,7 @@ When triggered:
77
80
 
78
81
  | | `aiwg update` | `aiwg sync` |
79
82
  |---|---|---|
80
- | Target channel | Stable only (default) | Follows configured channel |
83
+ | Target channel | Preserves configured channel | Preserves or explicitly switches configured channel |
81
84
  | Scope | Installed frameworks only (default) | All deployed frameworks |
82
85
  | Typical use | "Get the latest stable release" | "Keep this session current" |
83
86
 
@@ -159,5 +162,5 @@ If the request is ambiguous between update and sync:
159
162
  ## References
160
163
 
161
164
  - @$AIWG_ROOT/src/cli/handlers/utilities.ts — Update command handler (updateHandler)
162
- - @$AIWG_ROOT/src/update/checker.mjs — npm/git update check logic
165
+ - @$AIWG_ROOT/src/update/service.mjs — install-aware update dispatch
163
166
  - @$AIWG_ROOT/docs/cli-reference.md — CLI reference
@@ -29,6 +29,9 @@ aiwg use media-curator
29
29
  # Create a research-grade transcript sidecar
30
30
  /transcribe-media /path/to/acquired-media.wav --source-url https://example.invalid/source
31
31
 
32
+ # Create a diarized transcript sidecar with anonymous speaker clusters
33
+ /diarize-media /path/to/acquired-media.wav --min-speakers 2 --max-speakers 2
34
+
32
35
  # Hand acquired media and transcript metadata to research-complete
33
36
  /induct-media metadata.json --transcript media.transcript.json --source-url https://example.invalid/source --storage hash-only
34
37
 
@@ -51,6 +54,7 @@ aiwg use media-curator
51
54
  | Multi-platform format export | (integrated) | `/export` |
52
55
  | SHA-256 integrity verification | (integrated) | `/verify-archive` |
53
56
  | Timestamped transcript sidecars | (integrated) | `/transcribe-media` |
57
+ | Speaker diarization sidecars | (integrated) | `/diarize-media` |
54
58
  | Research media handoff | (research-complete) | `/induct-media` |
55
59
 
56
60
  ## Architecture
@@ -88,6 +92,7 @@ media-curator/
88
92
  │ ├── cover-art-embedding.md # Artwork embedding
89
93
  │ ├── integrity-verification.md # SHA-256 manifests
90
94
  │ ├── transcribe-media.md # Transcript sidecars for research handoff
95
+ │ ├── diarize-media.md # Anonymous speaker-cluster diarization
91
96
  │ ├── gap-documentation.md # GAP-NOTE.md pattern
92
97
  │ └── provenance-tracking.md # W3C PROV-O for media
93
98
  ├── config/
@@ -0,0 +1,92 @@
1
+ ---
2
+ namespace: aiwg
3
+ platforms: [all]
4
+ name: diarize-media
5
+ description: Run local speaker diarization for acquired audio/video with WhisperX and pyannote, preserving anonymous speaker clusters in canonical transcript sidecars
6
+ script:
7
+ entrypoint: scripts/diarize_media.mjs
8
+ runtime: node
9
+ cwd: project-root
10
+ argsHint: "run --media <file> --output <sidecar.json> --credential-provider env:HF_TOKEN [--min-speakers N] [--max-speakers N]"
11
+ triggers:
12
+ - "speaker diarization audio"
13
+ - "diarize media"
14
+ - "diarize audio speakers"
15
+ - "diarize video speakers"
16
+ - "transcribe and diarize media speakers"
17
+ - "speaker clustering media"
18
+ category: media-curator
19
+ ---
20
+
21
+ # Diarize Media
22
+
23
+ Run local speaker diarization for acquired audio/video and write a canonical
24
+ `aiwg.media.transcript.v1` sidecar. This is a dedicated routing skill for the
25
+ diarization part of the media-curator transcript workflow.
26
+
27
+ ## What Diarization Means
28
+
29
+ Speaker diarization is anonymous clustering: it answers "which portions sound
30
+ like the same speaker?" with labels such as `SPEAKER_00` and `SPEAKER_01`.
31
+
32
+ Speaker identification is different: it maps an anonymous cluster to a verified
33
+ person. Do not replace anonymous labels with names unless acquisition metadata,
34
+ a human transcript, or explicit review evidence supports that mapping.
35
+
36
+ ## Executable Adapter
37
+
38
+ The bundled adapter uses WhisperX plus pyannote Community-1:
39
+
40
+ ```bash
41
+ HF_TOKEN="$TOKEN_FROM_OPERATOR_OR_VAULT" \
42
+ aiwg run skill diarize-media -- run \
43
+ --media /path/to/interview.wav \
44
+ --output .aiwg/media/transcripts/interview.transcript.json \
45
+ --credential-provider env:HF_TOKEN \
46
+ --min-speakers 2 \
47
+ --max-speakers 2
48
+ ```
49
+
50
+ The credential provider is a reference, not a token value. The adapter checks
51
+ the referenced environment variable before transcription starts, injects it into
52
+ the local WhisperX process environment, and never writes token values to argv,
53
+ disk, logs, state, provenance, or manifests.
54
+
55
+ ## Preflight
56
+
57
+ ```bash
58
+ aiwg run skill diarize-media -- preflight \
59
+ --media /path/to/interview.wav \
60
+ --output .aiwg/media/transcripts/interview.transcript.json \
61
+ --credential-provider env:HF_TOKEN \
62
+ --min-speakers 2 \
63
+ --max-speakers 2 \
64
+ --format json
65
+ ```
66
+
67
+ Preflight checks:
68
+ - media readability and source SHA-256
69
+ - output directory writability
70
+ - `whisperx` availability
71
+ - `ffmpeg` availability warning
72
+ - CPU/GPU capability reporting
73
+ - gated-model authorization through the named credential provider
74
+
75
+ Missing authorization emits `aiwg.media.transcript-plan.v1` with
76
+ `status: blocked-credential-missing` before the expensive STT stage.
77
+
78
+ ## Output And Degraded Mode
79
+
80
+ Successful runs produce the same canonical sidecar as `transcribe-media`, with
81
+ stable segment IDs, source and transcript hashes, tool provenance, anonymous
82
+ speaker labels, and quality limitations.
83
+
84
+ If WhisperX writes transcription/alignment JSON and then exits non-zero during
85
+ diarization, the adapter preserves the completed output as a valid sidecar with
86
+ `transcript.quality.status: degraded-diarization-failed`. If no native JSON is
87
+ available, it writes an actionable transcript plan instead of fabricating text.
88
+
89
+ ## References
90
+
91
+ - @$AIWG_ROOT/agentic/code/frameworks/media-curator/skills/transcribe-media/SKILL.md — Shared transcript sidecar schema and WhisperX adapter
92
+ - @$AIWG_ROOT/agentic/code/frameworks/media-curator/skills/provenance-tracking/SKILL.md — Provenance model for derived media artifacts
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import { main } from '../../transcribe-media/scripts/transcribe_media.mjs';
3
+
4
+ const code = await main(process.argv.slice(2), {
5
+ defaultDiarize: true,
6
+ activity: 'diarize-media',
7
+ });
8
+ process.exitCode = code;