feat: domain extension system, VCS abstraction, personal/provisioning domains, web subpages
Domain extension system (ADR-012): bash-layer dispatch activates repo_kind-conditional CLI
domains. install.nu copies domains/ tree; short_alias wrappers generated (personal, prov).
ore help and describe capabilities domain-aware.
personal domain (PersonalOntology): career skills/talks/publications/positioning, CFP
pipeline (Watching→Delivered), opportunities lifecycle, content pipeline, Sessionize
integration. Daemon pages: /career, /personal.
provisioning domain (DevWorkspace/Mixed): FSM state, next transitions, connections graph,
gates, workspace card, capabilities, backlog. Daemon page: /provisioning.
VCS abstraction layer (ADR-013): reflection/modules/vcs.nu — uniform jj/git API via
filesystem detection (.jj/ vs .git/). opmode.nu and git-event.nu migrated off ^git.
reflection/bin/jjw.nu — jj + ontoref + Radicle agent workspace lifecycle. jjw-ncl-merge.nu
registered as jj merge tool for .ontology/ NCL conflicts. init-repo.nu for new_project mode.
jj/rad not in ontoref requirements — belong in orchestration project manifests.
'Framework RepoKind: ontology/schemas/manifest.ncl gains 'Framework variant; ontoref
self-identifies as framework — no domain activates for the protocol itself.
Web presence: personal.html and provisioning.html domain subpages. index.html gains
"Project Types — Domain Extensions" section with type cards and subpage links. Nav
compacted (Arch/Prov labels, solid backdrop-filter background).
on+re: vcs-abstraction (adrs: adr-013) and agent-workspace-orchestration Practice nodes;
21 manifest capabilities; state.ncl catalysts updated.
2026-04-07 23:08:29 +01:00
|
|
|
# domains/schema.ncl — contract for ontoref domain extension manifests.
|
|
|
|
|
#
|
|
|
|
|
# A domain is a self-contained extension loaded by ontoref when the project's
|
|
|
|
|
# repo_kind matches one of the domain's declared repo_kinds.
|
|
|
|
|
# Domains live in $ONTOREF_ROOT/domains/{id}/ and provide:
|
|
|
|
|
# - commands.nu → CLI commands dispatched by the bash wrapper
|
|
|
|
|
# - domain.ncl → this contract: declared commands, pages, requirements
|
|
|
|
|
# - repo_kinds.txt → plain-text list of matching repo_kind values (bash-readable)
|
|
|
|
|
|
|
|
|
|
let domain_command_type = {
|
|
|
|
|
id | String, # e.g. "cfp list", "career skills --tier"
|
|
|
|
|
description | String,
|
|
|
|
|
usage | String | default = "",
|
|
|
|
|
examples | Array String | default = [],
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
let domain_page_type = {
|
|
|
|
|
id | String, # "cfp", "career"
|
|
|
|
|
route | String, # "/personal/cfp"
|
|
|
|
|
title | String,
|
|
|
|
|
template | String, # filename stem in domain's pages/ dir
|
|
|
|
|
nav_label | String | default = "",
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
let domain_type = {
|
|
|
|
|
id | String,
|
|
|
|
|
name | String,
|
|
|
|
|
repo_kinds | Array String, # must match values in manifest.ncl RepoKind enum
|
|
|
|
|
description | String | default = "",
|
|
|
|
|
commands | Array domain_command_type | default = [],
|
|
|
|
|
pages | Array domain_page_type | default = [],
|
2026-07-10 01:44:59 +01:00
|
|
|
# .ontoref/ontology/*.ncl stems that must exist for commands to work
|
feat: domain extension system, VCS abstraction, personal/provisioning domains, web subpages
Domain extension system (ADR-012): bash-layer dispatch activates repo_kind-conditional CLI
domains. install.nu copies domains/ tree; short_alias wrappers generated (personal, prov).
ore help and describe capabilities domain-aware.
personal domain (PersonalOntology): career skills/talks/publications/positioning, CFP
pipeline (Watching→Delivered), opportunities lifecycle, content pipeline, Sessionize
integration. Daemon pages: /career, /personal.
provisioning domain (DevWorkspace/Mixed): FSM state, next transitions, connections graph,
gates, workspace card, capabilities, backlog. Daemon page: /provisioning.
VCS abstraction layer (ADR-013): reflection/modules/vcs.nu — uniform jj/git API via
filesystem detection (.jj/ vs .git/). opmode.nu and git-event.nu migrated off ^git.
reflection/bin/jjw.nu — jj + ontoref + Radicle agent workspace lifecycle. jjw-ncl-merge.nu
registered as jj merge tool for .ontology/ NCL conflicts. init-repo.nu for new_project mode.
jj/rad not in ontoref requirements — belong in orchestration project manifests.
'Framework RepoKind: ontology/schemas/manifest.ncl gains 'Framework variant; ontoref
self-identifies as framework — no domain activates for the protocol itself.
Web presence: personal.html and provisioning.html domain subpages. index.html gains
"Project Types — Domain Extensions" section with type cards and subpage links. Nav
compacted (Arch/Prov labels, solid backdrop-filter background).
on+re: vcs-abstraction (adrs: adr-013) and agent-workspace-orchestration Practice nodes;
21 manifest capabilities; state.ncl catalysts updated.
2026-04-07 23:08:29 +01:00
|
|
|
required_extensions | Array String | default = [],
|
|
|
|
|
commands_script | String | default = "commands.nu",
|
|
|
|
|
short_alias | String | default = "",
|
2026-07-10 01:44:59 +01:00
|
|
|
# For domains whose NCL schemas live in an external project (not ontoref itself).
|
|
|
|
|
# The command must print the project root path to stdout — resolved via the
|
|
|
|
|
# global project registry. Consumers import as:
|
|
|
|
|
# import "rustelo/domains/rustelo/ontology/schema.ncl"
|
|
|
|
|
# where the prefix is the path returned by schema_cmd.
|
|
|
|
|
# Empty string means the domain's schemas are co-located in ontoref's domains/ dir.
|
|
|
|
|
schema_cmd | String | default = "",
|
feat: domain extension system, VCS abstraction, personal/provisioning domains, web subpages
Domain extension system (ADR-012): bash-layer dispatch activates repo_kind-conditional CLI
domains. install.nu copies domains/ tree; short_alias wrappers generated (personal, prov).
ore help and describe capabilities domain-aware.
personal domain (PersonalOntology): career skills/talks/publications/positioning, CFP
pipeline (Watching→Delivered), opportunities lifecycle, content pipeline, Sessionize
integration. Daemon pages: /career, /personal.
provisioning domain (DevWorkspace/Mixed): FSM state, next transitions, connections graph,
gates, workspace card, capabilities, backlog. Daemon page: /provisioning.
VCS abstraction layer (ADR-013): reflection/modules/vcs.nu — uniform jj/git API via
filesystem detection (.jj/ vs .git/). opmode.nu and git-event.nu migrated off ^git.
reflection/bin/jjw.nu — jj + ontoref + Radicle agent workspace lifecycle. jjw-ncl-merge.nu
registered as jj merge tool for .ontology/ NCL conflicts. init-repo.nu for new_project mode.
jj/rad not in ontoref requirements — belong in orchestration project manifests.
'Framework RepoKind: ontology/schemas/manifest.ncl gains 'Framework variant; ontoref
self-identifies as framework — no domain activates for the protocol itself.
Web presence: personal.html and provisioning.html domain subpages. index.html gains
"Project Types — Domain Extensions" section with type cards and subpage links. Nav
compacted (Arch/Prov labels, solid backdrop-filter background).
on+re: vcs-abstraction (adrs: adr-013) and agent-workspace-orchestration Practice nodes;
21 manifest capabilities; state.ncl catalysts updated.
2026-04-07 23:08:29 +01:00
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
DomainCommand = domain_command_type,
|
|
|
|
|
DomainPage = domain_page_type,
|
|
|
|
|
Domain = domain_type,
|
|
|
|
|
}
|