Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5120cdd
fix(uads): add systems-runtime domain vocabulary
KayzenRoot Sep 22, 2026
84b3c1e
fix(uads): add systems runtime specialist function
KayzenRoot Sep 22, 2026
10a98b0
fix(uads): allow systems runtime specialist function
KayzenRoot Sep 22, 2026
7ec01d7
fix(uads): extend specialist profile schema for systems domains
KayzenRoot Sep 22, 2026
fcec839
fix(uads): add systems runtime specialist coverage
KayzenRoot Sep 22, 2026
dac4812
fix(uads): classify foundational runtime work as high risk
KayzenRoot Sep 22, 2026
92bfb4e
fix(uads): route systems runtime verification and gates
KayzenRoot Sep 22, 2026
c725de9
test(uads): cover Forge systems runtime specialist routing
KayzenRoot Sep 22, 2026
505ec07
test(uads): lock Forge kernel risk and routing regression
KayzenRoot Sep 22, 2026
c5b299a
fix(uads): add systems runtime host specialist descriptor
KayzenRoot Sep 22, 2026
31fa80b
test(uads): expect systems runtime adapter resource
KayzenRoot Sep 22, 2026
33b2a77
docs(uads): document expanded systems specialist catalog
KayzenRoot Sep 22, 2026
8c0cefa
docs(uads): record systems runtime domain coverage
KayzenRoot Sep 22, 2026
be8bd9e
docs(uads): expose systems runtime specialist to host adapters
KayzenRoot Sep 22, 2026
d79ac96
chore(uads): minimize systems profile schema delta
KayzenRoot Sep 22, 2026
7bbb4ec
security: update adm-zip to patched 0.6.1
KayzenRoot Sep 23, 2026
584d4dc
security: lock adm-zip 0.6.1
KayzenRoot Sep 23, 2026
af1c614
security: inspect raw ZIP central directory names
KayzenRoot Sep 23, 2026
4ca59ba
security: preserve duplicate ZIP detection across adm-zip upgrades
KayzenRoot Sep 23, 2026
2d92628
security: fail fast on raw ZIP structural violations
KayzenRoot Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ This repository is the public open-source UADS product. Releases are published f
- Context routing, repository map, dependency/impact map
- Token budget manager and cache-first prompt architecture
- Provider-neutral model routing, evidence protocol, review ZIP workflow
- Global specialist registry with 25 bounded built-in profiles, deterministic domain/gate/evidence obligation coverage, independent assurance, and semantic stale-plan binding
- Global specialist registry with 26 bounded built-in profiles, deterministic domain/gate/evidence obligation coverage, independent assurance, and semantic stale-plan binding
- Common Cursor/Codex/Generic Agent Skills adapters with ownership-safe global installation, sidecar-only Host Dispatch Bundles, and the bounded Host Execution handoff/Receipt Boundary with current-authority revalidation and 32-entry history retention
- Two-stage GitHub Direct Review Evidence with exact-SHA CI receipt, canonical workflow artifact, and release cross-checks
- Staged implementation roadmap
Expand Down
2 changes: 1 addition & 1 deletion agents/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ Canonical UADS specialist definitions for the current core registry. Copied to `

Host-invokable core roles: repo-inspector, requirements-engineer, software-architect, implementation-planner, implementation-agent, test-engineer, independent-reviewer, security-reviewer, performance-reviewer, reliability-reviewer, checkpoint-manager.

The bounded domain catalog includes product-requirements-specialist, frontend-specialist, backend-api-specialist, database-specialist, mobile-client-specialist, platform-cloud-specialist, reliability-specialist, data-ai-specialist, web3-contract-specialist, finance-math-specialist, game-systems-specialist, documentation-dx-specialist, release-specialist, and quality-specialist. These descriptors are lean host-facing contracts; they do not invoke providers or grant production authority.
The bounded domain catalog includes product-requirements-specialist, frontend-specialist, backend-api-specialist, database-specialist, mobile-client-specialist, systems-runtime-specialist, platform-cloud-specialist, reliability-specialist, data-ai-specialist, web3-contract-specialist, finance-math-specialist, game-systems-specialist, documentation-dx-specialist, release-specialist, and quality-specialist. These descriptors are lean host-facing contracts; they do not invoke providers or grant production authority.

The TypeScript kernel emits routing; hosts/adapters invoke these roles. Do not launch provider APIs from the kernel.
11 changes: 11 additions & 0 deletions agents/uads-systems-runtime-specialist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: uads-systems-runtime-specialist
description: Review systems-language, kernel/runtime, contract, event-driven, recovery, and offline-first engineering concerns.
---
# UADS systems runtime specialist

Analyze only the Work Order domains assigned by UADS for systems/runtime work.

Focus on Rust or systems-language boundaries, kernel/runtime lifecycle, contracts, event-driven semantics, state/recovery, offline-first behavior, deterministic failure handling, and platform/runtime compatibility.

Produce bounded implementation guidance and verification obligations. Do not replace the implementation agent, focused test execution, security assurance, reliability assurance, or independent final review. Do not broaden scope beyond the admitted Work Order.
2 changes: 1 addition & 1 deletion docs/03-SCOPE.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Every Work Order is classified before expansion:
Only **NECESSARY** work enters the current Work Order. IMPORTANT/FUTURE items are recommendations. OUT_OF_SCOPE stays excluded. Execution classifies changed paths as in-scope, supporting, out-of-scope, or sensitive.
# Specialist scope boundary (Prompt 009)

The built-in catalog contains 11 core roles and 14 domain profiles. Security, performance, and reliability assurance remain distinct from implementation and support. UGAS and game-assets are explicitly outside this catalog and do not receive automatic integration or project footprint.
The built-in catalog contains 11 core roles and 15 domain profiles. Security, performance, and reliability assurance remain distinct from implementation and support. The additional systems-runtime profile covers systems-language, kernel/runtime, contracts, event-driven systems, state recovery, and offline-first engineering without weakening fail-closed routing. UGAS and game-assets are explicitly outside this catalog and do not receive automatic integration or project footprint.

Selection uses a bounded minimum-sufficient greedy algorithm. It covers only domains, affected areas, risk signals, gates, dependencies, and evidence obligations present in the Work Order. Missing required coverage blocks dispatch rather than causing an unrelated specialist expansion.

Expand Down
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
"uads": "node dist/cli.js"
},
"dependencies": {
"adm-zip": "^0.6.0",
"adm-zip": "^0.6.1",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
"commander": "^12.1.0"
Expand Down
4 changes: 2 additions & 2 deletions schemas/specialist-profile.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
"kind": { "enum": ["core", "domain", "assurance"] },
"status": { "enum": ["enabled", "disabled", "experimental"] },
"purpose": { "type": "string", "minLength": 1, "maxLength": 240 },
"coveredDomains": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "enum": ["general", "requirements", "architecture", "frontend", "backend", "api", "database", "saas", "mobile", "cloud-devops", "security", "quality", "performance", "reliability", "data-ai", "web3", "smart-contracts", "wallets", "finance-economics", "tokenomics", "mathematics-simulation", "game-systems", "documentation", "release"] } },
"functions": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "enum": ["inspect", "requirements", "architecture", "planning", "implementation", "testing", "independent-review", "security-assurance", "performance-assurance", "reliability-assurance", "checkpoint", "frontend", "backend-api", "database", "mobile", "platform-cloud", "data-ai", "web3-contract", "finance-math", "game-systems", "documentation", "release", "quality"] } },
"coveredDomains": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "enum": ["general", "requirements", "architecture", "frontend", "backend", "api", "database", "saas", "mobile", "cloud-devops", "security", "quality", "performance", "reliability", "data-ai", "web3", "smart-contracts", "wallets", "finance-economics", "tokenomics", "mathematics-simulation", "game-systems", "rust", "kernel-runtime", "contracts", "event-driven-systems", "state-recovery", "offline-first", "testing", "certification", "documentation", "release"] } },
"functions": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "enum": ["inspect", "requirements", "architecture", "planning", "implementation", "testing", "independent-review", "security-assurance", "performance-assurance", "reliability-assurance", "checkpoint", "frontend", "backend-api", "database", "mobile", "platform-cloud", "data-ai", "web3-contract", "finance-math", "game-systems", "documentation", "release", "quality", "systems-runtime"] } },
"mayImplement": { "type": "boolean" },
"reviewOnly": { "type": "boolean" },
"independenceClass": { "enum": ["implementation", "support", "independent-review", "assurance"] },
Expand Down
2 changes: 1 addition & 1 deletion src/eval/adapters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ function prepare(fixture: ReturnType<typeof plannedFixture>): HostDispatchBundle
function runCase(id: string): void {
if (id === "AD1") {
const fixture = install("cursor");
assertEval(fixture.resources.length === 25, "Cursor catalog was not installed globally");
assertEval(fixture.resources.length === 26, "Cursor catalog was not installed globally");
assertEval(!fs.existsSync(path.join(fixture.project, ".cursor")), "Cursor install touched the project");
assertEval(fs.existsSync(getHostAdapterStatePath("cursor", fixture.uadsHome)), "Cursor ownership state is missing");
} else if (id === "AD2") {
Expand Down
8 changes: 8 additions & 0 deletions src/kernel/domains.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ export const DOMAIN_IDS = [
"tokenomics",
"mathematics-simulation",
"game-systems",
"rust",
"kernel-runtime",
"contracts",
"event-driven-systems",
"state-recovery",
"offline-first",
"testing",
"certification",
"documentation",
"release",
] as const;
Expand Down
17 changes: 15 additions & 2 deletions src/kernel/policy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,14 @@ export function classifyScopeSize(intake: NormalizedIntake): ScopeDecision {
scopeClass = "trivial";
reasons.push("isolated presentation change");
} else if (
includesAny(text, ["architecture", "auth architecture", "storage model", "change the public contract", "public api contract"])
includesAny(text, ["architecture", "auth architecture", "storage model", "change the public contract", "public api contract"]) ||
intake.domainSignals.includes("kernel-runtime") ||
(intake.domainSignals.includes("state-recovery") && intake.domainSignals.includes("offline-first"))
) {
scopeClass = "architectural";
reasons.push("public contract or core architecture is in play");
reasons.push("public contract, kernel/runtime, or core architecture is in play");
} else if (
intake.domainSignals.length >= 3 ||
intake.domainSignals.includes("database") ||
intake.riskSignals.includes("database-migration") ||
(intake.domainSignals.includes("api") && intake.domainSignals.includes("security")) ||
Expand Down Expand Up @@ -121,6 +124,16 @@ export function classifyRisk(intake: NormalizedIntake, map: RepositoryMap): { le
}
return { level: "HIGH", reasons };
}
if (
signals.has("kernel-runtime") ||
signals.has("state-recovery") ||
signals.has("offline-first") ||
signals.has("certification") ||
(signals.has("event-driven-systems") && signals.has("contracts"))
) {
reasons.push("foundational runtime, recovery, offline, contract, or certification surface");
return { level: "HIGH", reasons };
}
if (signals.has("authentication") || signals.has("public-api") || signals.has("infrastructure")) {
reasons.push("auth, public contract, or infrastructure signal");
return { level: "MEDIUM", reasons };
Expand Down
23 changes: 21 additions & 2 deletions src/kernel/routing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export const SPECIALISTS: SpecialistDef[] = [
id: "test-engineer",
purpose: "Design and run focused tests",
activation: "non-docs non-style plans",
domains: ["quality"],
domains: ["quality", "testing"],
mayImplement: false,
reviewOnly: true,
expectedInput: "Work Order + gates",
Expand All @@ -81,7 +81,7 @@ export const SPECIALISTS: SpecialistDef[] = [
id: "independent-reviewer",
purpose: "Independently review implementation",
activation: "any plan that includes implementation-agent",
domains: ["quality"],
domains: ["quality", "certification"],
mayImplement: false,
reviewOnly: true,
expectedInput: "diff + gates",
Expand Down Expand Up @@ -118,6 +118,16 @@ export const SPECIALISTS: SpecialistDef[] = [
expectedInput: "dependencies + rollback evidence",
expectedOutput: "reliability review evidence",
},
{
id: "systems-runtime-specialist",
purpose: "Handle systems, kernel/runtime, contracts, event-driven, recovery, and offline-first concerns",
activation: "systems/runtime domain signals",
domains: ["rust", "kernel-runtime", "contracts", "event-driven-systems", "state-recovery", "offline-first"],
mayImplement: false,
reviewOnly: true,
expectedInput: "runtime architecture + contracts + recovery obligations",
expectedOutput: "systems/runtime verification guidance",
},
{
id: "checkpoint-manager",
purpose: "Persist resume state",
Expand Down Expand Up @@ -162,6 +172,9 @@ export function selectSpecialists(input: {
if (input.intake.riskSignals.includes("performance-hot-path") || input.domains.includes("performance")) {
assurance.push("performance-reviewer");
}
if (input.domains.some((id) => ["rust", "kernel-runtime", "contracts", "event-driven-systems", "state-recovery", "offline-first"].includes(id))) {
specialists.push("systems-runtime-specialist");
}

const uniqueSpecialists = unique(specialists);
const uniqueAssurance = unique(assurance);
Expand Down Expand Up @@ -242,6 +255,12 @@ export function selectGates(input: {
if (input.intake.riskSignals.includes("performance-hot-path") || input.domains.includes("performance")) {
add("performance-check", "hot-path regression check");
}
if (input.domains.includes("contracts") || input.domains.includes("event-driven-systems")) {
add("contract-test", "systems contracts and event boundaries require contract evidence");
}
if (input.domains.includes("state-recovery") || input.domains.includes("offline-first")) {
add("rollback-validation", "state recovery and offline behavior require rollback/recovery evidence");
}
if (input.risk === "HIGH" || input.risk === "CRITICAL") {
add("security-review", "high/critical plans require security assurance");
}
Expand Down
Loading
Loading