Skip to content

Shrink workload-router: drop persona-domain re-exports (1.0.0)#79

Merged
willwashburn merged 2 commits intomainfrom
claude/submit-pr-for-issue-teqBO
May 11, 2026
Merged

Shrink workload-router: drop persona-domain re-exports (1.0.0)#79
willwashburn merged 2 commits intomainfrom
claude/submit-pr-for-issue-teqBO

Conversation

@willwashburn
Copy link
Copy Markdown
Member

Closes #68 (persona-kit 5/8).

Summary

Deletes every persona-shape symbol that @agentworkforce/workload-router was re-exporting from @agentworkforce/persona-kit. After this PR, workload-router only owns routing-domain code; persona constants, types, parsing, and skill materialization live exclusively in persona-kit.

What changed

packages/workload-router/src/index.ts

  • Dropped the export { ... } from '@agentworkforce/persona-kit' and export type { ... } from '@agentworkforce/persona-kit' blocks that forwarded:
    • Constants: HARNESS_VALUES, PERSONA_TIERS, PERSONA_TAGS, SIDECAR_MD_MODES, PERMISSION_MODES, CODEX_SANDBOX_MODES, CODEX_APPROVAL_POLICIES, SKILL_SOURCE_KINDS, HARNESS_SKILL_TARGETS, BUILT_IN_PERSONA_INTENTS, PERSONA_INTENTS.
    • Types: Harness, PersonaTier, PersonaTag, HarnessSettings, PersonaRuntime, PersonaSkill, PersonaInputSpec, PersonaPermissions, PersonaMount, McpServerSpec, PersonaSpec, HarnessSkillTarget, SkillMaterializationOptions, SkillInstall, SkillMaterializationPlan, PersonaInstallContext, PersonaContext, SidecarMdMode, CodexSandboxMode, CodexApprovalPolicy, PermissionMode, PersonaIntent, PersonaSelection, SkillSourceKind.
    • Functions: materializeSkills, materializeSkillsFor, parseSkills, parsePersonaSpec, buildInstallArtifacts, resolveSkillSource, resolveSidecar.

What stays in workload-router: RoutingProfile, RoutingProfileRule, RoutingProfileId, personaCatalog, listBuiltInPersonas, routingProfiles, resolvePersona, resolvePersonaByTier, usePersona, useSelection, and ./eval (evidence/owner-decision types).

Consumers updated to import persona-domain symbols directly from @agentworkforce/persona-kit:

  • packages/cli/src/launch-metadata.ts and launch-metadata.test.ts
  • packages/cli/src/local-personas.test.ts
  • packages/harness-kit/src/runner.ts and runner.test.ts
  • packages/workload-router/src/eval.ts (internal PersonaIntent / PersonaTier import)
  • packages/workload-router/src/index.test.ts

Version + changelog

  • packages/workload-router/package.json: 0.19.01.0.0 (breaking — no back-compat shim).
  • Added a 1.0.0 entry to packages/workload-router/CHANGELOG.md documenting the dropped surface.

Minor

  • Replaced a stale {@link import('@agentworkforce/workload-router').SkillMaterializationOptions...} JSDoc reference inside persona-kit with a local link.

Verification

  • pnpm -r build — all workspaces build clean.
  • pnpm -r test — 252/252 tests pass across persona-kit, workload-router, harness-kit, cli, and agentworkforce.
  • grep -rEn "from '@agentworkforce/workload-router'" packages/cli packages/persona-kit packages/harness-kit packages/agentworkforce — only listBuiltInPersonas, personaCatalog, routingProfiles, usePersona, useSelection, RoutingProfile, RoutingProfileId, and resolvePersona remain. No persona-domain symbols.

Notes

  • Relay's SDK still pins @agentworkforce/workload-router@^0.11.0; per the issue, that migration is relay-side and is intentionally untouched here.
  • packages/workload-router/src/generated/personas.ts and its build script are unchanged — the catalog stays.

Test plan

  • pnpm -r build
  • pnpm -r test
  • agentworkforce smoke test (claude/codex/opencode harnesses) — to be exercised post-merge per release flow

https://claude.ai/code/session_01KNNaWc1Mztn36DqDAxPfXv


