midnightntwrk/midnight-expert/fact-check-classification
Claude Code and agent skill by midnightntwrk/midnight-expert
- community
Checking that the SKILL.md file is still in the repository.
This skill should be used when classifying fact-check claims into verification domains (Compact, SDK, ZKIR, Witness). Covers how to tag claims with their domain, assign classification confidence, handle cross-domain claims, and resolve boundary cases between domains like compiler behavior vs compiled output. Triggered by queries like "classify these claims", "tag claims by domain", "which domain does this claim belong to", or "run domain classification on the claims file". Used by the domain-cl…
Install
npx vskill@latest install midnightntwrk/midnight-expert/fact-check-classificationSKILL.md
Domain Classification
The domain classifier operates on one domain at a time. To classify claims, read the claims file and tag each claim that belongs to the assigned domain.
The Four Domains
compact
Claims about the Compact smart contract language:
- Syntax, grammar, keywords, operators
- Type system (Uint, Field, Boolean, Bytes, tuples, structs, enums, generics)
- Standard library functions (persistentHash, transientHash, Counter, Map, Set, etc.)
- Control flow (for loops, if/else, assert)
- Disclosure and privacy (disclose(), ledger visibility)
- Module system (imports, exports, pragma)
- Compiler behavior (errors, warnings, accepted/rejected syntax)
Examples:
- "Compact tuples are 0-indexed" → compact
- "The for loop uses lower..upper syntax (inclusive..exclusive)" → compact
- "assert(condition, message) is the only error-handling mechanism" → compact
sdk
Claims about the Midnight SDK, TypeScript APIs, and DApp development:
- Package exports and imports (
@midnight-ntwrk/*) - API signatures, return types, error types
- Provider configuration, network connectivity
- DApp connector patterns
- Transaction lifecycle
- Deployment and contract interaction
Examples:
- "deployContract returns DeployedContract" → sdk
- "CallTxFailedError extends TxFailedError" → sdk
- "The indexer GraphQL endpoint is at /api/v1/graphql" → sdk
zkir
Claims about Zero-Knowledge Intermediate Representation:
- Opcode semantics (add, mul, neg, assert, constrain_bits, etc.)
- Field arithmetic (wrapping, modular)
- Circuit structure (instruction counts, I/O shape)
- Proof pipeline (PLONK checker, transcript protocol)
- Compiled output format
Examples:
- "add wraps modulo the field prime r" → zkir
- "disclosure compiles to declare_pub_input" → zkir
- "A pure circuit has no private_input instructions" → zkir
witness
Claims about TypeScript witness implementations:
- Witness function signatures and return types
- WitnessContext usage
- Private state handling
- Type mappings between Compact and TypeScript
- Witness/contract interface matching
Examples:
- "Witness functions must return [PrivateState, ReturnValue]" → witness
- "Boolean maps to boolean in TypeScript" → witness
- "WitnessContext is the first parameter" → witness
Classification Task
The dispatching agent provides the assigned domain as a parameter in the dispatch prompt.
- Read the claims file (your copy)
- For each claim, determine if it belongs to your domain
- If it does, update the claim object by adding/merging your domain into the
domainsarray and settingclassificationfields - If it does not belong to your domain, leave it unchanged
- Write the updated file
When a Claim Belongs to Your Domain
Add or merge these fields:
- If
domainsalready exists (from another classifier), append your domain to the array. - If
classificationalready exists, only overwriteprimary_domainif the new confidence is higher. When both are"high"or both"medium", keep the existingprimary_domainand append the new domain todomains. - confidence values:
"high"(clearly in this domain),"medium"(partially in this domain, might be cross-domain).
Cross-Domain Claims
Some claims span multiple domains. If a claim is partially in your domain:
- Add your domain to
domains - Set confidence to
"medium" - Add a note explaining the cross-domain nature
Example: "Compact Boolean maps to TypeScript boolean" spans both compact and witness. Both classifiers should tag it.
Boundary Cases
- If a claim is about compiler behavior (what the compiler does), it's
compact - If a claim is about compiled output (what ZKIR looks like), it's
zkir - If a claim is about SDK types that mirror Compact types, it's
sdk(not compact) - If a claim is about witness types that mirror Compact types, it's
witness(not compact)
Output
Write the updated claims file to your copy path. Return a summary:
Note: cross-domain tag counts are determined after all classifiers merge results, not at individual classification time.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/midnight-fact-check/skills/fact-check-classification/SKILL.md
Popularity
- Repository stars
- 46
- Repository forks
- 14
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/midnightntwrk/midnight-expert/fact-check-classification)