let s = import "./schema.ncl" in # Execution contexts — named environments with different tool subsets. # The same operation may have different requirements depending on context. # # Query: # nickel export reflection/requirements/contexts.ncl | get contexts | where id == "agent" # # Cross-reference with tools: # let ctx = "ci" # nickel export reflection/requirements/base.ncl # | get tools # | where (contexts | any { |c| $c == $ctx }) # | where severity == 'Hard { contexts = [ ({ id = "local_dev", description = "Full local development environment. All interactive tools available. Used for: authoring ADRs, initializing projects, running forms interactively.", requires = ["nickel", "nushell", "git", "typedialog"], note = "nats-cli, kogral, syntaxis are Soft — install per project needs.", } | s.Context), ({ id = "ci", description = "Continuous integration environment. No interactive backends. No typedialog. Used for: validating ADR exports, running check_hints, verifying ontology exports.", requires = ["nickel", "nushell", "git"], note = "typedialog is not required — CI does not run interactive forms. Agent-mode queries via `nickel export` are sufficient.", } | s.Context), ({ id = "agent", description = "AI agent context. No interactive terminal. No typedialog interactive backend. Agent reads form NCL directly via `nickel export` and fills templates. Used for: reading form structure, extracting field definitions, generating ADR files from templates.", requires = ["nickel", "nushell"], note = "Agent does not need typedialog installed — it reads reflection/forms/*.ncl directly with nickel export. Nushell needed for check_hint execution.", } | s.Context), ({ id = "benchmark", description = "Performance benchmarking context. Same as local_dev plus Rust toolchain for cargo bench. Used for: measuring stratum-embeddings, stratum-graph, stratum-llm performance.", requires = ["nickel", "nushell", "git", "typedialog"], note = "Requires nightly Rust toolchain for cargo bench with criterion. Isolated from NATS/SurrealDB production instances.", } | s.Context), ], }