@zonease/aiworker-cli 0.15.2 → 0.16.1
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/aiworker-bun.js +231 -221
- package/official-apps/aiworker-hr/dist/index.js +194 -79
- package/official-apps/aiworker-hr/dist/{host-mounted.js → mounted/host-mounted.js} +195 -80
- package/official-apps/aiworker-hr/dist/{standalone.js → standalone/standalone.js} +195 -80
- package/official-apps/aiworker-hr/engine-assets/workspace/AGENTS.md +38 -0
- package/official-apps/aiworker-hr/engine-assets/workspace/CLAUDE.md +1 -0
- package/official-apps/aiworker-hr/engine-assets/workspace/README.md +17 -0
- package/official-apps/aiworker-hr/engine-assets/workspace/evidence/README.md +3 -0
- package/official-apps/aiworker-hr/{src → host-adapter}/index.ts +2 -2
- package/official-apps/aiworker-hr/{src → host-adapter/mounted}/host-mounted.ts +1 -1
- package/official-apps/aiworker-hr/{src → host-adapter/standalone}/standalone.ts +1 -1
- package/official-apps/aiworker-hr/package.json +7 -7
- package/official-apps/aiworker-hr/soul-app.manifest.json +38 -26
- package/official-apps/aiworker-hr/tsconfig.json +2 -2
- package/official-apps/aiworker-qa/dist/index.js +194 -79
- package/official-apps/aiworker-qa/dist/{host-mounted.js → mounted/host-mounted.js} +195 -80
- package/official-apps/aiworker-qa/dist/{standalone.js → standalone/standalone.js} +195 -80
- package/official-apps/aiworker-qa/engine-assets/skills/.gitkeep +1 -0
- package/official-apps/aiworker-qa/engine-assets/workspace/AGENTS.md +38 -0
- package/official-apps/aiworker-qa/engine-assets/workspace/CLAUDE.md +1 -0
- package/official-apps/aiworker-qa/engine-assets/workspace/README.md +17 -0
- package/official-apps/aiworker-qa/engine-assets/workspace/evidence/README.md +3 -0
- package/official-apps/aiworker-qa/{src → host-adapter}/index.ts +2 -2
- package/official-apps/aiworker-qa/{src → host-adapter/mounted}/host-mounted.ts +1 -1
- package/official-apps/aiworker-qa/{src → host-adapter/standalone}/standalone.ts +1 -1
- package/official-apps/aiworker-qa/package.json +7 -7
- package/official-apps/aiworker-qa/soul-app.manifest.json +38 -26
- package/official-apps/aiworker-qa/tsconfig.json +2 -2
- package/package.json +1 -1
- /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/candidate-profile/SKILL.md +0 -0
- /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/evidence-screening/SKILL.md +0 -0
- /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/hiring-risk-review/SKILL.md +0 -0
- /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/interview-brief/SKILL.md +0 -0
- /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/profile-update-proposal/SKILL.md +0 -0
- /package/official-apps/aiworker-hr/{src → host-adapter}/api.ts +0 -0
- /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/artifact.ts +0 -0
- /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/connectors.ts +0 -0
- /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/lifecycle.ts +0 -0
- /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/review.ts +0 -0
- /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/runtime.ts +0 -0
- /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/ui.ts +0 -0
- /package/official-apps/aiworker-hr/{schemas → product/artifacts/schemas}/candidate-screen.schema.json +0 -0
- /package/official-apps/aiworker-hr/{schemas → product/artifacts/schemas}/person-profile.schema.json +0 -0
- /package/official-apps/aiworker-hr/{packs → product/profiles}/hr-recruiting/SOUL.md +0 -0
- /package/official-apps/aiworker-hr/{review → product/reviews}/candidate-screen.md +0 -0
- /package/official-apps/aiworker-hr/{review → product/reviews}/person-profile.md +0 -0
- /package/official-apps/aiworker-hr/{src/ui → product/web/artifact-previews}/candidate-screen-preview.tsx +0 -0
- /package/official-apps/aiworker-hr/{src/ui → product/web/artifact-previews}/person-profile-preview.tsx +0 -0
- /package/official-apps/aiworker-hr/{src/ui → product/web/panels}/profile-panel.tsx +0 -0
- /package/official-apps/aiworker-hr/{src/ui → product/web/panels}/review-panel.tsx +0 -0
- /package/official-apps/aiworker-hr/{src/ui → product/web/routes}/hr-route.tsx +0 -0
- /package/official-apps/aiworker-hr/{src/ui → product/web/widgets}/people-widget.tsx +0 -0
- /package/official-apps/aiworker-hr/{capabilities → product/workflows}/candidate-screen/prompt.md +0 -0
- /package/official-apps/aiworker-hr/{capabilities → product/workflows}/candidate-screen/review.md +0 -0
- /package/official-apps/aiworker-hr/{capabilities → product/workflows}/person-profile/prompt.md +0 -0
- /package/official-apps/aiworker-hr/{capabilities → product/workflows}/person-profile/review.md +0 -0
- /package/official-apps/aiworker-qa/{src → host-adapter}/api.ts +0 -0
- /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/artifact.ts +0 -0
- /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/connectors.ts +0 -0
- /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/lifecycle.ts +0 -0
- /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/review.ts +0 -0
- /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/runtime.ts +0 -0
- /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/ui.ts +0 -0
- /package/official-apps/aiworker-qa/{schemas → product/artifacts/schemas}/regression-matrix.schema.json +0 -0
- /package/official-apps/aiworker-qa/{schemas → product/artifacts/schemas}/release-gate.schema.json +0 -0
- /package/official-apps/aiworker-qa/{packs → product/profiles}/qa-reviewer/SOUL.md +0 -0
- /package/official-apps/aiworker-qa/{review → product/reviews}/regression-matrix.md +0 -0
- /package/official-apps/aiworker-qa/{review → product/reviews}/release-gate.md +0 -0
- /package/official-apps/aiworker-qa/{src/ui → product/web/artifact-previews}/regression-matrix-preview.tsx +0 -0
- /package/official-apps/aiworker-qa/{src/ui → product/web/artifact-previews}/release-gate-preview.tsx +0 -0
- /package/official-apps/aiworker-qa/{src/ui → product/web/panels}/release-panel.tsx +0 -0
- /package/official-apps/aiworker-qa/{src/ui → product/web/panels}/release-review-panel.tsx +0 -0
- /package/official-apps/aiworker-qa/{src/ui → product/web/panels}/review-panel.tsx +0 -0
- /package/official-apps/aiworker-qa/{src/ui → product/web/routes}/qa-route.tsx +0 -0
- /package/official-apps/aiworker-qa/{src/ui → product/web/widgets}/release-widget.tsx +0 -0
- /package/official-apps/aiworker-qa/{capabilities → product/workflows}/regression-matrix/prompt.md +0 -0
- /package/official-apps/aiworker-qa/{capabilities → product/workflows}/regression-matrix/review.md +0 -0
- /package/official-apps/aiworker-qa/{capabilities → product/workflows}/release-gate/prompt.md +0 -0
- /package/official-apps/aiworker-qa/{capabilities → product/workflows}/release-gate/review.md +0 -0
|
@@ -13282,6 +13282,48 @@ var soulAppUiContributionKindSchema = exports_external.enum([
|
|
|
13282
13282
|
var soulAppMountedSurfaceRendererSchema = exports_external.enum(["host-descriptor", "sandboxed-frame", "trusted-module"]);
|
|
13283
13283
|
var soulAppMountedSurfaceScopeSchema = exports_external.enum(["app", "workspace", "session", "artifact", "review"]);
|
|
13284
13284
|
var soulAppRequiredPermissionSchema = exports_external.string().regex(REQUIRED_PERMISSION_RE, "requiredPermissions must use kind:action:target");
|
|
13285
|
+
var soulAppEngineTargetSchema = exports_external.enum(["codex", "claude-code"]);
|
|
13286
|
+
var soulAppEngineAssetSourceSchema = exports_external.string().min(1);
|
|
13287
|
+
var soulAppWorkspaceEngineAssetsSchema = exports_external.object({
|
|
13288
|
+
source: soulAppEngineAssetSourceSchema
|
|
13289
|
+
});
|
|
13290
|
+
var soulAppSkillEngineAssetsSchema = exports_external.object({
|
|
13291
|
+
source: soulAppEngineAssetSourceSchema,
|
|
13292
|
+
targets: exports_external.array(soulAppEngineTargetSchema).min(1).readonly()
|
|
13293
|
+
});
|
|
13294
|
+
var soulAppMcpClientEngineAssetsSchema = exports_external.object({
|
|
13295
|
+
source: soulAppEngineAssetSourceSchema,
|
|
13296
|
+
target: soulAppEngineTargetSchema
|
|
13297
|
+
});
|
|
13298
|
+
var soulAppMcpServerTransportSchema = exports_external.enum(["stdio", "http"]);
|
|
13299
|
+
var soulAppMcpServerEngineAssetsSchema = exports_external.object({
|
|
13300
|
+
id: soulAppIdSchema,
|
|
13301
|
+
package: exports_external.string().min(1),
|
|
13302
|
+
requiredPermissions: exports_external.array(soulAppRequiredPermissionSchema).readonly().optional(),
|
|
13303
|
+
transport: soulAppMcpServerTransportSchema
|
|
13304
|
+
});
|
|
13305
|
+
var soulAppEngineAssetsSchema = exports_external.object({
|
|
13306
|
+
mcpClients: exports_external.array(soulAppMcpClientEngineAssetsSchema).readonly().optional(),
|
|
13307
|
+
mcpServers: exports_external.array(soulAppMcpServerEngineAssetsSchema).readonly().optional(),
|
|
13308
|
+
skills: soulAppSkillEngineAssetsSchema.optional(),
|
|
13309
|
+
workspace: soulAppWorkspaceEngineAssetsSchema
|
|
13310
|
+
});
|
|
13311
|
+
var soulAppProjectionKindSchema = exports_external.enum(["workspace-file", "native-skill", "mcp-client"]);
|
|
13312
|
+
var soulAppProjectionReceiptEntrySchema = exports_external.object({
|
|
13313
|
+
appId: soulAppIdSchema,
|
|
13314
|
+
engineTarget: soulAppEngineTargetSchema.optional(),
|
|
13315
|
+
generatedAt: exports_external.string().min(1),
|
|
13316
|
+
kind: soulAppProjectionKindSchema,
|
|
13317
|
+
sha256: exports_external.string().regex(/^[a-f0-9]{64}$/),
|
|
13318
|
+
source: exports_external.string().min(1),
|
|
13319
|
+
target: exports_external.string().min(1)
|
|
13320
|
+
});
|
|
13321
|
+
var soulAppProjectionReceiptSchema = exports_external.object({
|
|
13322
|
+
appId: soulAppIdSchema,
|
|
13323
|
+
generatedAt: exports_external.string().min(1),
|
|
13324
|
+
projections: exports_external.array(soulAppProjectionReceiptEntrySchema).readonly(),
|
|
13325
|
+
version: exports_external.literal(1)
|
|
13326
|
+
});
|
|
13285
13327
|
var soulAppMountedSurfaceSchema = exports_external.object({
|
|
13286
13328
|
entry: exports_external.string().regex(ROUTE_RE, "surface entry must be an absolute mounted service route"),
|
|
13287
13329
|
renderer: soulAppMountedSurfaceRendererSchema,
|
|
@@ -13413,6 +13455,7 @@ var soulAppManifestSchema = exports_external.object({
|
|
|
13413
13455
|
compatibility: soulAppCompatibilitySchema,
|
|
13414
13456
|
connectors: soulAppConnectorsSchema,
|
|
13415
13457
|
description: exports_external.string().min(1),
|
|
13458
|
+
engineAssets: soulAppEngineAssetsSchema,
|
|
13416
13459
|
exports: soulAppExportsSchema,
|
|
13417
13460
|
healthcheck: soulAppHealthcheckSchema,
|
|
13418
13461
|
id: soulAppIdSchema,
|
|
@@ -13461,6 +13504,8 @@ var soulAppManifestIssueCodeSchema = exports_external.enum([
|
|
|
13461
13504
|
"unsafe_local_service_url",
|
|
13462
13505
|
"unsafe_permission_request",
|
|
13463
13506
|
"unsafe_ui_surface",
|
|
13507
|
+
"unsafe_engine_asset_source",
|
|
13508
|
+
"unsafe_mcp_server_package",
|
|
13464
13509
|
"missing_ui_api_entry",
|
|
13465
13510
|
"invalid_artifact_schema",
|
|
13466
13511
|
"namespace_collision"
|
|
@@ -13492,6 +13537,27 @@ function validateSoulAppManifest(input, options = {}) {
|
|
|
13492
13537
|
}
|
|
13493
13538
|
const manifest = parsed.data;
|
|
13494
13539
|
const issues = [];
|
|
13540
|
+
for (const source of engineAssetSources(manifest)) {
|
|
13541
|
+
if (!source.value.startsWith("./") || source.value.includes("..")) {
|
|
13542
|
+
issues.push({
|
|
13543
|
+
code: "unsafe_engine_asset_source",
|
|
13544
|
+
message: "engine asset source must be a relative app-local path.",
|
|
13545
|
+
path: source.path,
|
|
13546
|
+
severity: "error"
|
|
13547
|
+
});
|
|
13548
|
+
}
|
|
13549
|
+
}
|
|
13550
|
+
for (const server of manifest.engineAssets.mcpServers ?? []) {
|
|
13551
|
+
const message = mcpServerPackageMessage(manifest, server.package);
|
|
13552
|
+
if (message) {
|
|
13553
|
+
issues.push({
|
|
13554
|
+
code: "unsafe_mcp_server_package",
|
|
13555
|
+
message,
|
|
13556
|
+
path: `engineAssets.mcpServers.${server.id}.package`,
|
|
13557
|
+
severity: "error"
|
|
13558
|
+
});
|
|
13559
|
+
}
|
|
13560
|
+
}
|
|
13495
13561
|
if (options.hostVersion && !hostVersionSatisfies(options.hostVersion, manifest.compatibility.host)) {
|
|
13496
13562
|
issues.push({
|
|
13497
13563
|
code: "incompatible_host_version",
|
|
@@ -13684,6 +13750,25 @@ function unsafeSurfaceMessage(surface) {
|
|
|
13684
13750
|
return "sandboxed-frame surfaces must use a /frames/* mounted service entry.";
|
|
13685
13751
|
return null;
|
|
13686
13752
|
}
|
|
13753
|
+
function mcpServerPackageMessage(manifest, packageName) {
|
|
13754
|
+
const packagePart = packageName.includes("/") ? packageName.split("/").at(-1) : packageName;
|
|
13755
|
+
const genericMcpPackage = /^(?:[a-z][a-z0-9]*-)*mcp-[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(packagePart);
|
|
13756
|
+
if (!genericMcpPackage)
|
|
13757
|
+
return "MCP server packages must use a generic mcp-* package name, for example @zonease/aiworker-mcp-ats.";
|
|
13758
|
+
if (packagePart.includes(manifest.id))
|
|
13759
|
+
return "MCP server packages must not be private to a Soul App id.";
|
|
13760
|
+
return null;
|
|
13761
|
+
}
|
|
13762
|
+
function engineAssetSources(manifest) {
|
|
13763
|
+
return [
|
|
13764
|
+
{ path: "engineAssets.workspace.source", value: manifest.engineAssets.workspace.source },
|
|
13765
|
+
...manifest.engineAssets.skills ? [{ path: "engineAssets.skills.source", value: manifest.engineAssets.skills.source }] : [],
|
|
13766
|
+
...(manifest.engineAssets.mcpClients ?? []).map((client, index) => ({
|
|
13767
|
+
path: `engineAssets.mcpClients.${index}.source`,
|
|
13768
|
+
value: client.source
|
|
13769
|
+
}))
|
|
13770
|
+
];
|
|
13771
|
+
}
|
|
13687
13772
|
function manifestUiContributions(manifest) {
|
|
13688
13773
|
return [
|
|
13689
13774
|
...manifest.ui.routes.map((route, index) => ({ path: `ui.routes.${index}`, surface: route.surface })),
|
|
@@ -13701,7 +13786,7 @@ var QA_REGRESSION_MATRIX_SCHEMA_HASH = "6a4f3494764431e8785a82865215eabc4c4678df
|
|
|
13701
13786
|
var QA_RELEASE_GATE_SCHEMA_HASH = "0c953a3453ff235c419600073c70c1f155976f448c4567711b511d83668a09e4";
|
|
13702
13787
|
var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
13703
13788
|
api: {
|
|
13704
|
-
entry: "./
|
|
13789
|
+
entry: "./host-adapter/api.ts",
|
|
13705
13790
|
routePrefix: "/api/local/apps/aiworker-hr"
|
|
13706
13791
|
},
|
|
13707
13792
|
artifactTypes: [
|
|
@@ -13709,9 +13794,9 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13709
13794
|
description: "Source-backed HR lifecycle profile.",
|
|
13710
13795
|
id: "person-profile",
|
|
13711
13796
|
name: "Person Profile",
|
|
13712
|
-
previewRef: "./
|
|
13713
|
-
reviewPolicyRef: "./
|
|
13714
|
-
schemaRef: "./schemas/person-profile.schema.json",
|
|
13797
|
+
previewRef: "./product/web/artifact-previews/person-profile-preview.tsx",
|
|
13798
|
+
reviewPolicyRef: "./product/reviews/person-profile.md",
|
|
13799
|
+
schemaRef: "./product/artifacts/schemas/person-profile.schema.json",
|
|
13715
13800
|
schemaSha256: HR_PERSON_PROFILE_SCHEMA_HASH,
|
|
13716
13801
|
version: "0.1.0"
|
|
13717
13802
|
},
|
|
@@ -13719,9 +13804,9 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13719
13804
|
description: "Role-related candidate screen with missing evidence and risks.",
|
|
13720
13805
|
id: "candidate-screen",
|
|
13721
13806
|
name: "Candidate Screen",
|
|
13722
|
-
previewRef: "./
|
|
13723
|
-
reviewPolicyRef: "./
|
|
13724
|
-
schemaRef: "./schemas/candidate-screen.schema.json",
|
|
13807
|
+
previewRef: "./product/web/artifact-previews/candidate-screen-preview.tsx",
|
|
13808
|
+
reviewPolicyRef: "./product/reviews/candidate-screen.md",
|
|
13809
|
+
schemaRef: "./product/artifacts/schemas/candidate-screen.schema.json",
|
|
13725
13810
|
schemaSha256: HR_CANDIDATE_SCREEN_SCHEMA_HASH,
|
|
13726
13811
|
version: "0.1.0"
|
|
13727
13812
|
}
|
|
@@ -13734,8 +13819,8 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13734
13819
|
name: "Person Profile",
|
|
13735
13820
|
outputKind: "person-profile",
|
|
13736
13821
|
packRefs: [],
|
|
13737
|
-
promptRef: "./
|
|
13738
|
-
reviewRubricRef: "./
|
|
13822
|
+
promptRef: "./product/workflows/person-profile/prompt.md",
|
|
13823
|
+
reviewRubricRef: "./product/workflows/person-profile/review.md",
|
|
13739
13824
|
version: "0.1.0",
|
|
13740
13825
|
workspaceTypes: ["people-profile"]
|
|
13741
13826
|
},
|
|
@@ -13746,8 +13831,8 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13746
13831
|
name: "Candidate Screen",
|
|
13747
13832
|
outputKind: "candidate-screen",
|
|
13748
13833
|
packRefs: [],
|
|
13749
|
-
promptRef: "./
|
|
13750
|
-
reviewRubricRef: "./
|
|
13834
|
+
promptRef: "./product/workflows/candidate-screen/prompt.md",
|
|
13835
|
+
reviewRubricRef: "./product/workflows/candidate-screen/review.md",
|
|
13751
13836
|
version: "0.1.0",
|
|
13752
13837
|
workspaceTypes: ["role-search", "candidate"]
|
|
13753
13838
|
}
|
|
@@ -13775,13 +13860,22 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13775
13860
|
]
|
|
13776
13861
|
},
|
|
13777
13862
|
description: "People operations Soul App for profiles, recruiting evidence, lifecycle touchpoints, and HR review policy.",
|
|
13863
|
+
engineAssets: {
|
|
13864
|
+
skills: {
|
|
13865
|
+
source: "./engine-assets/skills",
|
|
13866
|
+
targets: ["codex", "claude-code"]
|
|
13867
|
+
},
|
|
13868
|
+
workspace: {
|
|
13869
|
+
source: "./engine-assets/workspace"
|
|
13870
|
+
}
|
|
13871
|
+
},
|
|
13778
13872
|
exports: {
|
|
13779
|
-
artifact: "./
|
|
13780
|
-
connector: "./
|
|
13781
|
-
lifecycle: "./
|
|
13782
|
-
review: "./
|
|
13783
|
-
runtime: "./
|
|
13784
|
-
ui: "./
|
|
13873
|
+
artifact: "./host-adapter/protocol/artifact.ts",
|
|
13874
|
+
connector: "./host-adapter/protocol/connectors.ts",
|
|
13875
|
+
lifecycle: "./host-adapter/protocol/lifecycle.ts",
|
|
13876
|
+
review: "./host-adapter/protocol/review.ts",
|
|
13877
|
+
runtime: "./host-adapter/protocol/runtime.ts",
|
|
13878
|
+
ui: "./host-adapter/protocol/ui.ts"
|
|
13785
13879
|
},
|
|
13786
13880
|
healthcheck: {
|
|
13787
13881
|
kind: "protocol-handler",
|
|
@@ -13794,13 +13888,13 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13794
13888
|
namespace: "aiworker-hr"
|
|
13795
13889
|
},
|
|
13796
13890
|
modes: {
|
|
13797
|
-
hostMounted: { entry: "./
|
|
13798
|
-
standalone: { entry: "./
|
|
13891
|
+
hostMounted: { entry: "./host-adapter/mounted/host-mounted.ts", supported: true },
|
|
13892
|
+
standalone: { entry: "./host-adapter/standalone/standalone.ts", supported: true }
|
|
13799
13893
|
},
|
|
13800
13894
|
name: "AIWorker HR",
|
|
13801
13895
|
pack: {
|
|
13802
13896
|
refs: [
|
|
13803
|
-
{ id: "hr-recruiting", ref: "
|
|
13897
|
+
{ id: "hr-recruiting", ref: "product/profiles/hr-recruiting/SOUL.md", source: "embedded", version: "0.1.0" }
|
|
13804
13898
|
]
|
|
13805
13899
|
},
|
|
13806
13900
|
permissions: [
|
|
@@ -13882,7 +13976,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13882
13976
|
ui: {
|
|
13883
13977
|
artifactPreviews: [
|
|
13884
13978
|
{
|
|
13885
|
-
entry: "./
|
|
13979
|
+
entry: "./product/web/artifact-previews/person-profile-preview.tsx",
|
|
13886
13980
|
id: "person-profile-preview",
|
|
13887
13981
|
label: "Person profile preview",
|
|
13888
13982
|
slot: "artifact-preview",
|
|
@@ -13891,7 +13985,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13891
13985
|
],
|
|
13892
13986
|
panels: [
|
|
13893
13987
|
{
|
|
13894
|
-
entry: "./
|
|
13988
|
+
entry: "./product/web/panels/profile-panel.tsx",
|
|
13895
13989
|
id: "hr-profile-panel",
|
|
13896
13990
|
label: "Profile panel",
|
|
13897
13991
|
slot: "panel",
|
|
@@ -13905,7 +13999,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13905
13999
|
],
|
|
13906
14000
|
reviewPanels: [
|
|
13907
14001
|
{
|
|
13908
|
-
entry: "./
|
|
14002
|
+
entry: "./product/web/panels/review-panel.tsx",
|
|
13909
14003
|
id: "hr-review-panel",
|
|
13910
14004
|
label: "HR review panel",
|
|
13911
14005
|
slot: "review-panel"
|
|
@@ -13913,7 +14007,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13913
14007
|
],
|
|
13914
14008
|
routes: [
|
|
13915
14009
|
{
|
|
13916
|
-
entry: "./
|
|
14010
|
+
entry: "./product/web/routes/hr-route.tsx",
|
|
13917
14011
|
id: "hr-home",
|
|
13918
14012
|
label: "HR",
|
|
13919
14013
|
path: "/hr",
|
|
@@ -13965,7 +14059,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
13965
14059
|
},
|
|
13966
14060
|
workspaceWidgets: [
|
|
13967
14061
|
{
|
|
13968
|
-
entry: "./
|
|
14062
|
+
entry: "./product/web/widgets/people-widget.tsx",
|
|
13969
14063
|
id: "hr-people-widget",
|
|
13970
14064
|
label: "People widget",
|
|
13971
14065
|
slot: "workspace-widget",
|
|
@@ -14005,7 +14099,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14005
14099
|
});
|
|
14006
14100
|
var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
14007
14101
|
api: {
|
|
14008
|
-
entry: "./
|
|
14102
|
+
entry: "./host-adapter/api.ts",
|
|
14009
14103
|
routePrefix: "/api/local/apps/aiworker-qa"
|
|
14010
14104
|
},
|
|
14011
14105
|
artifactTypes: [
|
|
@@ -14013,9 +14107,9 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14013
14107
|
description: "Coverage matrix mapped to release risk.",
|
|
14014
14108
|
id: "regression-matrix",
|
|
14015
14109
|
name: "Regression Matrix",
|
|
14016
|
-
previewRef: "./
|
|
14017
|
-
reviewPolicyRef: "./
|
|
14018
|
-
schemaRef: "./schemas/regression-matrix.schema.json",
|
|
14110
|
+
previewRef: "./product/web/artifact-previews/regression-matrix-preview.tsx",
|
|
14111
|
+
reviewPolicyRef: "./product/reviews/regression-matrix.md",
|
|
14112
|
+
schemaRef: "./product/artifacts/schemas/regression-matrix.schema.json",
|
|
14019
14113
|
schemaSha256: QA_REGRESSION_MATRIX_SCHEMA_HASH,
|
|
14020
14114
|
version: "0.1.0"
|
|
14021
14115
|
},
|
|
@@ -14023,9 +14117,9 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14023
14117
|
description: "Go/no-go release readiness artifact.",
|
|
14024
14118
|
id: "release-gate",
|
|
14025
14119
|
name: "Release Gate",
|
|
14026
|
-
previewRef: "./
|
|
14027
|
-
reviewPolicyRef: "./
|
|
14028
|
-
schemaRef: "./schemas/release-gate.schema.json",
|
|
14120
|
+
previewRef: "./product/web/artifact-previews/release-gate-preview.tsx",
|
|
14121
|
+
reviewPolicyRef: "./product/reviews/release-gate.md",
|
|
14122
|
+
schemaRef: "./product/artifacts/schemas/release-gate.schema.json",
|
|
14029
14123
|
schemaSha256: QA_RELEASE_GATE_SCHEMA_HASH,
|
|
14030
14124
|
version: "0.1.0"
|
|
14031
14125
|
}
|
|
@@ -14038,8 +14132,8 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14038
14132
|
name: "Regression Matrix",
|
|
14039
14133
|
outputKind: "regression-matrix",
|
|
14040
14134
|
packRefs: [],
|
|
14041
|
-
promptRef: "./
|
|
14042
|
-
reviewRubricRef: "./
|
|
14135
|
+
promptRef: "./product/workflows/regression-matrix/prompt.md",
|
|
14136
|
+
reviewRubricRef: "./product/workflows/regression-matrix/review.md",
|
|
14043
14137
|
version: "0.1.0",
|
|
14044
14138
|
workspaceTypes: ["release", "test-suite"]
|
|
14045
14139
|
},
|
|
@@ -14050,8 +14144,8 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14050
14144
|
name: "Release Gate",
|
|
14051
14145
|
outputKind: "release-gate",
|
|
14052
14146
|
packRefs: [],
|
|
14053
|
-
promptRef: "./
|
|
14054
|
-
reviewRubricRef: "./
|
|
14147
|
+
promptRef: "./product/workflows/release-gate/prompt.md",
|
|
14148
|
+
reviewRubricRef: "./product/workflows/release-gate/review.md",
|
|
14055
14149
|
version: "0.1.0",
|
|
14056
14150
|
workspaceTypes: ["release"]
|
|
14057
14151
|
}
|
|
@@ -14079,13 +14173,22 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14079
14173
|
]
|
|
14080
14174
|
},
|
|
14081
14175
|
description: "Quality Soul App for release workspaces, regression evidence, defect triage, and release gate review.",
|
|
14176
|
+
engineAssets: {
|
|
14177
|
+
skills: {
|
|
14178
|
+
source: "./engine-assets/skills",
|
|
14179
|
+
targets: ["codex", "claude-code"]
|
|
14180
|
+
},
|
|
14181
|
+
workspace: {
|
|
14182
|
+
source: "./engine-assets/workspace"
|
|
14183
|
+
}
|
|
14184
|
+
},
|
|
14082
14185
|
exports: {
|
|
14083
|
-
artifact: "./
|
|
14084
|
-
connector: "./
|
|
14085
|
-
lifecycle: "./
|
|
14086
|
-
review: "./
|
|
14087
|
-
runtime: "./
|
|
14088
|
-
ui: "./
|
|
14186
|
+
artifact: "./host-adapter/protocol/artifact.ts",
|
|
14187
|
+
connector: "./host-adapter/protocol/connectors.ts",
|
|
14188
|
+
lifecycle: "./host-adapter/protocol/lifecycle.ts",
|
|
14189
|
+
review: "./host-adapter/protocol/review.ts",
|
|
14190
|
+
runtime: "./host-adapter/protocol/runtime.ts",
|
|
14191
|
+
ui: "./host-adapter/protocol/ui.ts"
|
|
14089
14192
|
},
|
|
14090
14193
|
healthcheck: {
|
|
14091
14194
|
kind: "protocol-handler",
|
|
@@ -14098,13 +14201,13 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14098
14201
|
namespace: "aiworker-qa"
|
|
14099
14202
|
},
|
|
14100
14203
|
modes: {
|
|
14101
|
-
hostMounted: { entry: "./
|
|
14102
|
-
standalone: { entry: "./
|
|
14204
|
+
hostMounted: { entry: "./host-adapter/mounted/host-mounted.ts", supported: true },
|
|
14205
|
+
standalone: { entry: "./host-adapter/standalone/standalone.ts", supported: true }
|
|
14103
14206
|
},
|
|
14104
14207
|
name: "AIWorker QA",
|
|
14105
14208
|
pack: {
|
|
14106
14209
|
refs: [
|
|
14107
|
-
{ id: "qa-reviewer", ref: "
|
|
14210
|
+
{ id: "qa-reviewer", ref: "product/profiles/qa-reviewer/SOUL.md", source: "embedded", version: "0.1.0" }
|
|
14108
14211
|
]
|
|
14109
14212
|
},
|
|
14110
14213
|
permissions: [
|
|
@@ -14186,7 +14289,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14186
14289
|
ui: {
|
|
14187
14290
|
artifactPreviews: [
|
|
14188
14291
|
{
|
|
14189
|
-
entry: "./
|
|
14292
|
+
entry: "./product/web/artifact-previews/release-gate-preview.tsx",
|
|
14190
14293
|
id: "release-gate-preview",
|
|
14191
14294
|
label: "Release gate preview",
|
|
14192
14295
|
slot: "artifact-preview",
|
|
@@ -14195,7 +14298,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14195
14298
|
],
|
|
14196
14299
|
panels: [
|
|
14197
14300
|
{
|
|
14198
|
-
entry: "./
|
|
14301
|
+
entry: "./product/web/panels/release-panel.tsx",
|
|
14199
14302
|
id: "qa-release-panel",
|
|
14200
14303
|
label: "Release panel",
|
|
14201
14304
|
slot: "panel",
|
|
@@ -14209,7 +14312,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14209
14312
|
],
|
|
14210
14313
|
reviewPanels: [
|
|
14211
14314
|
{
|
|
14212
|
-
entry: "./
|
|
14315
|
+
entry: "./product/web/panels/review-panel.tsx",
|
|
14213
14316
|
id: "qa-review-panel",
|
|
14214
14317
|
label: "QA review panel",
|
|
14215
14318
|
slot: "review-panel"
|
|
@@ -14217,7 +14320,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14217
14320
|
],
|
|
14218
14321
|
routes: [
|
|
14219
14322
|
{
|
|
14220
|
-
entry: "./
|
|
14323
|
+
entry: "./product/web/routes/qa-route.tsx",
|
|
14221
14324
|
id: "qa-home",
|
|
14222
14325
|
label: "QA",
|
|
14223
14326
|
path: "/qa",
|
|
@@ -14262,7 +14365,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
|
|
|
14262
14365
|
},
|
|
14263
14366
|
workspaceWidgets: [
|
|
14264
14367
|
{
|
|
14265
|
-
entry: "./
|
|
14368
|
+
entry: "./product/web/widgets/release-widget.tsx",
|
|
14266
14369
|
id: "qa-release-widget",
|
|
14267
14370
|
label: "Release widget",
|
|
14268
14371
|
slot: "workspace-widget",
|
|
@@ -14912,11 +15015,11 @@ function queryString(input, seed = {}) {
|
|
|
14912
15015
|
// soul-app.manifest.json
|
|
14913
15016
|
var soul_app_manifest_default = {
|
|
14914
15017
|
api: {
|
|
14915
|
-
entry: "./
|
|
15018
|
+
entry: "./host-adapter/api.ts",
|
|
14916
15019
|
localService: {
|
|
14917
15020
|
command: [
|
|
14918
15021
|
"bun",
|
|
14919
|
-
"
|
|
15022
|
+
"host-adapter/mounted/host-mounted.ts"
|
|
14920
15023
|
],
|
|
14921
15024
|
healthPath: "/health"
|
|
14922
15025
|
},
|
|
@@ -14927,9 +15030,9 @@ var soul_app_manifest_default = {
|
|
|
14927
15030
|
description: "Source-backed HR lifecycle profile.",
|
|
14928
15031
|
id: "person-profile",
|
|
14929
15032
|
name: "Person Profile",
|
|
14930
|
-
previewRef: "./
|
|
14931
|
-
reviewPolicyRef: "./
|
|
14932
|
-
schemaRef: "./schemas/person-profile.schema.json",
|
|
15033
|
+
previewRef: "./product/web/artifact-previews/person-profile-preview.tsx",
|
|
15034
|
+
reviewPolicyRef: "./product/reviews/person-profile.md",
|
|
15035
|
+
schemaRef: "./product/artifacts/schemas/person-profile.schema.json",
|
|
14933
15036
|
schemaSha256: "35c14e3d4c0fe9fd95c87e9bc47a210e21f99bcb1b079aa99a95bb93e820c8ab",
|
|
14934
15037
|
version: "0.1.0"
|
|
14935
15038
|
},
|
|
@@ -14937,9 +15040,9 @@ var soul_app_manifest_default = {
|
|
|
14937
15040
|
description: "Role-related candidate screen with missing evidence and risks.",
|
|
14938
15041
|
id: "candidate-screen",
|
|
14939
15042
|
name: "Candidate Screen",
|
|
14940
|
-
previewRef: "./
|
|
14941
|
-
reviewPolicyRef: "./
|
|
14942
|
-
schemaRef: "./schemas/candidate-screen.schema.json",
|
|
15043
|
+
previewRef: "./product/web/artifact-previews/candidate-screen-preview.tsx",
|
|
15044
|
+
reviewPolicyRef: "./product/reviews/candidate-screen.md",
|
|
15045
|
+
schemaRef: "./product/artifacts/schemas/candidate-screen.schema.json",
|
|
14943
15046
|
schemaSha256: "e8bd207be63eab23073cd47e41092f1d753c38d609383206e94334dd984b309c",
|
|
14944
15047
|
version: "0.1.0"
|
|
14945
15048
|
}
|
|
@@ -14954,8 +15057,8 @@ var soul_app_manifest_default = {
|
|
|
14954
15057
|
name: "Person Profile",
|
|
14955
15058
|
outputKind: "person-profile",
|
|
14956
15059
|
packRefs: [],
|
|
14957
|
-
promptRef: "./
|
|
14958
|
-
reviewRubricRef: "./
|
|
15060
|
+
promptRef: "./product/workflows/person-profile/prompt.md",
|
|
15061
|
+
reviewRubricRef: "./product/workflows/person-profile/review.md",
|
|
14959
15062
|
version: "0.1.0",
|
|
14960
15063
|
workspaceTypes: [
|
|
14961
15064
|
"people-profile"
|
|
@@ -14970,8 +15073,8 @@ var soul_app_manifest_default = {
|
|
|
14970
15073
|
name: "Candidate Screen",
|
|
14971
15074
|
outputKind: "candidate-screen",
|
|
14972
15075
|
packRefs: [],
|
|
14973
|
-
promptRef: "./
|
|
14974
|
-
reviewRubricRef: "./
|
|
15076
|
+
promptRef: "./product/workflows/candidate-screen/prompt.md",
|
|
15077
|
+
reviewRubricRef: "./product/workflows/candidate-screen/review.md",
|
|
14975
15078
|
version: "0.1.0",
|
|
14976
15079
|
workspaceTypes: [
|
|
14977
15080
|
"role-search",
|
|
@@ -15015,13 +15118,25 @@ var soul_app_manifest_default = {
|
|
|
15015
15118
|
]
|
|
15016
15119
|
},
|
|
15017
15120
|
description: "People operations Soul App for profiles, recruiting evidence, lifecycle touchpoints, and HR review policy.",
|
|
15121
|
+
engineAssets: {
|
|
15122
|
+
skills: {
|
|
15123
|
+
source: "./engine-assets/skills",
|
|
15124
|
+
targets: [
|
|
15125
|
+
"codex",
|
|
15126
|
+
"claude-code"
|
|
15127
|
+
]
|
|
15128
|
+
},
|
|
15129
|
+
workspace: {
|
|
15130
|
+
source: "./engine-assets/workspace"
|
|
15131
|
+
}
|
|
15132
|
+
},
|
|
15018
15133
|
exports: {
|
|
15019
|
-
artifact: "./
|
|
15020
|
-
connector: "./
|
|
15021
|
-
lifecycle: "./
|
|
15022
|
-
review: "./
|
|
15023
|
-
runtime: "./
|
|
15024
|
-
ui: "./
|
|
15134
|
+
artifact: "./host-adapter/protocol/artifact.ts",
|
|
15135
|
+
connector: "./host-adapter/protocol/connectors.ts",
|
|
15136
|
+
lifecycle: "./host-adapter/protocol/lifecycle.ts",
|
|
15137
|
+
review: "./host-adapter/protocol/review.ts",
|
|
15138
|
+
runtime: "./host-adapter/protocol/runtime.ts",
|
|
15139
|
+
ui: "./host-adapter/protocol/ui.ts"
|
|
15025
15140
|
},
|
|
15026
15141
|
healthcheck: {
|
|
15027
15142
|
kind: "protocol-handler",
|
|
@@ -15035,11 +15150,11 @@ var soul_app_manifest_default = {
|
|
|
15035
15150
|
},
|
|
15036
15151
|
modes: {
|
|
15037
15152
|
hostMounted: {
|
|
15038
|
-
entry: "./
|
|
15153
|
+
entry: "./host-adapter/mounted/host-mounted.ts",
|
|
15039
15154
|
supported: true
|
|
15040
15155
|
},
|
|
15041
15156
|
standalone: {
|
|
15042
|
-
entry: "./
|
|
15157
|
+
entry: "./host-adapter/standalone/standalone.ts",
|
|
15043
15158
|
supported: true
|
|
15044
15159
|
}
|
|
15045
15160
|
},
|
|
@@ -15048,7 +15163,7 @@ var soul_app_manifest_default = {
|
|
|
15048
15163
|
refs: [
|
|
15049
15164
|
{
|
|
15050
15165
|
id: "hr-recruiting",
|
|
15051
|
-
ref: "
|
|
15166
|
+
ref: "product/profiles/hr-recruiting/SOUL.md",
|
|
15052
15167
|
source: "embedded",
|
|
15053
15168
|
version: "0.1.0"
|
|
15054
15169
|
}
|
|
@@ -15136,7 +15251,7 @@ var soul_app_manifest_default = {
|
|
|
15136
15251
|
ui: {
|
|
15137
15252
|
artifactPreviews: [
|
|
15138
15253
|
{
|
|
15139
|
-
entry: "./
|
|
15254
|
+
entry: "./product/web/artifact-previews/person-profile-preview.tsx",
|
|
15140
15255
|
id: "person-profile-preview",
|
|
15141
15256
|
label: "Person profile preview",
|
|
15142
15257
|
slot: "artifact-preview",
|
|
@@ -15145,7 +15260,7 @@ var soul_app_manifest_default = {
|
|
|
15145
15260
|
],
|
|
15146
15261
|
panels: [
|
|
15147
15262
|
{
|
|
15148
|
-
entry: "./
|
|
15263
|
+
entry: "./product/web/panels/profile-panel.tsx",
|
|
15149
15264
|
id: "hr-profile-panel",
|
|
15150
15265
|
label: "Profile panel",
|
|
15151
15266
|
slot: "panel",
|
|
@@ -15161,7 +15276,7 @@ var soul_app_manifest_default = {
|
|
|
15161
15276
|
],
|
|
15162
15277
|
reviewPanels: [
|
|
15163
15278
|
{
|
|
15164
|
-
entry: "./
|
|
15279
|
+
entry: "./product/web/panels/review-panel.tsx",
|
|
15165
15280
|
id: "hr-review-panel",
|
|
15166
15281
|
label: "HR review panel",
|
|
15167
15282
|
slot: "review-panel"
|
|
@@ -15169,7 +15284,7 @@ var soul_app_manifest_default = {
|
|
|
15169
15284
|
],
|
|
15170
15285
|
routes: [
|
|
15171
15286
|
{
|
|
15172
|
-
entry: "./
|
|
15287
|
+
entry: "./product/web/routes/hr-route.tsx",
|
|
15173
15288
|
id: "hr-home",
|
|
15174
15289
|
label: "HR",
|
|
15175
15290
|
path: "/hr",
|
|
@@ -15223,7 +15338,7 @@ var soul_app_manifest_default = {
|
|
|
15223
15338
|
},
|
|
15224
15339
|
workspaceWidgets: [
|
|
15225
15340
|
{
|
|
15226
|
-
entry: "./
|
|
15341
|
+
entry: "./product/web/widgets/people-widget.tsx",
|
|
15227
15342
|
id: "hr-people-widget",
|
|
15228
15343
|
label: "People widget",
|
|
15229
15344
|
slot: "workspace-widget",
|
|
@@ -15274,13 +15389,13 @@ var soul_app_manifest_default = {
|
|
|
15274
15389
|
]
|
|
15275
15390
|
};
|
|
15276
15391
|
|
|
15277
|
-
//
|
|
15392
|
+
// host-adapter/index.ts
|
|
15278
15393
|
var hrSoulAppManifest2 = createSoulAppManifest(soul_app_manifest_default);
|
|
15279
15394
|
var HR_REFERENCE_APP_BOUNDARY = {
|
|
15280
|
-
hostMountedEntry: "./
|
|
15395
|
+
hostMountedEntry: "./host-adapter/mounted/host-mounted.ts",
|
|
15281
15396
|
packageName: "@zonease/aiworker-hr",
|
|
15282
15397
|
primaryWorkbench: "People/Profile Workbench",
|
|
15283
|
-
standaloneEntry: "./
|
|
15398
|
+
standaloneEntry: "./host-adapter/standalone/standalone.ts"
|
|
15284
15399
|
};
|
|
15285
15400
|
var hrReferenceSoulApp = defineSoulApp({
|
|
15286
15401
|
artifact: {
|
|
@@ -15409,7 +15524,7 @@ function lifecycleHandlers(message) {
|
|
|
15409
15524
|
};
|
|
15410
15525
|
}
|
|
15411
15526
|
|
|
15412
|
-
//
|
|
15527
|
+
// host-adapter/standalone/standalone.ts
|
|
15413
15528
|
import process from "process";
|
|
15414
15529
|
function renderStandaloneHtml() {
|
|
15415
15530
|
return [
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# {{workerName}} Workspace Instructions
|
|
2
|
+
|
|
3
|
+
This workspace belongs to an AIWorker HR profile ledger.
|
|
4
|
+
|
|
5
|
+
## Workspace Identity
|
|
6
|
+
|
|
7
|
+
- Soul worker: {{workerName}}
|
|
8
|
+
- Soul id: {{soulId}}
|
|
9
|
+
- Workspace profile: {{workspaceName}}
|
|
10
|
+
|
|
11
|
+
## Accepted State
|
|
12
|
+
|
|
13
|
+
- README.md is the accepted HR profile state for this workspace.
|
|
14
|
+
- Do not directly update `README.md` during an agent session.
|
|
15
|
+
- If a result should change the accepted profile, write a reviewable artifact and request human review.
|
|
16
|
+
- Human review plus HR policy is the only path that may promote an artifact into `README.md`.
|
|
17
|
+
|
|
18
|
+
## Action and Skill Binding
|
|
19
|
+
|
|
20
|
+
- When a session is started from a Soul App action, treat that action as an explicit skill selection.
|
|
21
|
+
- Follow the selected skill purpose, expected inputs, output shape, and review boundary.
|
|
22
|
+
- Do not silently switch to another skill.
|
|
23
|
+
- If the request appears to require a different skill, explain the mismatch and ask the user to confirm whether to continue, switch, or start a new action.
|
|
24
|
+
- When no action or skill is explicitly selected, choose the most relevant available HR skill when useful.
|
|
25
|
+
- If no skill fits, continue as a general HR workspace session and keep outputs within the same artifact and review rules.
|
|
26
|
+
|
|
27
|
+
## Session Output
|
|
28
|
+
|
|
29
|
+
- Write durable session outputs under `artifacts/<sessionId>/`.
|
|
30
|
+
- Keep facts, assumptions, evidence gaps, risks, review notes, and next actions separated.
|
|
31
|
+
- Text-only clarification is allowed; do not create a fake artifact just to satisfy the protocol.
|
|
32
|
+
- Available native skills may be empty. When skills exist, use `.agents/skills/` or `.claude/skills/` according to the active engine.
|
|
33
|
+
|
|
34
|
+
## Review Boundary
|
|
35
|
+
|
|
36
|
+
- Agent output is a proposal until a human review accepts it.
|
|
37
|
+
- Sensitive facts, hiring or employment decisions, and memory candidates require explicit review.
|
|
38
|
+
- Do not store secrets, connector credentials, bearer tokens, or raw sensitive evidence in `README.md`, artifacts, reviews, logs, prompts, or skill files.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# {{workspaceName}}
|
|
2
|
+
|
|
3
|
+
> Canonical accepted HR profile for this Soul workspace. Session outputs remain proposals until review.
|
|
4
|
+
|
|
5
|
+
## Current Profile Summary
|
|
6
|
+
|
|
7
|
+
No approved profile revision yet.
|
|
8
|
+
|
|
9
|
+
## Evidence And Review
|
|
10
|
+
|
|
11
|
+
- Proposed changes live in `artifacts/`.
|
|
12
|
+
- Human review records live in `reviews/`.
|
|
13
|
+
- Evidence descriptors live in `evidence/descriptors/`.
|
|
14
|
+
|
|
15
|
+
## Revision Notes
|
|
16
|
+
|
|
17
|
+
Approve a profile revision to update this README.
|