# Form: Onboard an existing project into the ontoref protocol # Drives reflection/modes/adopt_ontoref.ncl with concrete parameter values. # # Usage: # nickel export reflection/forms/adopt_ontoref.ncl # # Fill in values, then run the generated adopt_ontoref.nu script. # # Agent query: # nickel export reflection/forms/adopt_ontoref.ncl \ # | get elements \ # | where type != "section_header" \ # | where type != "section" \ # | select name prompt required default { name = "Adopt Ontoref", description = "Onboard an existing project into the ontoref protocol. Adds .ontoref/, .ontology/ stubs, and scripts/ontoref wrapper without overwriting existing files.", elements = [ # ── Identity ───────────────────────────────────────────────────────────── { type = "section_header", name = "identity_header", title = "Project Identity", border_top = true, border_bottom = true }, { type = "text", name = "project_name", prompt = "Project name (identifier)", required = true, placeholder = "my-service", help = "Lowercase, kebab-case. Used in .ontology/ node IDs and NATS subject prefix." }, { type = "text", name = "project_dir", prompt = "Absolute path to the existing project", required = true, placeholder = "/Users/Akasha/Development/my-service", help = "The directory must exist. Ontoref only adds files — never overwrites." }, # ── Ontoref location ───────────────────────────────────────────────────── { type = "section_header", name = "ontoref_header", title = "Ontoref Location", border_top = true, border_bottom = true }, { type = "text", name = "ontoref_dir", prompt = "Absolute path to ontoref checkout", required = true, default = "/Users/Akasha/Development/ontoref", help = "Used to source templates (ontology stubs, config template, scripts wrapper)." }, # ── What to install ────────────────────────────────────────────────────── { type = "section_header", name = "install_header", title = "What to Install", border_top = true, border_bottom = true }, { type = "section", name = "install_note", content = "All steps are additive and idempotent. Existing files are never overwritten." }, { type = "confirm", name = "install_config", prompt = "Create .ontoref/config.ncl (per-project ontoref config)?", default = true, help = "Templated from ontoref/templates/ontoref-config.ncl. Controls log, mode_run rules, NATS events." }, { type = "confirm", name = "install_ontology_stubs", prompt = "Create .ontology/ stubs (core.ncl, state.ncl, gate.ncl)?", default = true, help = "Stub files are minimal — project owner fills in project-specific content. Skipped if files exist." }, { type = "confirm", name = "install_scripts_wrapper", prompt = "Install scripts/ontoref thin wrapper?", default = true, help = "Thin bash wrapper that sets ONTOREF_ROOT and ONTOREF_PROJECT_ROOT, then delegates to ontoref entry point." }, # ── Validation ─────────────────────────────────────────────────────────── { type = "section_header", name = "validation_header", title = "Validation", border_top = true, border_bottom = true }, { type = "confirm", name = "validate_after", prompt = "Run nickel export on .ontology/ files after installation?", default = true, help = "Verifies the stub files parse correctly with nickel." }, # ── Review ─────────────────────────────────────────────────────────────── { type = "section_header", name = "review_header", title = "Review", border_top = true }, { type = "section", name = "review_note", content = "The generated script will:\n 1. mkdir -p .ontoref/logs .ontoref/locks (idempotent)\n 2. Copy .ontoref/config.ncl from template (if not present)\n 3. Copy .ontology/{core,state,gate}.ncl stubs (if not present)\n 4. Install scripts/ontoref wrapper (if not present)\n 5. Run nickel export on .ontology/ files to validate\n\nFiles already present are NOT overwritten." }, { type = "confirm", name = "ready_to_generate", prompt = "Generate the adopt script?", default = true }, ], }