Skip to main content

brain-in-the-fish

Universal document evaluation engine — evaluate any document against any criteria using cognitively-modelled AI agents with ontology-grounded scoring

소스 정보

저장소
fabio-rovai/brain-in-the-fish
최근 소스 활동
2026년 8월 11일 19:20
감지된 SKILL.md 언어
영어
스타
87
포크
16

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
brain-in-the-fish
description
Universal document evaluation engine — evaluate any document against any criteria using cognitively-modelled AI agents with ontology-grounded scoring
version
0.1.0
# Brain in the Fish — MCP Skill Guide ## What This Does Brain in the Fish evaluates documents (essays, policies, contracts, clinical reports, surveys) against evaluation criteria using a panel of AI agents. Each agent's mental state exists as OWL ontology. Scoring is grounded in an Evidence Density Scorer (EDS) that makes hallucination mathematically detectable. ## MCP Tools Available | Tool | Purpose | When to Call | |------|---------|-------------| | `eval_status` | Check server status and session state | First — verify server is running | | `eval_ingest` | Ingest a document (PDF/text) | Step 1 | | `eval_criteria` | Load evaluation framework | Step 2 | | `eval_align` | Align document sections to criteria | Step 3 | | `eval_spawn` | Generate evaluator agent panel | Step 4 | | `eval_scoring_tasks` | Get all scoring prompts for subagents | Step 5 | | `eval_score_prompt` | Get scoring prompt for one agent/criterion pair | Step 5 (per-task) | | `eval_record_score` | Record a score from an agent | Step 6 | | `eval_debate_status` | Check disagreements and convergence | Step 7 | | `eval_challenge_prompt` | Get challenge prompt for debate | Step 7 (per-challenge) | | `eval_report` | Generate final evaluation report | Step 8 | | `eval_whatif` | "What if" re-scoring with modified text | Optional | ## Evaluation Workflow ### Quick Mode (deterministic, no subagents needed) ``` eval_ingest → eval_criteria → eval_align → eval_spawn → eval_report ``` The server runs evidence scoring internally. `eval_report` produces a complete evaluation with deterministic scores. ### Full Mode (with Claude subagent scoring) ``` 1. eval_ingest(path, intent) 2. eval_criteria(framework_or_intent) 3. eval_align() 4. eval_spawn(intent) 5. eval_scoring_tasks() → get all tasks 6. For each task: - Read the scoring prompt - Evaluate the document content against the criterion as the agent persona - eval_record_score(agent_id, criterion_id, score, justification, evidence, gaps) 7. eval_debate_status() → check for disagreements 8. If disagreements: - eval_challenge_prompt(challenger, target, criterion) - Generate challenge argument - eval_record_score() with revised score - Repeat until converged 9. eval_report() → final report ``` ### Subagent Dispatch Pattern When orchestrating with multiple Claude subagents: ``` Orchestrator reads eval_scoring_tasks() → For each agent in the panel: Dispatch subagent with system prompt from eval_scoring_tasks Subagent receives: persona, criteria, document sections Subagent calls eval_record_score with their assessment → After all scores recorded: Check eval_debate_status If disagreements: dispatch challenge subagents → eval_report for final output ``` ## Scoring Guidelines for Subagents When scoring as an agent persona: 1. **Read the document content** provided in the scoring prompt carefully 2. **Reference the rubric levels** — state which level the document meets 3. **Cite specific evidence** from the document text (quote directly) 4. **Identify gaps** — what's missing that would improve the score 5. **Be the persona** — a Subject Expert scores differently from a Writing Specialist 6. **Do not hallucinate** — only reference evidence that appears in the provided text 7. **Use the full scale** — don't cluster all scores at 6-8. Use 1-10 range appropriately. ## Response Format for eval_record_score ```json { "agent_id": "from the scoring task", "criterion_id": "from the scoring task", "score": 7.5, "max_score": 10.0, "round": 1, "justification": "Detailed justification referencing specific document content and rubric levels. This section meets Level 3 (score range 6-8) because it demonstrates [specific evidence]. To reach Level 4, the document would need [specific improvement].", "evidence_used": ["Direct quote from document", "Another quote"], "gaps_identified": ["Missing topic X", "No counter-argument for claim Y"] } ``` ## Supported Document Types | Type | Intent Keywords | Framework Auto-Selected | |------|----------------|----------------------| | Academic essay | "essay", "mark", "grade", "coursework" | Academic Essay Marking | | Policy document | "policy", "green book", "impact assessment" | HM Treasury Green Book | | Survey/research | "survey", "methodology", "questionnaire" | Survey Methodology | | Contract/legal | "contract", "legal", "compliance" | Contract Review | | Clinical/NHS | "nhs", "clinical", "patient", "governance" | NHS Clinical Governance | | GCSE English | "gcse", "english language" | GCSE English Language | | Generic | anything else | Generic Quality | ## Architecture Notes - **Three ontologies** coexist in one Oxigraph triple store: Document, Criteria, Agent - **Evidence scorer** provides deterministic evidence-grounded scoring baseline - **Validation signals** (citations, structure, reading level, fallacies, hedging) feed into the scorer as spikes - **Epistemic state** tracks justified beliefs with empirical/normative/testimonial bases - **Philosophical analysis** applies Kantian/utilitarian/virtue ethics lenses - **Belief dynamics** — Maslow needs update based on findings, trust evolves during debate - **Cross-evaluation memory** persists results for historical comparison - **All triples are queryable** via SPARQL through the underlying onto_* tools
GitHub에서 보기