modes.md
27 lines · skills/ce-compound-refresh/references/modes.md at 3449230
Most marks come from matching words in the file, so treat them as pointers.
Interactive and non-interactive modes
If the arguments contain mode:non-interactive (or its deprecated alias mode:headless), strip those tokens (the remainder is a scope hint) and run non-interactive; otherwise run interactive.
Interactive: apply unambiguous actions directly; ask the user only on genuine judgment calls (the Decide section of references/classify.md lists them).
Non-interactive: never pause for input, in any phase.
- Apply all safe actions: Keep, Update, Consolidate, auto-Delete (only under the three-condition gate in
references/classify.md), Replace (when evidence is sufficient). If a write succeeds, record it as applied; if it fails (e.g., permission denied), record it as recommended and continue — never stop to ask for permissions. - When classification is genuinely ambiguous or Replace evidence is insufficient, mark the doc stale instead: add
status: stale,stale_reason: [what you found],stale_date: YYYY-MM-DDto its frontmatter. Err toward stale-marking over incorrect action. If even that write fails, record it as recommended. - Relocations auto-apply only under the four-condition gate in
references/classify.md; otherwise recommend. Splits are always recommend-only: fragment boundaries are a retrieval-value judgment with no ground truth. - With no scope hint, process everything — no scope-narrowing questions. With a scope hint that matches nothing, report the miss and exit; do not widen to all docs.
- The report (see Report) is the primary deliverable.
- A worth-lens intent in the arguments (SKILL.md, Worth lens) is read but never confirmed: read
references/worth-audit.md, run its evidence gathering, and record every worth-based Delete or Update under Recommended with the quoted artifacts. Nothing is deleted or cut on inferred intent. Accuracy-based actions apply as above.
Blocking questions
Wherever this skill asks the user something, use the host's blocking question tool already in the current tool list (match by capability, not by a host-specific name). Presence in the current tool list is proof the tool exists; never call a user-facing question tool to discover whether it exists. If a matching tool is listed but unloaded, use the host's tool-discovery primitive to load that capability — do not search for another host's tool name. Fall back to numbered options on the host's user-visible chat surface only when no such tool is in the list or a real question call errors. Never silently skip the question. Ask one question at a time, prefer multiple choice, lead with the recommended option and a one-sentence rationale.
Raw lines 16 to 19CONCEPTS.md bootstrap requests
If invoked specifically to create or bootstrap CONCEPTS.md ("create a CONCEPTS.md", "build the concept map"), the intent is ambiguous between two jobs — disambiguate with a blocking question:
- Create CONCEPTS.md (build the concept map) — skip the
<root>/solutions/classification work. Readreferences/concepts-vocabulary.mdand follow its Seed goal and Scope of a seed (repo-wide) rules: seed the project's core domain nouns from the declared domain model, write the preamble (see Vocabulary Capture), cluster per the organization rules, run the Discoverability Check perreferences/discoverability.md, then commit perreferences/commit.md— do not leave the bootstrap uncommitted. - Run a refresh cycle — proceed normally;
CONCEPTS.mdis seeded (if absent) and reconciled during Vocabulary Capture.
In non-interactive mode, default to the refresh cycle and note in the report that a standalone repo-wide bootstrap was not run.
Raw lines 20 to 27