hns-lsel-applier
Local Self-Evolution Loop (LSEL) APPLY engine — the playback-only consumer of approved…
Question-design reference for the gated TypeSafe System One judgment capability. How to author typed questions that return useful, honest answers: compute the question in code, always admit a no-match answer, keep the supplied state small, phrase noul questions so both
$ npx -y skills add modu-ai/moai-adk --skill moai-ref-jev-question-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/moai-ref-jev-question-designContext preview
The summary Claude sees to decide when to auto-load this skill.
Question-design reference for the gated TypeSafe System One judgment capability. How to author typed questions that return useful, honest answers: compute the question in code, always admit a no-match answer, keep the supplied state small, phrase noul questions so both
name: moai-ref-jev-question-design description: > Question-design reference for the gated TypeSafe System One judgment capability. How to author typed questions that return useful, honest answers: compute the question in code, always admit a no-match answer, keep the supplied state small, phrase noul questions so both polarities are expressible. Carries the question-design rules ONLY — never the call path; where and how to reach the capability is the MCP catalogue's concern. when_to_use: > Use when authoring or reviewing anything that composes typed questions for the gated judgment capability — new consumers, code review of question phrasing, or diagnosing answers that read as forced or uninformative. user-invocable: false metadata: version: "1.0.0" category: "domain" status: "active"
The capability answers typed questions over a supplied state and returns a typed answer with the model's probability. It generates no text and decides nothing: the answer is a labelled model signal a person reads, never a completion predicate, a merge approval, a queue mutation, or any other decision that is hard to undo. A narrow exception is the `todo --auto` cycle's own candidate ranking, the auto-scoped ranking exception, which sets selection order only; it is an in-process consumer behind the default-off gate. Good questions keep that contract; bad questions waste the call or manufacture false confidence. Four rules govern question design.
The question must be computed from the caller's inputs by the caller's code, not improvised as free-form prose at call time. A computed question is reviewable, stable across calls, and testable: the same inputs always compose the same question, and a change in phrasing shows up as a diff. Compose question text with the project's language's string formatting from named inputs — never hand-type a question into a prompt-shaped literal that drifts from the code that acts on its answer.
A choice question whose option set forces a pick manufactures confidence the call cannot have. Every choice question carries an explicit no-match option ("none of these fit", "no listed option") so the answer can say the honest thing. Same discipline for noul questions: ask only when both YES and NO are answers a reader would treat as informative — a question with only one meaningful answer is rhetoric, not a question.
Input is charged per token and output is not, so cost tracks state size, not question count. Several questions over one state in one call keep answers mutually consistent and cost nothing extra. Supply the minimum denatured facts the question needs — the axis being judged, the options, the counts that matter — and nothing else. Oversize payloads are refused unsent; a state that must be truncated to fit is a signal to redesign the question, not to trim the payload by hand.
A noul question has two phrasings for every underlying question ("is the premise alive" vs "is the premise dead"), and the same YES means opposite things under them. Compose the polarity deliberately, record it next to the question id in the caller's own output, and never re-label an answer into the opposite polarity after the fact. An answer read under the wrong polarity is worse than no answer: it is a confident wrong signal attributed to a model that never made that claim.
Every non-answer is a typed unavailability (gate off, no credential, endpoint unreachable, oversize, secret refused unsent). Each is a NO SIGNAL, never a negative answer: an unavailable judgment means the consumer proceeds without it, exactly as before the call was written. Silent defaulting — treating an absent answer as either polarity, or as "no difference found" — is the failure mode these rules exist to prevent.
Agentic development harness for Claude Code — SPEC-driven plan/run/sync, TRUST 5 quality gates, model+effort routing, and Claude×GLM multi-LLM cost control. Single Go binary, 16 languages, zero deps.
Repo: modu-ai/moai-adk
Local Self-Evolution Loop (LSEL) APPLY engine — the playback-only consumer of approved…
Local Self-Evolution Loop (LSEL) curator — the CLUSTER + drain engine for the GOOS-local…
moai-adk-go best-practices reference for the 4 harness specialists (cli-template-specialist,…
moai-adk-go local dev reference — version management/release process (sec 5), shell-script…
moai-adk-go domain-patterns reference for the 4 harness specialists (cli-template-specialist,…
HARD i18n rules digest for the oss-docs harness specialists working on moai-adk-go README…