2026-03-13 00:21:04 +00:00
|
|
|
let repo_kind_type = [|
|
|
|
|
|
'DevWorkspace,
|
|
|
|
|
'PublishedCrate,
|
|
|
|
|
'Service,
|
|
|
|
|
'Library,
|
|
|
|
|
'AgentResource,
|
|
|
|
|
'Mixed,
|
2026-03-16 01:48:17 +00:00
|
|
|
'PersonalOntology,
|
2026-03-13 00:21:04 +00:00
|
|
|
|] in
|
|
|
|
|
|
|
|
|
|
let consumer_type = [|
|
|
|
|
|
'Developer,
|
|
|
|
|
'Agent,
|
|
|
|
|
'EndUser,
|
|
|
|
|
'CI,
|
|
|
|
|
'Downstream,
|
|
|
|
|
|] in
|
|
|
|
|
|
|
|
|
|
let artifact_kind_type = [|
|
|
|
|
|
'RustDoc,
|
|
|
|
|
'JsonSchema,
|
|
|
|
|
'ContainerImage,
|
|
|
|
|
'CratePackage,
|
|
|
|
|
'StaticSite,
|
|
|
|
|
'NuPlugin,
|
|
|
|
|
'OntologyExport,
|
|
|
|
|
|] in
|
|
|
|
|
|
|
|
|
|
let audit_level_type = [|
|
|
|
|
|
'Quick,
|
|
|
|
|
'Standard,
|
|
|
|
|
'Strict,
|
|
|
|
|
|] in
|
|
|
|
|
|
|
|
|
|
# ── Operational layers ──────────────────────────────────────────────────────
|
|
|
|
|
# A layer is a named region of the repo with visibility rules per mode.
|
|
|
|
|
# The `committed` flag distinguishes product (true) from process (false).
|
|
|
|
|
|
|
|
|
|
let layer_type = {
|
|
|
|
|
id | String,
|
|
|
|
|
paths | Array String,
|
|
|
|
|
committed | Bool,
|
|
|
|
|
description | String | default = "",
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
# ── Operational modes ───────────────────────────────────────────────────────
|
|
|
|
|
# A mode is an active perspective the developer/agent switches into.
|
|
|
|
|
# It determines which layers are visible and what audit level applies.
|
|
|
|
|
|
|
|
|
|
let op_mode_type = {
|
|
|
|
|
id | String,
|
|
|
|
|
description | String | default = "",
|
|
|
|
|
visible_layers | Array String,
|
|
|
|
|
audit_level | audit_level_type | default = 'Standard,
|
|
|
|
|
pre_activate | Array String | default = [],
|
|
|
|
|
post_activate | Array String | default = [],
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
# ── Publication service ─────────────────────────────────────────────────────
|
|
|
|
|
# Where artifacts go and what operations surround the publish action.
|
|
|
|
|
|
|
|
|
|
let auth_method_type = [|
|
|
|
|
|
'SSH,
|
|
|
|
|
'Token,
|
|
|
|
|
'OIDC,
|
|
|
|
|
'None,
|
|
|
|
|
|] in
|
|
|
|
|
|
|
|
|
|
let service_scope_type = [|
|
|
|
|
|
'Public,
|
|
|
|
|
'PrivateNetwork,
|
|
|
|
|
'LocalRegistry,
|
|
|
|
|
'SelfHosted,
|
|
|
|
|
|] in
|
|
|
|
|
|
|
|
|
|
let publication_service_type = {
|
|
|
|
|
id | String,
|
|
|
|
|
artifact | artifact_kind_type,
|
|
|
|
|
scope | service_scope_type,
|
|
|
|
|
registry_url | String | default = "",
|
|
|
|
|
auth_method | auth_method_type | default = 'None,
|
|
|
|
|
pre_publish | Array String | default = [],
|
|
|
|
|
post_publish | Array String | default = [],
|
|
|
|
|
condition | String | default = "",
|
|
|
|
|
trigger | String,
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
# ── Consumption modes (who consumes, what they need) ────────────────────────
|
|
|
|
|
|
|
|
|
|
let consumption_mode_type = {
|
|
|
|
|
consumer | consumer_type,
|
|
|
|
|
needs | Array artifact_kind_type,
|
|
|
|
|
audit_level | audit_level_type | default = 'Standard,
|
|
|
|
|
description | String | default = "",
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
# ── Tool requirements ─────────────────────────────────────────────────────
|
|
|
|
|
# Declares what tools the project needs. install-tools.nu and sync audit
|
|
|
|
|
# consume this to verify availability or trigger installation.
|
|
|
|
|
|
|
|
|
|
let install_method_type = [|
|
|
|
|
|
'Builtin,
|
|
|
|
|
'Cargo,
|
|
|
|
|
'Npm,
|
|
|
|
|
'Brew,
|
|
|
|
|
'Pip,
|
|
|
|
|
'Manual,
|
|
|
|
|
|] in
|
|
|
|
|
|
|
|
|
|
let tool_requirement_type = {
|
|
|
|
|
name | String,
|
|
|
|
|
install_method | install_method_type | default = 'Builtin,
|
|
|
|
|
version | String | default = "",
|
|
|
|
|
required | Bool | default = true,
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
# ── Justfile convention ──────────────────────────────────────────────────
|
|
|
|
|
# Declares expected justfile structure so sync audit can verify completeness.
|
|
|
|
|
|
|
|
|
|
let justfile_system_type = [| 'Import, 'Mod, 'Hybrid, 'Flat, 'None |] in
|
|
|
|
|
|
|
|
|
|
let justfile_convention_type = {
|
|
|
|
|
system | justfile_system_type | default = 'Mod,
|
|
|
|
|
required_modules | Array String | default = ["build", "test", "dev", "ci"],
|
|
|
|
|
required_recipes | Array String | default = ["default", "help"],
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
# ── Claude baseline ─────────────────────────────────────────────────────
|
|
|
|
|
# Declares expected .claude/ structure per project.
|
|
|
|
|
|
|
|
|
|
let claude_baseline_type = {
|
|
|
|
|
guidelines | Array String | default = ["bash", "nushell"],
|
|
|
|
|
session_hook | Bool | default = true,
|
|
|
|
|
stratum_commands | Bool | default = true,
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
# ── Root manifest ───────────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
let manifest_type = {
|
|
|
|
|
project | String,
|
|
|
|
|
repo_kind | repo_kind_type,
|
|
|
|
|
layers | Array layer_type | default = [],
|
|
|
|
|
operational_modes | Array op_mode_type | default = [],
|
|
|
|
|
consumption_modes | Array consumption_mode_type,
|
|
|
|
|
publication_services | Array publication_service_type | default = [],
|
|
|
|
|
tools | Array tool_requirement_type | default = [],
|
|
|
|
|
justfile | justfile_convention_type | default = {},
|
|
|
|
|
claude | claude_baseline_type | default = {},
|
|
|
|
|
default_audit | audit_level_type | default = 'Standard,
|
|
|
|
|
default_mode | String | default = "dev",
|
2026-03-16 01:48:17 +00:00
|
|
|
# Node ID this project maps to in the ontology DAG.
|
|
|
|
|
# Used by portfolio tooling to cross-reference publication cards.
|
|
|
|
|
ontology_node | String | default = "",
|
2026-03-13 00:21:04 +00:00
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
RepoKind = repo_kind_type,
|
|
|
|
|
ConsumerType = consumer_type,
|
|
|
|
|
ArtifactKind = artifact_kind_type,
|
|
|
|
|
AuditLevel = audit_level_type,
|
|
|
|
|
AuthMethod = auth_method_type,
|
|
|
|
|
ServiceScope = service_scope_type,
|
|
|
|
|
InstallMethod = install_method_type,
|
|
|
|
|
JustfileSystem = justfile_system_type,
|
|
|
|
|
Layer = layer_type,
|
|
|
|
|
OperationalMode = op_mode_type,
|
|
|
|
|
ConsumptionMode = consumption_mode_type,
|
|
|
|
|
PublicationService = publication_service_type,
|
|
|
|
|
ToolRequirement = tool_requirement_type,
|
|
|
|
|
JustfileConvention = justfile_convention_type,
|
|
|
|
|
ClaudeBaseline = claude_baseline_type,
|
|
|
|
|
ProjectManifest = manifest_type,
|
|
|
|
|
}
|