architecture-compass
Architectural thinking partner for an existing repository — scans the codebase, conducts a structured interview, agrees on current architectural state and…
Protocol for handling ambiguous decisions and missing/conflicting knowledge during code generation, design, and review. Ensures AI surfaces genuine judgment calls with structured options and stops on hallucination risk instead of silently assuming. Use when a decision has
$ npx -y skills add techygarg/lattice --skill collaborative-judgment --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/collaborative-judgmentContext preview
The summary Claude sees to decide when to auto-load this skill.
Protocol for handling ambiguous decisions and missing/conflicting knowledge during code generation, design, and review. Ensures AI surfaces genuine judgment calls with structured options and stops on hallucination risk instead of silently assuming. Use when a decision has
name: collaborative-judgment description: "Protocol for handling ambiguous decisions and missing/conflicting knowledge during code generation, design, and review. Ensures AI surfaces genuine judgment calls with structured options and stops on hallucination risk instead of silently assuming. Use when a decision has multiple valid approaches, when facts are missing or contradictory, when the user asks 'what should we do here?', 'is this a judgment call?', 'should I ask about this?', 'am I guessing here?', 'what are the tradeoffs?', or when deciding between two reasonable architectural or design options. Also composed by molecules to define how judgment calls and clarification requests are surfaced and resolved."
Most decisions are NOT ambiguous. The AI decides on its own when:
Surface a decision only when ALL three are true:
1. **Multiple valid approaches** -- a genuine fork between reasonable options. 2. **No active context resolves it** -- user instruction, inspected code/artifacts, current evidence, knowledge base, refiner docs, and context anchor have all been checked. Still unresolved. 3. **Consequences are meaningful** -- affects architecture, behavior, or maintainability. Not cosmetic.
**Confidence test**: "I considered two or more approaches, and neither is clearly better given this project's context." True → surface. False → decide and move on.
**Default to deciding -- but only when grounded.** Grounded autonomy ≠ guessing. **STOP:** If the evidence is thin, missing, or conflicting, do not silently choose.
Stop and inspect / ask when ANY signal fires:
1. **No grounding** -- you cannot cite a source for a project-specific claim. 2. **Generic priors filling a local gap** -- you are about to assume a file path, API shape, config key, data contract, naming convention, or workflow because "projects usually do X." 3. **A missing fact collapses the answer** -- one unresolved fact would make one option clearly right or wrong. 4. **Conflicting sources** -- user instruction, code, docs, tests, logs, or context docs disagree. 5. **Unfalsifiable assumption** -- you cannot say what evidence would prove the current assumption wrong.
If any signal fires, do not invent options just to fit this protocol. Inspect the available evidence first. If it stays unresolved, ask a targeted clarification.
**STOP:** Conflicting active sources — surface the contradiction and ask. Never pick a winner silently.
Two formats:
Use when multiple **grounded** options remain:
> **Decision needed**: [one-line description of what's being decided] > > Checked: [sources]. Missing/conflicting: [fact] > > - **Option A**: [approach] — [1-line pro], [1-line con] > - **Option B**: [approach] — [1-line pro], [1-line con] > > I lean toward **[option]** because [one sentence of reasoning].
Two options is the norm. Three is the maximum. No essays.
Use when the issue is missing/conflicting knowledge, not balanced options:
> **Clarification needed**: [missing fact or contradiction] > > Checked: [sources] > Missing/conflicting: [exact fact] > Need from you: [1–3 targeted questions or a requested artifact] > Why it matters: [one sentence]
No fabricated options. Ask only for facts that materially change direction. If the answer is available in the inspected repo/docs/tests, inspect first -- ask the user only when the gap remains.
Do not interrupt for every judgment call. Collect and surface at natural checkpoints:
**Escalation signal**: a single component producing more than 3 judgment calls means the project needs clearer standards. Suggest running the relevant refiner instead of asking about each one individually.
When the user resolves a judgment call or clarification:
1. **Apply immediately** -- implement the choice in the current context. 2. **Treat it as a commitment** -- the chosen option, clarified fact, or conflict resolution is not revisited silently later in the session. 3. **Suggest persistence** -- if the decision applies to similar future situations, suggest capturing it via `framework:context-anchoring` (per-feature) or recommend running the relevant refiner (project-wide).
This protocol becomes less active as the project matures:
Composable AI skills that teach assistants structured thinking — design-first, context-aware, and architecture-guided.
Repo: techygarg/lattice
Architectural thinking partner for an existing repository — scans the codebase, conducts a structured interview, agrees on current architectural state and…
Facilitate a structured conversation to define architecture principles for a repository. Supports multiple architecture styles: clean architecture (default),…
Enforce architectural rules when generating or modifying code, and validate proposed designs before approval (design mode). Defaults to clean architecture;…
Investigate, reproduce, and safely fix a bug with regression protection. Composes context, diagnosis, architecture, code quality, and testing guardrails into a…
Facilitate a structured conversation to define clean code principles for a repository. Produces a formal clean-code.md document that the clean-code atom will…
Apply clean code principles when generating or modifying implementation code. Enforces function focus, naming clarity, complexity management, error handling,…