Jesús Pérez 0396e4037b
Some checks failed
Nickel Type Check / Nickel Type Checking (push) Has been cancelled
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
chore: add ontology and reflection
2026-03-13 00:21:04 +00:00

49 lines
2.3 KiB
Plaintext

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),
],
}