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.
- package/agentic/code/addons/aiwg-utils/rules/subagent-scoping.md +17 -5
- package/agentic/code/addons/aiwg-utils/skills/new-bundle/SKILL.md +53 -0
- package/agentic/code/addons/aiwg-utils/skills/package-all-plugins/SKILL.md +28 -33
- package/agentic/code/addons/aiwg-utils/skills/package-plugin/SKILL.md +58 -29
- package/agentic/code/addons/aiwg-utils/skills/promote/SKILL.md +48 -0
- package/agentic/code/addons/aiwg-utils/skills/steward-quickref/SKILL.md +1 -0
- package/agentic/code/addons/aiwg-utils/skills/update/SKILL.md +8 -5
- package/agentic/code/frameworks/media-curator/README.md +5 -0
- package/agentic/code/frameworks/media-curator/skills/diarize-media/SKILL.md +92 -0
- package/agentic/code/frameworks/media-curator/skills/diarize-media/scripts/diarize_media.mjs +8 -0
- package/agentic/code/frameworks/media-curator/skills/media-curator-quickref/SKILL.md +2 -1
- package/agentic/code/frameworks/media-curator/skills/transcribe-media/SKILL.md +60 -1
- package/agentic/code/frameworks/media-curator/skills/transcribe-media/scripts/transcribe_media.mjs +463 -0
- package/agentic/code/plugins/media-curator/README.md +8 -0
- package/agentic/code/plugins/media-curator/skills/diarize-media/SKILL.md +92 -0
- package/agentic/code/plugins/media-curator/skills/diarize-media/scripts/diarize_media.mjs +8 -0
- package/agentic/code/plugins/media-curator/skills/media-curator-quickref/SKILL.md +2 -1
- package/agentic/code/plugins/media-curator/skills/transcribe-media/SKILL.md +60 -1
- package/agentic/code/plugins/media-curator/skills/transcribe-media/scripts/transcribe_media.mjs +463 -0
- package/agentic/code/plugins/utils/skills/new-bundle/SKILL.md +53 -0
- package/agentic/code/plugins/utils/skills/package-all-plugins/SKILL.md +28 -33
- package/agentic/code/plugins/utils/skills/package-plugin/SKILL.md +58 -29
- package/agentic/code/plugins/utils/skills/promote/SKILL.md +48 -0
- package/agentic/code/plugins/utils/skills/steward-quickref/SKILL.md +1 -0
- package/agentic/code/plugins/utils/skills/update/SKILL.md +8 -5
- package/dist/src/artifacts/cli.js +59 -5
- package/dist/src/artifacts/discover-facets.js +15 -0
- package/dist/src/artifacts/discovery-eval.js +290 -0
- package/dist/src/artifacts/fortemi-core-query-adapter.js +1 -1
- package/dist/src/artifacts/fortemi-shard-export.js +1 -1
- package/dist/src/artifacts/query-engine.js +10 -6
- package/dist/src/cli/handlers/help.js +2 -1
- package/dist/src/cli/handlers/index.js +3 -1
- package/dist/src/cli/handlers/resource-versions.js +247 -0
- package/dist/src/cli/handlers/subcommands.js +55 -3
- package/dist/src/cli/handlers/use.js +15 -3
- package/dist/src/cli/handlers/utilities.js +27 -26
- package/dist/src/config/cli.js +13 -9
- package/dist/src/config/project-artifacts-runtime.mjs +68 -0
- package/dist/src/config/project-artifacts.js +1 -68
- package/dist/src/extensions/commands/definitions.js +36 -2
- package/dist/src/extensions/project-local-discovery.js +86 -2
- package/dist/src/extensions/project-local-remove.js +52 -56
- package/dist/src/extensions/shadow-resolver.js +3 -1
- package/dist/src/plugins/standalone-packager.js +143 -0
- package/dist/src/resources/cache-cleanup.js +67 -0
- package/dist/src/resources/doctor.js +107 -0
- package/dist/src/resources/lockfile.js +125 -0
- package/dist/src/resources/resolver.js +133 -0
- package/dist/src/resources/web-release.d.ts +8 -0
- package/dist/src/resources/web-release.js +159 -1
- package/dist/src/smiths/context-pipeline/aiwg-md.js +5 -1
- package/dist/src/smiths/context-pipeline/claude-hook.js +21 -1
- package/dist/src/smiths/context-pipeline/finalization.js +5 -3
- package/dist/src/smiths/context-pipeline/generator.js +4 -1
- package/dist/src/smiths/context-pipeline/parallelism-section.js +34 -1
- package/dist/src/smiths/context-pipeline/workspace-context.js +15 -3
- package/dist/src/smiths/mcpsmith/example.js +3 -1
- package/dist/src/smiths/mcpsmith/generator.js +3 -1
- package/dist/src/smiths/toolsmith/runtime-discovery.mjs +2 -1
- package/dist/src/storage/cli.js +3 -2
- package/dist/src/storage/subsystem-cli.js +7 -2
- package/dist/src/update/notifier.mjs +1 -1
- package/dist/src/update/service.mjs +123 -0
- package/docs/CLI_USAGE.md +43 -10
- package/docs/_manifest.json +8 -0
- package/docs/addons/aiwg-utils/agent-examples/aiwg-steward-examples.md +13 -12
- package/docs/addons/aiwg-utils/agent-examples/aiwg-steward-routing-reference.md +110 -8
- package/docs/addons/aiwg-utils/agent-examples.md +12 -12
- package/docs/architecture-overview.md +6 -5
- package/docs/cli-reference.md +21 -9
- package/docs/configuration/model-configuration.md +10 -0
- package/docs/contributing/secret-rotation.md +3 -1
- package/docs/contributing/versioning.md +40 -3
- package/docs/customization/standalone-plugin-repository.md +72 -0
- package/docs/discovery-and-kernel-skills.md +36 -3
- package/docs/frameworks/ops-complete/extensions-guide.md +36 -36
- package/docs/frameworks/ops-complete/overview.md +1 -1
- package/docs/frameworks/ops-complete/quickstart.md +0 -2
- package/docs/frameworks/sdlc-complete/orchestrator-architecture.md +62 -483
- package/docs/how-it-works.md +2 -2
- package/docs/install/web-backed-resources.md +203 -10
- package/docs/integrations/fortemi-index-export.md +29 -7
- package/docs/references/README.md +35 -7
- package/docs/references/REF-067-semver-2.md +56 -0
- package/docs/references/REF-068-npm-dist-tags-lockfile-integrity.md +62 -0
- package/docs/references/REF-069-oci-distribution-spec.md +54 -0
- package/docs/references/REF-070-oci-image-spec.md +56 -0
- package/docs/references/REF-071-w3c-subresource-integrity.md +51 -0
- package/docs/references/REF-072-the-update-framework.md +68 -0
- package/docs/references/REF-073-cryptographic-registry-provenance.md +58 -0
- package/docs/references/REF-074-signing-is-not-enough-provenance-graph.md +56 -0
- package/docs/references/REF-075-supply-chain-poisoning-agent-skills.md +58 -0
- package/docs/references/_manifest.json +11 -1
- package/docs/references/acquisition-status-web-resource-distribution.md +42 -0
- package/docs/releases/v2026.7.18-announcement.md +16 -0
- package/docs/releases/v2026.7.19-announcement.md +68 -0
- package/docs/releases/v2026.7.20-announcement.md +67 -0
- package/docs/reports/agentskills-adoption-issue-plan-2026-07-25.md +228 -0
- package/docs/reports/agentskills-standard-audit-2026-07-25.md +329 -0
- package/docs/reports/discovery-relevance-decision-2026-07-25.md +92 -0
- package/docs/research/architecture-rationale.md +1 -1
- package/docs/research/research-background.md +1 -1
- package/package.json +4 -2
- package/prebuilt/fortemi-core/framework/aiwg-fortemi-index-v2.json +1 -1
- package/prebuilt/fortemi-core/framework/manifest.json +2 -2
- package/tools/agents/providers/base.mjs +2 -1
- package/tools/cli/update.mjs +14 -64
- 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
|
|
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:
|
|
30
|
-
When N
|
|
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
|
-
|
|
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
|
|
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
|
-
-
|
|
39
|
-
- Should
|
|
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
|
|
52
|
-
aiwg package-all-plugins --
|
|
48
|
+
# Package all Codex wrappers
|
|
49
|
+
aiwg package-all-plugins --provider codex
|
|
53
50
|
|
|
54
|
-
#
|
|
55
|
-
aiwg package-all-plugins --
|
|
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 ✓
|
|
72
|
-
voice ✓
|
|
73
|
-
marketing ✓
|
|
74
|
-
utils ✗ failed
|
|
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
|
-
|
|
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`
|
|
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**: "
|
|
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
|
|
107
|
+
### Example 3: Package every Codex wrapper
|
|
117
108
|
|
|
118
|
-
**User**: "Package
|
|
109
|
+
**User**: "Package every plugin for Codex"
|
|
119
110
|
|
|
120
|
-
**Extraction**: Batch package
|
|
111
|
+
**Extraction**: Batch package for Codex
|
|
121
112
|
|
|
122
113
|
**Action**:
|
|
123
114
|
```bash
|
|
124
|
-
aiwg package-all-plugins --
|
|
115
|
+
aiwg package-all-plugins --provider codex
|
|
125
116
|
```
|
|
126
117
|
|
|
127
|
-
**Response**: "
|
|
118
|
+
**Response**: "Generated every supported Codex plugin wrapper."
|
|
128
119
|
|
|
129
|
-
### Example 4:
|
|
120
|
+
### Example 4: Clean rebuild
|
|
130
121
|
|
|
131
|
-
**User**: "
|
|
122
|
+
**User**: "Clean and rebuild all plugin wrappers"
|
|
132
123
|
|
|
133
|
-
**Extraction**:
|
|
124
|
+
**Extraction**: Clean existing generated output and rebuild
|
|
134
125
|
|
|
135
126
|
**Action**:
|
|
136
127
|
```bash
|
|
137
|
-
aiwg package-all-plugins --
|
|
128
|
+
aiwg package-all-plugins --clean
|
|
138
129
|
```
|
|
139
130
|
|
|
140
|
-
**Response**: "
|
|
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/
|
|
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:
|
|
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
|
|
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
|
-
- "
|
|
19
|
-
- "
|
|
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
|
-
|
|
|
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
|
-
-
|
|
39
|
-
-
|
|
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
|
-
#
|
|
54
|
-
aiwg package-plugin sdlc --
|
|
61
|
+
# Build one provider-specific wrapper
|
|
62
|
+
aiwg package-plugin sdlc --provider codex
|
|
55
63
|
|
|
56
|
-
#
|
|
57
|
-
aiwg package-plugin
|
|
58
|
-
aiwg package-plugin voice --bump minor
|
|
64
|
+
# Clean generated output before rebuilding
|
|
65
|
+
aiwg package-plugin sdlc --clean
|
|
59
66
|
|
|
60
|
-
#
|
|
61
|
-
aiwg package-plugin
|
|
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
|
|
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
|
|
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**: "
|
|
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
|
|
129
|
+
### Example 3: Package for Codex
|
|
120
130
|
|
|
121
|
-
**User**: "
|
|
131
|
+
**User**: "Build the marketing plugin for Codex"
|
|
122
132
|
|
|
123
|
-
**Extraction**: Package
|
|
133
|
+
**Extraction**: Package marketing for the Codex provider
|
|
124
134
|
|
|
125
135
|
**Action**:
|
|
126
136
|
```bash
|
|
127
|
-
aiwg package-plugin marketing --
|
|
137
|
+
aiwg package-plugin marketing --provider codex
|
|
128
138
|
```
|
|
129
139
|
|
|
130
|
-
**Response**: "
|
|
140
|
+
**Response**: "Generated the Codex marketing wrapper under `agentic/code/plugins/marketing`."
|
|
131
141
|
|
|
132
|
-
### Example 4:
|
|
142
|
+
### Example 4: Clean rebuild
|
|
133
143
|
|
|
134
|
-
**User**: "
|
|
144
|
+
**User**: "Clean and rebuild the utils plugin"
|
|
135
145
|
|
|
136
|
-
**Extraction**:
|
|
146
|
+
**Extraction**: Remove prior generated output, then package
|
|
137
147
|
|
|
138
148
|
**Action**:
|
|
139
149
|
```bash
|
|
140
|
-
aiwg package-plugin utils --
|
|
150
|
+
aiwg package-plugin utils --clean
|
|
141
151
|
```
|
|
142
152
|
|
|
143
|
-
**Response**: "
|
|
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/
|
|
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
|
|
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
|
|
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.
|
|
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 |
|
|
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/
|
|
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
|