Generated by Claude Code

Removes all persona-shape constants, types, and functions that were
previously forwarded from @agentworkforce/persona-kit through
@agentworkforce/workload-router. Consumers (workforce CLI, harness-kit,
and the workload-router test suite itself) now import those symbols
directly from persona-kit.

After this change, workload-router's public surface is routing-only:
RoutingProfile/RoutingProfileRule/RoutingProfileId, personaCatalog,
listBuiltInPersonas, routingProfiles, resolvePersona,
resolvePersonaByTier, usePersona, useSelection, and the evidence /
owner-decision exports from ./eval.

Breaking change for any external consumer that imported persona-domain
symbols from @agentworkforce/workload-router; no back-compat shim.
Version bumped 0.19.0 -> 1.0.0.

Closes #68
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 11, 2026

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c3b1358a-6dd2-4bb5-8d51-18d5040b18cc

📥 Commits

Reviewing files that changed from the base of the PR and between a959028 and f7954f3.

📒 Files selected for processing (1)
  • examples/openclaw-routing.ts
✅ Files skipped from review due to trivial changes (1)
  • examples/openclaw-routing.ts

📝 Walkthrough

Walkthrough

This PR removes persona-domain re-exports from @agentworkforce/workload-router, moves persona-type imports in consumers to @agentworkforce/persona-kit, updates docs/tests, and bumps workload-router to v1.0.0 to signal the breaking change.

Changes

Persona-Kit Consolidation

Layer / File(s) Summary
Core Breaking Change
packages/workload-router/src/index.ts, packages/workload-router/CHANGELOG.md
Removed persona-kit re-exports from workload-router index and documented the breaking change in CHANGELOG (v1.0.0).
Package Version Bump
packages/workload-router/package.json
Version updated from 0.19.0 to 1.0.0.
Workload-router Internal Imports
packages/workload-router/src/eval.ts, packages/workload-router/src/index.test.ts
Switched persona type imports to @agentworkforce/persona-kit and reordered imports in tests.
harness-kit Consumer Updates
packages/harness-kit/src/runner.ts, packages/harness-kit/src/runner.test.ts
runner.ts removes persona types from workload-router import and expands persona-kit imports; runner.test.ts updates PersonaSelection import source.
CLI Consumer Updates
packages/cli/src/launch-metadata.ts, packages/cli/src/launch-metadata.test.ts, packages/cli/src/local-personas.test.ts
CLI modules update persona-related type imports to @agentworkforce/persona-kit.
Persona-Kit Documentation Update
packages/persona-kit/src/interactive-spec.ts
JSDoc link for SkillMaterializationOptions.installRoot updated to remove explicit workload-router import qualifier.
Examples import cleanup
examples/openclaw-routing.ts
Split combined import into separate imports to match updated export locations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related issues

Possibly related PRs

Poem

A rabbit hops through the import lanes,
Routing profiles stay, personas move with grace,
From workload-router's shrinking reins,
To persona-kit's rightful place.
Version one, the breaking way—
Cleaner deps to code and play! 🐰

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: dropping persona-domain re-exports from workload-router and bumping to version 1.0.0.
Description check ✅ Passed The description is detailed and directly related to the changeset, covering what was deleted, what stays, and verification steps taken.
Linked Issues check ✅ Passed All coding objectives from issue #68 are met: persona-domain re-exports deleted from index.ts, internal imports updated to use persona-kit, version bumped to 1.0.0, and verification items completed.
Out of Scope Changes check ✅ Passed All changes are directly related to removing persona re-exports and updating consumers to import from persona-kit; no unrelated modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/submit-pr-for-issue-teqBO

Comment @coderabbitai help to get the list of available commands and usage tips.

The openclaw-routing example was still pulling PersonaIntent through
workload-router, which broke the examples typecheck after the
persona-domain re-exports were dropped.
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

@willwashburn willwashburn merged commit 02d4a32 into main May 11, 2026
2 checks passed
@willwashburn willwashburn deleted the claude/submit-pr-for-issue-teqBO branch May 11, 2026 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[persona-kit 5/8] Shrink @agentworkforce/workload-router (drop persona types, major bump)

2 participants