engram-council
Skill3 starsChanged 10 months agoMITView on GitHub
Run structured consensus with Engram's `memory_council` tool and `CouncilSkill` SDK wrappers for architecture, design, policy, security, reliability, performance, ADR, or tradeoff decisions. Use when the user asks for consensus, council review, multi-agent-style review, decision rationale, option comparison, or mentions `llm-council`, `memory_council`, or `CouncilSkill`. Do not use for simple lookup, single-answer retrieval, or execution-only coding tasks after a decision is already made.
In this repository9 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agentshield-scanSkill
- dependency-triageSkill
- engram-onboardingSkill
- loop-engineeringSkill
- loop-triage-ciSkill
- loop-triageSkill
- pr-review-triageSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 10 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use this skill to turn an ambiguous decision into a bounded council run and a concise recommendation.
- Distinctive: line 12
Do not fabricate a council result.
- Distinctive: line 13
Ask at most one clarifying question when missing options, criteria, or persistence would make the run low quality.
- Distinctive: line 14
Keep one decision per council run.
- Very specific: line 15
Default to persist=false unless the decision should survive across sessions, become an ADR/checkpoint, or guide future agents.
- Distinctive: line 16
Never send secrets, credentials, private keys, raw customer data, or proprietary content that the user has not approved for this council …
- Very specific: line 17
Treat memory_council as potentially mutating when persist=true.
- Distinctive: line 21
Use this skill for:
- Distinctive: line 48
If options are not explicit, infer the smallest useful set and include them in the prompt.
- Distinctive: line 52
Use a prompt shaped like this:
- Very specific: line 87
If you are executing as an agent with Engram MCP access, call memory_council directly.
- Very specific: line 88
If you are writing integration code, use the Python or TypeScript CouncilSkill wrapper.
- Distinctive: line 89
If neither path is available, produce the council prompt and say the council was not executed.
- Distinctive: line 93
Use these defaults unless the user or repo context says otherwise:
- Distinctive: line 121
Use these only when adding app/repo integration code.
- Very specific: line 167
If error exists, do not present a recommendation as council-backed.
- Very specific: line 169
If warning exists, treat the council result as valid but clearly state that persistence failed.
- Very specific: line 186
Add a short Assumptions: line before the result if you inferred options, criteria, workspace, or persistence.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Engram Council
Use this skill to turn an ambiguous decision into a bounded council run and a concise recommendation. The installable skill name is engram-council; llm-council is the upstream council backend used by Engram's MCP tool.
Operating Rules
- Do not fabricate a council result. If no MCP or SDK execution path is available, return the prepared council prompt and state that it was not executed.
- Ask at most one clarifying question when missing options, criteria, or persistence would make the run low quality. Otherwise make conservative assumptions and state them.
- Keep one decision per council run. Split unrelated decisions into separate runs.
- Default to
persist=falseunless the decision should survive across sessions, become an ADR/checkpoint, or guide future agents. - Never send secrets, credentials, private keys, raw customer data, or proprietary content that the user has not approved for this council backend.
- Treat
memory_councilas potentially mutating whenpersist=true; report the target workspace and tags.
Use / Skip
Use this skill for:
- architecture and design tradeoffs
- project policy or standards decisions
- security, reliability, performance, and operations choices
- ADR preparation or decision checkpoints
- multi-model or multi-agent review prompts where agreement and dissent matter
Skip this skill for:
- factual lookup or memory search
- implementation tasks where the decision is already settled
- broad brainstorming without a concrete choice to make
- requests that need deterministic tests or code review more than opinion synthesis
Input Checklist
Before executing, identify:
decision_question: the exact decision to makeoptions: named choices, including "defer" if validcriteria: success criteria and ranking prioritiescontext: relevant facts, constraints, evidence, and non-goalsworkspace: where a persisted result should livepersistence:persist=trueorpersist=falseraw_stages: whether stage outputs are needed for audit/debugging
If options are not explicit, infer the smallest useful set and include them in the prompt. If the request is too vague for that, ask one clarifying question.
Council Prompt
Use a prompt shaped like this:
Decision question:
<one precise question>
Options:
- A: ...
- B: ...
- Defer/no-change: ... (if valid)
Criteria, in priority order:
1. ...
2. ...
3. ...
Context and evidence:
- ...
Constraints and non-goals:
- ...
Required output:
- recommended option
- confidence: high, medium, or low
- strongest reasons
- strongest dissent or caveat
- risks that would change the decision
- next stepsExecution Path
Choose the first available path:
- If you are executing as an agent with Engram MCP access, call
memory_councildirectly. - If you are writing integration code, use the Python or TypeScript
CouncilSkillwrapper. - If neither path is available, produce the council prompt and say the council was not executed.
MCP Arguments
Use these defaults unless the user or repo context says otherwise:
prompt: the council prompt abovetimeout_seconds:120for normal decisions, up to300for complex reviewsinclude_raw_stages:falsefor normal answers,truewhen auditing model disagreementpersist:falseby defaultworkspace: repo, project, or domain workspace whenpersist=truememory_tags: includellm-council,consensus, and one domain tag such asarchitecture,security, oropscouncil_url: omit unless the default backend URL is wrong
Direct MCP shape:
{
"name": "memory_council",
"arguments": {
"prompt": "<council prompt>",
"timeout_seconds": 120,
"include_raw_stages": false,
"persist": true,
"workspace": "architecture",
"memory_tags": ["llm-council", "consensus", "architecture"]
}
}SDK Recipes
Use these only when adding app/repo integration code.
Python:
from engram_client.integrations import CouncilSkill
council = CouncilSkill(
client,
default_workspace="architecture",
default_timeout_seconds=120,
default_include_raw_stages=False,
)
result = await council.ask_with_persistence(
"Decision question: Should we standardize on PostgreSQL for new services?"
)TypeScript:
import { CouncilSkill } from "engram-client";
const council = new CouncilSkill(client, {
defaultWorkspace: "architecture",
defaultTimeoutSeconds: 120,
defaultIncludeRawStages: false,
});
const result = await council.askWithPersistence(
"Decision question: Should we standardize on PostgreSQL for new services?"
);Interpret Results
Expected successful fields include:
final_answer: primary answer to summarizefinal_model: final model or arbiter, when availablestage1,stage2,stage3or stage counts, depending oninclude_raw_stagesmemory_id, when persistence succeededwarning, when the council completed but persistence failederror, when the council did not complete
If error exists, do not present a recommendation as council-backed. Report the failure and provide the prepared prompt or a narrowed retry.
If warning exists, treat the council result as valid but clearly state that persistence failed.
Response Format
Return this structure:
**Council Result**
- **Decision:** <recommended option>
- **Confidence:** high | medium | low
- **Rationale:** <2-4 concise reasons>
- **Dissent/Caveat:** <strongest objection or uncertainty>
- **Risks:** <what could change the answer>
- **Persistence:** persisted to `<workspace>` as memory `<id>` | not persisted | persistence failed: `<warning>`
- **Next steps:** <1-3 concrete actions>Add a short Assumptions: line before the result if you inferred options, criteria, workspace, or persistence.
Failure Handling
- Empty or vague prompt: ask for the decision question and options.
- Backend unreachable: check MCP transport,
LLM_COUNCIL_URL,council_url, auth, and tenant/workspace configuration. - Timeout: reduce context to one decision and the top criteria, or retry with a higher
timeout_seconds. - Low-quality result: rerun with explicit options, criteria priority, and non-goals.
- Sensitive input: stop and ask for a sanitized version or approval before sending it to the council backend.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

