Enumerate execution-environment hints under a target directory (markers, hidden config files, sibling scripts) so the test-planner can do a memory lookup and, if that misses, ask the user about the right environment. Plugin-shipped, called by test-planner step 2.
Generic poller for any remote review / CI system (Gerrit, GitHub PR, Jenkins, custom HTTP). Memory-first → user-ask. Plugin-shipped, called by submitter step 6.
Plugin-shipped skill that wraps the workspace test runner (pytest / jest / go test) so the tester role can issue a single command and parse a single exit code. Defines the CLI surface and exit-code contract.
A configuration-change agent that interprets a request to update workspace or plugin settings, validates the requested values, and records who made the change.
Dispatched config writer. Updates a single config value at workspace or task scope, validates against schema, and appends a structured audit-log line. Implements implementation.md §M5.6.
Sub-agent self-bootstrap helper: produce the effective config tree for (plugin, task) by deep-merging the 4 declared layers + Layer 0 builtin defaults, then expanding tier model symbols against the workspace's model catalog. Called by sub-agents — never by main session.
Field-level validator for merged CodeNook configs (output of config-resolve). Checks types, ranges, enums; emits warnings for deprecated keys. Separate from config-resolve's top-key whitelist (which is about routing only).
Redacted append-only logger for sub-agent dispatches. Every time the main session (or orchestrator-tick) dispatches a helper/worker agent, it calls this skill to log a one-line audit record AND enforce the 500-byte payload hard limit (architecture §3.1.7 / v6 decision #T-3). The limit is measured in UTF-8 bytes…
Role: Bootstraps a CodeNook workspace skeleton (.codenook/ dirs, memory/{knowledge,skills,history}/, empty memory/config.yaml) so later milestones can read/write deterministically.
This skill is the heart of M2. It takes a staged plugin source (directory or tarball) and runs 12 gates in fixed order before atomically moving the plugin into /.codenook/plugins/ /.
Discover available LLM models in the current runtime, classify each into the three tiers (strong / balanced / cheap), and write the resulting catalog so config-resolve can expand tier symbols. Implements architecture §3.2.4.2 (Model Discovery & Tiering).