opencode-agenthub 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +373 -0
- package/dist/composer/bootstrap.js +493 -0
- package/dist/composer/builtin-assets.js +139 -0
- package/dist/composer/capabilities.js +20 -0
- package/dist/composer/compose.js +824 -0
- package/dist/composer/defaults.js +10 -0
- package/dist/composer/home-transfer.js +288 -0
- package/dist/composer/install-home.js +5 -0
- package/dist/composer/library/README.md +93 -0
- package/dist/composer/library/bundles/auto.json +18 -0
- package/dist/composer/library/bundles/build.json +17 -0
- package/dist/composer/library/bundles/hr-adapter.json +26 -0
- package/dist/composer/library/bundles/hr-cto.json +24 -0
- package/dist/composer/library/bundles/hr-evaluator.json +26 -0
- package/dist/composer/library/bundles/hr-planner.json +26 -0
- package/dist/composer/library/bundles/hr-sourcer.json +24 -0
- package/dist/composer/library/bundles/hr-verifier.json +26 -0
- package/dist/composer/library/bundles/hr.json +35 -0
- package/dist/composer/library/bundles/plan.json +19 -0
- package/dist/composer/library/instructions/hr-boundaries.md +38 -0
- package/dist/composer/library/instructions/hr-protocol.md +102 -0
- package/dist/composer/library/profiles/auto.json +9 -0
- package/dist/composer/library/profiles/hr.json +9 -0
- package/dist/composer/library/souls/auto.md +29 -0
- package/dist/composer/library/souls/build.md +21 -0
- package/dist/composer/library/souls/hr-adapter.md +64 -0
- package/dist/composer/library/souls/hr-cto.md +57 -0
- package/dist/composer/library/souls/hr-evaluator.md +64 -0
- package/dist/composer/library/souls/hr-planner.md +48 -0
- package/dist/composer/library/souls/hr-sourcer.md +70 -0
- package/dist/composer/library/souls/hr-verifier.md +62 -0
- package/dist/composer/library/souls/hr.md +186 -0
- package/dist/composer/library/souls/plan.md +23 -0
- package/dist/composer/library/workflow/auto-mode.json +139 -0
- package/dist/composer/model-utils.js +39 -0
- package/dist/composer/opencode-profile.js +2299 -0
- package/dist/composer/package-manager.js +75 -0
- package/dist/composer/package-version.js +20 -0
- package/dist/composer/platform.js +48 -0
- package/dist/composer/query.js +133 -0
- package/dist/composer/settings.js +400 -0
- package/dist/plugins/opencode-agenthub.js +310 -0
- package/dist/plugins/opencode-question.js +223 -0
- package/dist/plugins/plan-guidance.js +263 -0
- package/dist/plugins/runtime-config.js +57 -0
- package/dist/skills/agenthub-doctor/SKILL.md +238 -0
- package/dist/skills/agenthub-doctor/diagnose.js +213 -0
- package/dist/skills/agenthub-doctor/fix.js +293 -0
- package/dist/skills/agenthub-doctor/index.js +30 -0
- package/dist/skills/agenthub-doctor/interactive.js +756 -0
- package/dist/skills/hr-assembly/SKILL.md +121 -0
- package/dist/skills/hr-final-check/SKILL.md +98 -0
- package/dist/skills/hr-review/SKILL.md +100 -0
- package/dist/skills/hr-staffing/SKILL.md +85 -0
- package/dist/skills/hr-support/bin/sync_sources.py +560 -0
- package/dist/skills/hr-support/bin/validate_staged_package.py +290 -0
- package/dist/skills/hr-support/bin/vendor_stage_mcps.py +234 -0
- package/dist/skills/hr-support/bin/vendor_stage_skills.py +104 -0
- package/dist/types.js +11 -0
- package/package.json +54 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hr-assembly
|
|
3
|
+
description: "Adapt approved candidates into staged Agent Hub packages for test and promote"
|
|
4
|
+
audience: "HR adapter subagent"
|
|
5
|
+
license: MIT
|
|
6
|
+
compatibility: "opencode >= 0.1"
|
|
7
|
+
metadata:
|
|
8
|
+
domain: agent-assembly
|
|
9
|
+
version: "1.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# HR Assembly Protocol
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Generate a staged package under `$HR_HOME/staging/<package-id>/` without mutating imported home assets.
|
|
17
|
+
|
|
18
|
+
## Required Package Layout
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
$HR_HOME/staging/<package-id>/
|
|
22
|
+
handoff.json
|
|
23
|
+
promotion-memo.md
|
|
24
|
+
worker-card.json
|
|
25
|
+
agenthub-home/
|
|
26
|
+
bundles/
|
|
27
|
+
profiles/
|
|
28
|
+
souls/ or skills/
|
|
29
|
+
mcp/
|
|
30
|
+
mcp-servers/
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Staging Rules
|
|
34
|
+
|
|
35
|
+
- For **pure-soul agents**, stage a soul file plus bundle and profile.
|
|
36
|
+
- For **mixed soul+skill agents**, preserve specialized scope and prefer `subagent` mode unless the user explicitly wants otherwise.
|
|
37
|
+
- For **skill assets**, stage a skill directory plus a bundle/profile that preserves host selection requirements.
|
|
38
|
+
- If a staged bundle references a skill, stage that skill directory under `agenthub-home/skills/<skill-name>/` unless the package is explicitly documented as depending on a separately imported prerequisite package.
|
|
39
|
+
- If a staged bundle references an MCP tool, stage the matching `agenthub-home/mcp/<name>.json` registration file and the referenced `agenthub-home/mcp-servers/` implementation files. If the command relies on `mcp-servers/node_modules/...`, also stage `mcp-servers/package.json` so dependencies can be installed on import/promote.
|
|
40
|
+
- Do **not** invent runtime semantics in bundle `metadata`. Keys such as `optional_skills` or `runtime_conditional_skills` are notes only and are not valid substitutes for staged skills or real platform behavior.
|
|
41
|
+
- Prefer namespaced bundle/soul/profile names for adapted teams or rewrites so the package does not overwrite shared starter assets like `plan`, `build`, or `explore` unless the human explicitly requests replacement.
|
|
42
|
+
- If a staged profile sets `defaultAgent`, it must use the staged bundle's `agent.name` value, not the bundle filename. This matters when bundle filenames are namespaced but `agent.name` is shorter.
|
|
43
|
+
- Before final assembly, confirm whether the operator wants to keep default opencode agents such as `general`, `explore`, `plan`, and `build`. If not, the staged profile must set `"nativeAgentPolicy": "team-only"`. This suppresses host native agent merges and emits `disable: true` overrides for default opencode agents that are not supplied by the staged team itself.
|
|
44
|
+
- Before final assembly, confirm whether the promoted profile should become the default personal profile for future bare `agenthub start` runs. Record that choice in `handoff.json` under `promotion_preferences.set_default_profile`.
|
|
45
|
+
- If the operator specifies a model variant such as `xhigh`, `high`, or `thinking`, store it canonically as `agent.model: "provider/model"` plus `agent.variant: "..."`. For backward compatibility, combined strings like `"provider/model xhigh"` may still be accepted on read, but staged output should prefer the split form.
|
|
46
|
+
- The package must be promotable by:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
agenthub promote <package-id>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- Advanced/manual fallback remains:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
agenthub hub-import --source <package_root>/agenthub-home
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- Standard handoff must tell the operator to test the staged team before promote with:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
agenthub hr <profile-name>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- That test path must be described as a workspace runtime test that does not modify the operator's personal home.
|
|
65
|
+
- Standard handoff must also say that the same staged profile can be used in another workspace before promote by running the same command there.
|
|
66
|
+
- Promote must be described as the step that imports the package into the personal home so future bare `agenthub start` runs can use it.
|
|
67
|
+
|
|
68
|
+
## Required Handoff Fields
|
|
69
|
+
|
|
70
|
+
- `schema_version`
|
|
71
|
+
- `promotion_id`
|
|
72
|
+
- `worker_id`
|
|
73
|
+
- `asset_kind`
|
|
74
|
+
- `agent_class`
|
|
75
|
+
- `deployment_role`
|
|
76
|
+
- `target_profile`
|
|
77
|
+
- `proposed_profile`
|
|
78
|
+
- `package_layout_version`
|
|
79
|
+
- `artifacts`
|
|
80
|
+
- `generated_at`
|
|
81
|
+
- `promotion_preferences`
|
|
82
|
+
- `operator_instructions`
|
|
83
|
+
- `host_requirements` when MCP tools or other host-side dependencies exist
|
|
84
|
+
|
|
85
|
+
## Required Handoff Structure
|
|
86
|
+
|
|
87
|
+
`operator_instructions` must include:
|
|
88
|
+
|
|
89
|
+
- `test_current_workspace`
|
|
90
|
+
- `use_in_another_workspace`
|
|
91
|
+
- `promote`
|
|
92
|
+
- `advanced_import`
|
|
93
|
+
|
|
94
|
+
If MCP tools are referenced, `artifacts` must also include:
|
|
95
|
+
|
|
96
|
+
- `mcp_configs`
|
|
97
|
+
- `mcp_servers`
|
|
98
|
+
|
|
99
|
+
If MCP tools are referenced, `host_requirements` must explicitly state whether MCP servers are bundled and what runtime/environment dependencies remain on the host.
|
|
100
|
+
|
|
101
|
+
## Soul Adaptation Rule
|
|
102
|
+
|
|
103
|
+
When staging a **pure-soul** agent, the adapted soul must explicitly list:
|
|
104
|
+
|
|
105
|
+
- the intended skill set
|
|
106
|
+
- the intended tool set
|
|
107
|
+
- the agent's boundaries
|
|
108
|
+
|
|
109
|
+
This prevents vague souls that only describe personality.
|
|
110
|
+
|
|
111
|
+
## Mandatory Validation
|
|
112
|
+
|
|
113
|
+
Before you present a staged package as ready, run all of the following from the workspace root:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
python3 $HR_HOME/bin/vendor_stage_skills.py $HR_HOME/staging/<package-id>
|
|
117
|
+
python3 $HR_HOME/bin/vendor_stage_mcps.py $HR_HOME/staging/<package-id>
|
|
118
|
+
python3 $HR_HOME/bin/validate_staged_package.py $HR_HOME/staging/<package-id>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If validation fails, the package is not ready.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hr-final-check
|
|
3
|
+
description: "Final package QA checklist for clarity, safety, and import readiness"
|
|
4
|
+
audience: "HR verifier subagent"
|
|
5
|
+
license: MIT
|
|
6
|
+
compatibility: "opencode >= 0.1"
|
|
7
|
+
metadata:
|
|
8
|
+
domain: agent-qa
|
|
9
|
+
version: "1.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# HR Final Check Protocol
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Verify that a staged package is understandable and safe before the human operator approves it.
|
|
17
|
+
|
|
18
|
+
## Required Checklist Sections
|
|
19
|
+
|
|
20
|
+
1. package completeness
|
|
21
|
+
2. provenance completeness
|
|
22
|
+
3. bundle/profile coherence
|
|
23
|
+
4. soul clarity
|
|
24
|
+
5. skill clarity
|
|
25
|
+
6. MCP completeness and host-runtime clarity
|
|
26
|
+
7. deployment role correctness
|
|
27
|
+
8. unresolved risks / open decisions
|
|
28
|
+
9. import-root and assemble-only validation
|
|
29
|
+
10. runtime/default-profile confirmation
|
|
30
|
+
11. protocol-compliance checkpoints
|
|
31
|
+
|
|
32
|
+
## Clarity Definitions
|
|
33
|
+
|
|
34
|
+
### Subagent description clear
|
|
35
|
+
|
|
36
|
+
All of the following must be true:
|
|
37
|
+
|
|
38
|
+
- the description states what the subagent does
|
|
39
|
+
- the description states its scope or boundary
|
|
40
|
+
- the description does not overlap ambiguously with another staged subagent
|
|
41
|
+
|
|
42
|
+
### Skill description clear
|
|
43
|
+
|
|
44
|
+
All of the following must be true:
|
|
45
|
+
|
|
46
|
+
- the description states when to use the skill
|
|
47
|
+
- the description states what procedure it performs
|
|
48
|
+
- the description states what output or result the user/operator should expect
|
|
49
|
+
|
|
50
|
+
## Final Output
|
|
51
|
+
|
|
52
|
+
Write `final-checklist.md` and end with a human-facing status:
|
|
53
|
+
|
|
54
|
+
- `READY FOR HUMAN CONFIRMATION`
|
|
55
|
+
- `READY WITH CAVEATS`
|
|
56
|
+
- `NOT READY`
|
|
57
|
+
|
|
58
|
+
## Compact Checklist Shape
|
|
59
|
+
|
|
60
|
+
Keep `final-checklist.md` compact and explicit. Use this shape:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
## Final Checklist - <package-id>
|
|
64
|
+
| Check | Result |
|
|
65
|
+
|---|---|
|
|
66
|
+
| import root is agenthub-home/ | pass/fail |
|
|
67
|
+
| no unsupported concepts | pass/fail |
|
|
68
|
+
| soul skill/tool sets declared | pass/fail |
|
|
69
|
+
| descriptions are operator-readable | pass/fail |
|
|
70
|
+
| MCP registrations resolve to staged servers or blocker | pass/fail |
|
|
71
|
+
| handoff clearly separates test/use/promote | pass/fail |
|
|
72
|
+
| model preferences were explicitly collected | pass/fail |
|
|
73
|
+
| final names were user-confirmed | pass/fail |
|
|
74
|
+
| specialized work was delegated | pass/fail |
|
|
75
|
+
| staged model ids validated against synced catalog | pass/fail |
|
|
76
|
+
| profile defaultAgent matches bundle agent.name | pass/fail |
|
|
77
|
+
| default opencode agent policy confirmed | pass/fail |
|
|
78
|
+
| default profile on promote confirmed | pass/fail |
|
|
79
|
+
| no host project mutations | pass/fail |
|
|
80
|
+
overall: READY FOR HUMAN CONFIRMATION | READY WITH CAVEATS | NOT READY
|
|
81
|
+
blocker: <description or none>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Hard Validation Rule
|
|
85
|
+
|
|
86
|
+
The package cannot be marked ready unless the verifier confirms:
|
|
87
|
+
|
|
88
|
+
1. the handoff shows: (a) staging path, (b) test command `agenthub hr <profile>`, (c) promote command `agenthub promote <package-id>`
|
|
89
|
+
2. the manual import fallback points to `<package-root>/agenthub-home` and is described as advanced/manual only
|
|
90
|
+
3. all referenced skills either exist inside the staged `skills/` directory or are explicitly rejected as missing blockers
|
|
91
|
+
4. `python3 $HR_HOME/bin/validate_staged_package.py $HR_HOME/staging/<package-id>` passes
|
|
92
|
+
5. the package explicitly records whether default opencode agents are kept or hidden, and whether the promoted profile should become the default profile
|
|
93
|
+
6. staged model ids either match the synced catalog exactly or are called out as blockers/caveats for human review
|
|
94
|
+
7. if any bundle references MCP tools, the staged package includes the referenced `mcp/*.json` files, the required `mcp-servers/` implementation files, and `mcp-servers/package.json` when runtime dependencies are needed
|
|
95
|
+
8. the handoff clearly shows how to test/use the staged profile in a workspace before promote, and promote is not described as mandatory for workspace use
|
|
96
|
+
9. if a profile sets `defaultAgent`, that value exactly matches one of the staged bundles' `agent.name` values (not just the bundle filename)
|
|
97
|
+
|
|
98
|
+
If bundle metadata contains fake runtime keys such as `optional_skills` or `runtime_conditional_skills`, mark the package `NOT READY` until they are removed or rewritten as plain documentation outside runtime bundle semantics.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hr-review
|
|
3
|
+
description: "Review local inventory workers for security, compatibility, testing readiness, and description clarity"
|
|
4
|
+
audience: "HR evaluator subagent"
|
|
5
|
+
license: MIT
|
|
6
|
+
compatibility: "opencode >= 0.1"
|
|
7
|
+
metadata:
|
|
8
|
+
domain: agent-review
|
|
9
|
+
version: "1.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# HR Review Protocol
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Update a local inventory worker card and write review notes for a single candidate.
|
|
17
|
+
|
|
18
|
+
## Output Files
|
|
19
|
+
|
|
20
|
+
Read and update:
|
|
21
|
+
|
|
22
|
+
- `$HR_HOME/inventory/workers/<candidate-slug>.json`
|
|
23
|
+
|
|
24
|
+
Write:
|
|
25
|
+
|
|
26
|
+
- `$HR_HOME/inventory/workers/<candidate-slug>.review.md`
|
|
27
|
+
|
|
28
|
+
## Compact Review Shape
|
|
29
|
+
|
|
30
|
+
Keep `<candidate-slug>.review.md` compact and field-based. Use this shape:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
## <candidate-slug> Review
|
|
34
|
+
fit: <high|medium|low>
|
|
35
|
+
agent_class: <pure-soul|mixed-soul-skill|skill>
|
|
36
|
+
deployment_role: <primary-capable|subagent-preferred|skill-attachment>
|
|
37
|
+
risk_tier: <low|medium|high>
|
|
38
|
+
testing_readiness: <ready|partial|unclear>
|
|
39
|
+
description_clarity: <clear|needs-clarification|unclear>
|
|
40
|
+
gaps: <comma list or none>
|
|
41
|
+
notes: <1-2 sentences>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Required Worker Card Keys
|
|
45
|
+
|
|
46
|
+
- `schema_version`
|
|
47
|
+
- `candidate_slug`
|
|
48
|
+
- `worker_id`
|
|
49
|
+
- `name`
|
|
50
|
+
- `summary`
|
|
51
|
+
- `source_id`
|
|
52
|
+
- `source_path`
|
|
53
|
+
- `source_commit`
|
|
54
|
+
- `inventory_status`
|
|
55
|
+
- `asset_kind`
|
|
56
|
+
- `agent_class`
|
|
57
|
+
- `deployment_role`
|
|
58
|
+
- `type`
|
|
59
|
+
- `hire_shape`
|
|
60
|
+
- `host_requirement`
|
|
61
|
+
- `self_contained`
|
|
62
|
+
- `compatibility`
|
|
63
|
+
- `risk_tier`
|
|
64
|
+
- `testing_readiness`
|
|
65
|
+
- `description_clarity`
|
|
66
|
+
- `recommended_hosts`
|
|
67
|
+
- `flags`
|
|
68
|
+
- `artifacts`
|
|
69
|
+
|
|
70
|
+
## Inventory Status Values
|
|
71
|
+
|
|
72
|
+
- `draft`
|
|
73
|
+
- `available`
|
|
74
|
+
- `retired`
|
|
75
|
+
|
|
76
|
+
Use `draft` when first discovered or still incomplete, `available` when reviewed and fit for staffing, and `retired` when kept for reference but excluded from staffing.
|
|
77
|
+
|
|
78
|
+
## Review Dimensions
|
|
79
|
+
|
|
80
|
+
1. **Provenance** — can the source be traced cleanly?
|
|
81
|
+
2. **Security** — prompt injection, dangerous shell or code instructions, hidden external dependencies
|
|
82
|
+
3. **Compatibility** — can this become a native Agent Hub asset without pretending it is something else?
|
|
83
|
+
4. **Testing readiness** — are there enough instructions to test or verify the adapted asset?
|
|
84
|
+
5. **Clarity**
|
|
85
|
+
- **subagent description clear** = the description states scope, inputs, outputs, and limits
|
|
86
|
+
- **skill description clear** = the description states trigger/use-case, procedure, and expected output
|
|
87
|
+
|
|
88
|
+
Update `inventory_status` conservatively. Do not mark a worker `available` when provenance, safety, or clarity remain unresolved.
|
|
89
|
+
|
|
90
|
+
## Clarity Ratings
|
|
91
|
+
|
|
92
|
+
- `clear`
|
|
93
|
+
- `needs-clarification`
|
|
94
|
+
- `unclear`
|
|
95
|
+
|
|
96
|
+
## Agent Class Rules
|
|
97
|
+
|
|
98
|
+
- `pure-soul` when the candidate is primarily an identity/behavior contract and can host multiple tasks.
|
|
99
|
+
- `mixed-soul-skill` when identity and specialized workflow are fused and should usually stay narrow.
|
|
100
|
+
- `skill` assets are attachments and must not be upgraded into full agents without explicit adaptation work.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hr-staffing
|
|
3
|
+
description: "Build staffing plans for pure-soul agents, mixed soul+skill agents, and skill attachments"
|
|
4
|
+
audience: "HR planner subagent"
|
|
5
|
+
license: MIT
|
|
6
|
+
compatibility: "opencode >= 0.1"
|
|
7
|
+
metadata:
|
|
8
|
+
domain: agent-staffing
|
|
9
|
+
version: "1.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# HR Staffing Protocol
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Produce a staffing plan that is advisory, explicit, and downstream-compatible with Agent Hub composition.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
This skill must not be invoked until the parent HR agent has completed `Stage 1 - REQUIREMENTS` and the user has confirmed the requirements summary. If requirements are still ambiguous, return that gap to the parent instead of pretending the plan is ready.
|
|
21
|
+
|
|
22
|
+
## Output Files
|
|
23
|
+
|
|
24
|
+
Write the latest plan to:
|
|
25
|
+
|
|
26
|
+
- `$HR_HOME/state/staffing-plans/latest.json`
|
|
27
|
+
- `$HR_HOME/state/staffing-plans/latest.md`
|
|
28
|
+
|
|
29
|
+
## Required Plan Structure
|
|
30
|
+
|
|
31
|
+
Every staffing plan must include:
|
|
32
|
+
|
|
33
|
+
- `schema_version`
|
|
34
|
+
- `task_summary`
|
|
35
|
+
- `recommended_team`
|
|
36
|
+
- `alternatives`
|
|
37
|
+
- `composition`
|
|
38
|
+
- `required_skills`
|
|
39
|
+
- `required_tools`
|
|
40
|
+
- `suggested_model_provider`
|
|
41
|
+
- `proposed_agent_models` (initial proposal only; final per-agent defaults require user confirmation later)
|
|
42
|
+
- `draft_names` (draft agent names and draft profile name for user review)
|
|
43
|
+
- `risks`
|
|
44
|
+
- `next_action`
|
|
45
|
+
|
|
46
|
+
## Compact Summary Shape
|
|
47
|
+
|
|
48
|
+
Keep `latest.md` compact and field-based. Use this shape:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
recommended:
|
|
52
|
+
- role: ... | source: ... | agent_class: ... | model: ...
|
|
53
|
+
alternatives:
|
|
54
|
+
- ...
|
|
55
|
+
composition:
|
|
56
|
+
- ...
|
|
57
|
+
draft_names:
|
|
58
|
+
- seat: ... | proposed_agent_name: ... | reason: ...
|
|
59
|
+
- profile: ... | reason: ...
|
|
60
|
+
proposed_agent_models:
|
|
61
|
+
- agent: ... | model: ...
|
|
62
|
+
risks:
|
|
63
|
+
- ...
|
|
64
|
+
next_action: ...
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Composition Rules
|
|
68
|
+
|
|
69
|
+
For each recommended entry, specify:
|
|
70
|
+
|
|
71
|
+
- `asset_kind`: `agent` or `skill`
|
|
72
|
+
- `agent_class`: `pure-soul`, `mixed-soul-skill`, or `not-applicable`
|
|
73
|
+
- `deployment_role`: `primary-capable`, `subagent-preferred`, or `skill-attachment`
|
|
74
|
+
- `compatibility`: `native-ready`, `needs-adaptation`, or `skill-only`
|
|
75
|
+
|
|
76
|
+
## Decision Rules
|
|
77
|
+
|
|
78
|
+
- Prefer the smallest team that can cover planning, sourcing/exploration, implementation, audit, verification, and documentation.
|
|
79
|
+
- Prefer local worker cards from `$HR_HOME/inventory/workers/` with `inventory_status = available`.
|
|
80
|
+
- Treat `draft` worker cards as sourcing inputs that still need review or explicit operator acceptance.
|
|
81
|
+
- Exclude `retired` worker cards from recommended staffing compositions.
|
|
82
|
+
- Treat user-supplied model names as advisory until checked against `$HR_HOME/inventory/models/catalog.json` or `$HR_HOME/inventory/models/valid-model-ids.txt`. If an exact catalog match is missing, mark the proposal unresolved instead of inventing a model id.
|
|
83
|
+
- If multiple valid compositions exist, present them as options rather than pretending one is certain.
|
|
84
|
+
- If a skill host is unresolved, say so plainly.
|
|
85
|
+
- Draft names must be treated as proposals only. The parent HR agent must show them to the user and get confirmation before adaptation starts.
|